diff --git a/.github/workflows/ci_mac.yml b/.github/workflows/ci_mac.yml index 61a845d47..08667a957 100644 --- a/.github/workflows/ci_mac.yml +++ b/.github/workflows/ci_mac.yml @@ -22,5 +22,4 @@ jobs: runner-env: macos-15 platform: mac checkout-ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target-ref || github.ref }} - yarn-args: --network-timeout 100000 diff --git a/.github/workflows/job-compile-and-test.yml b/.github/workflows/job-compile-and-test.yml index 3b693283b..4e0787d72 100644 --- a/.github/workflows/job-compile-and-test.yml +++ b/.github/workflows/job-compile-and-test.yml @@ -1,149 +1,149 @@ -# Reuable workflow for compiling and testing extension. -name: Compile and test extension - -on: - workflow_call: - inputs: - runner-env: - required: true - type: string - platform: - # Expects 'mac', 'linux', or 'windows' - required: true - type: string - checkout-ref: - required: false - type: string - yarn-args: - type: string - -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - -jobs: - build: - runs-on: ${{ inputs.runner-env }} - - steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - ref: ${{ inputs.checkout-ref }} - - - name: Use Node.js 24 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 - with: - node-version: 24 - - - name: Validate Yarn lockfile - run: yarn test-yarn-lock && yarn verify-yarn-lock - working-directory: Extension - - - name: Validate LLDB-MI component manifest - run: yarn test-lldb-mi-component-manifest && yarn verify-lldb-mi-component-manifest - working-directory: Extension - - - name: Install Dependencies - shell: bash - env: - YARN_ARGS: ${{ inputs.yarn-args }} - run: | - read -r -a yarn_args <<< "$YARN_ARGS" - for attempt in 1 2 3; do - if yarn install "${yarn_args[@]}"; then - exit 0 - fi - if (( attempt == 3 )); then - exit 1 - fi - delay=$((attempt * 15)) - printf 'yarn install failed; retrying in %d seconds.\n' "$delay" >&2 - sleep "$delay" - done - working-directory: Extension - - - name: Install gdb (linux) - if: ${{ inputs.platform == 'linux' }} - timeout-minutes: 10 - run: | - sudo apt-get \ - -o Acquire::Retries=3 \ - -o Acquire::http::Timeout=30 \ - -o Acquire::https::Timeout=30 \ - update - sudo apt-get \ - -o Acquire::Retries=3 \ - -o Acquire::http::Timeout=30 \ - -o Acquire::https::Timeout=30 \ - install -y gdb - - - name: Compile Sources - run: yarn run compile - working-directory: Extension - - - name: Run Linter - run: yarn run lint - working-directory: Extension - - - name: Run unit tests - run: yarn test - working-directory: Extension - - - name: Test VS Code acquisition - run: yarn test-vscode-acquisition - working-directory: Extension - - - name: Acquire Native Binaries - run: yarn install-and-copy-binaries-for-test - working-directory: Extension - - - name: Run languageServer integration tests (Windows) - if: ${{ inputs.platform == 'windows' }} - run: yarn test --scenario=SingleRootProject - working-directory: Extension - - - name: Run SimpleCppProject tests (Windows) - if: ${{ inputs.platform == 'windows' }} - run: yarn test --scenario=SimpleCppProject - working-directory: Extension - - - name: Run E2E IntelliSense features tests (Windows) - if: ${{ inputs.platform == 'windows' }} - run: yarn test --scenario=MultirootDeadlockTest - working-directory: Extension - - - name: Run RunWithoutDebugging tests (Windows) - if: ${{ inputs.platform == 'windows' }} - run: yarn test --scenario=RunWithoutDebugging - working-directory: Extension - - # NOTE: For mac/linux run the tests with xvfb-action for UI support. - # Another way to start xvfb https://github.com/microsoft/vscode-test/blob/master/sample/azure-pipelines.yml - - - name: Run languageServer integration tests (linux/macOS) - if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }} - uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1 - with: - run: yarn test --scenario=SingleRootProject - working-directory: Extension - - - name: Run SimpleCppProject tests (linux/macOS) - if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }} - uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1 - with: - run: yarn test --scenario=SimpleCppProject - working-directory: Extension - - - name: Run E2E IntelliSense features tests (linux/macOS) - if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }} - uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1 - with: - run: yarn test --scenario=MultirootDeadlockTest - working-directory: Extension - - - name: Run RunWithoutDebugging tests (linux/macOS) - if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }} - uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1 - with: - run: yarn test --scenario=RunWithoutDebugging --scenario-arg=skipExternalConsole - working-directory: Extension - +# Reuable workflow for compiling and testing extension. +name: Compile and test extension + +on: + workflow_call: + inputs: + runner-env: + required: true + type: string + platform: + # Expects 'mac', 'linux', or 'windows' + required: true + type: string + checkout-ref: + required: false + type: string + yarn-args: + type: string + +env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + +jobs: + build: + runs-on: ${{ inputs.runner-env }} + + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + ref: ${{ inputs.checkout-ref }} + + - name: Use Node.js 24 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: 24 + + - name: Validate Yarn lockfile + run: yarn test-yarn-lock && yarn verify-yarn-lock + working-directory: Extension + + - name: Validate LLDB-MI component manifest + run: yarn test-lldb-mi-component-manifest && yarn verify-lldb-mi-component-manifest + working-directory: Extension + + - name: Install Dependencies + shell: bash + env: + YARN_ARGS: ${{ inputs.yarn-args }} + run: | + read -r -a yarn_args <<< "$YARN_ARGS" + for attempt in 1 2 3; do + if yarn install "${yarn_args[@]}"; then + exit 0 + fi + if (( attempt == 3 )); then + exit 1 + fi + delay=$((attempt * 15)) + printf 'yarn install failed; retrying in %d seconds.\n' "$delay" >&2 + sleep "$delay" + done + working-directory: Extension + + - name: Install gdb (linux) + if: ${{ inputs.platform == 'linux' }} + timeout-minutes: 10 + run: | + sudo apt-get \ + -o Acquire::Retries=3 \ + -o Acquire::http::Timeout=30 \ + -o Acquire::https::Timeout=30 \ + update + sudo apt-get \ + -o Acquire::Retries=3 \ + -o Acquire::http::Timeout=30 \ + -o Acquire::https::Timeout=30 \ + install -y gdb + + - name: Compile Sources + run: yarn run compile + working-directory: Extension + + - name: Run Linter + run: yarn run lint + working-directory: Extension + + - name: Run unit tests + run: yarn test + working-directory: Extension + + - name: Test VS Code acquisition + run: yarn test-vscode-acquisition + working-directory: Extension + + - name: Acquire Native Binaries + run: yarn install-and-copy-binaries-for-test + working-directory: Extension + + - name: Run languageServer integration tests (Windows) + if: ${{ inputs.platform == 'windows' }} + run: yarn test --scenario=SingleRootProject + working-directory: Extension + + - name: Run SimpleCppProject tests (Windows) + if: ${{ inputs.platform == 'windows' }} + run: yarn test --scenario=SimpleCppProject + working-directory: Extension + + - name: Run E2E IntelliSense features tests (Windows) + if: ${{ inputs.platform == 'windows' }} + run: yarn test --scenario=MultirootDeadlockTest + working-directory: Extension + + - name: Run RunWithoutDebugging tests (Windows) + if: ${{ inputs.platform == 'windows' }} + run: yarn test --scenario=RunWithoutDebugging + working-directory: Extension + + # NOTE: For mac/linux run the tests with xvfb-action for UI support. + # Another way to start xvfb https://github.com/microsoft/vscode-test/blob/master/sample/azure-pipelines.yml + + - name: Run languageServer integration tests (linux/macOS) + if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }} + uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1 + with: + run: yarn test --scenario=SingleRootProject + working-directory: Extension + + - name: Run SimpleCppProject tests (linux/macOS) + if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }} + uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1 + with: + run: yarn test --scenario=SimpleCppProject + working-directory: Extension + + - name: Run E2E IntelliSense features tests (linux/macOS) + if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }} + uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1 + with: + run: yarn test --scenario=MultirootDeadlockTest + working-directory: Extension + + - name: Run RunWithoutDebugging tests (linux/macOS) + if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }} + uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1 + with: + run: yarn test --scenario=RunWithoutDebugging --scenario-arg=skipExternalConsole + working-directory: Extension + diff --git a/.github/workflows/release_hornet.yml b/.github/workflows/release_hornet.yml new file mode 100644 index 000000000..1332d2579 --- /dev/null +++ b/.github/workflows/release_hornet.yml @@ -0,0 +1,84 @@ +name: Package and release Hornet + +on: + workflow_dispatch: + inputs: + pre-release: + description: Build pre-release VSIX packages + type: boolean + default: false + github-draft: + description: Upload packages to a draft GitHub Release + type: boolean + default: false + marketplace: + description: Publish packages to the public VS Code Marketplace + type: boolean + default: false + openvsx: + description: Publish packages to Open VSX + type: boolean + default: false + +permissions: + contents: read + +jobs: + release: + runs-on: ubuntu-24.04 + permissions: + contents: write + defaults: + run: + working-directory: Extension + shell: bash + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: 24 + cache: npm + cache-dependency-path: Extension/package-lock.json + - run: npm ci + - run: npm test + - name: Package all desktop and server targets + env: + PRE_RELEASE: ${{ inputs.pre-release }} + run: | + flags=() + if [[ "$PRE_RELEASE" == true ]]; then flags+=(--pre-release); fi + npm run package:all -- "${flags[@]}" + - uses: actions/upload-artifact@v4 + with: + name: hornet-vsix + path: Extension/artifacts/*.vsix + if-no-files-found: error + - name: Create draft GitHub Release + if: ${{ inputs.github-draft }} + env: + GH_TOKEN: ${{ github.token }} + GH_REPO: ${{ github.repository }} + RELEASE_SHA: ${{ github.sha }} + PRE_RELEASE: ${{ inputs.pre-release }} + run: | + version=$(node -p "require('./package.json').version") + tag="v$version" + flags=() + if [[ "$PRE_RELEASE" == true ]]; then tag="$tag-pre-release"; flags+=(--prerelease); fi + gh release create "$tag" artifacts/*.vsix --target "$RELEASE_SHA" --draft "${flags[@]}" --title "Hornet C/C++ $version" --generate-notes + - name: Publish reviewed packages to Marketplace + if: ${{ inputs.marketplace }} + env: + VSCE_PAT: ${{ secrets.VSCE_PAT }} + run: | + files=() + for file in artifacts/*.vsix; do files+=(--vsix "$file"); done + npm run publish:marketplace -- "${files[@]}" + - name: Publish reviewed packages to Open VSX + if: ${{ inputs.openvsx }} + env: + OVSX_PAT: ${{ secrets.OVSX_PAT }} + run: | + files=() + for file in artifacts/*.vsix; do files+=(--vsix "$file"); done + npm run publish:openvsx -- "${files[@]}" diff --git a/.gitignore b/.gitignore index 89defab0e..9ef1fc034 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ OneLocBuild vscode-translations-import .vscode/settings.json +.npm-cache/ diff --git a/.vscode/hornet/compile-db/compile_commands.json b/.vscode/hornet/compile-db/compile_commands.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/.vscode/hornet/compile-db/compile_commands.json @@ -0,0 +1 @@ +[] diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Auto.cpp.D8238B5D7E82BD7E.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Auto.cpp.D8238B5D7E82BD7E.idx new file mode 100644 index 000000000..0ff037991 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Auto.cpp.D8238B5D7E82BD7E.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/C_File.c.C75B407DE8971445.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/C_File.c.C75B407DE8971445.idx new file mode 100644 index 000000000..f7fcdbf04 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/C_File.c.C75B407DE8971445.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Class.cpp.FEEDECA792A21AB8.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Class.cpp.FEEDECA792A21AB8.idx new file mode 100644 index 000000000..6afad5610 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Class.cpp.FEEDECA792A21AB8.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Class.h.0F172B95CF426D40.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Class.h.0F172B95CF426D40.idx new file mode 100644 index 000000000..042b01462 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Class.h.0F172B95CF426D40.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/ClassConstructor.cpp.AADE13AA148DF639.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/ClassConstructor.cpp.AADE13AA148DF639.idx new file mode 100644 index 000000000..89d57c9f1 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/ClassConstructor.cpp.AADE13AA148DF639.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/FunctionTypes.cpp.F6408D52C8CBAC43.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/FunctionTypes.cpp.F6408D52C8CBAC43.idx new file mode 100644 index 000000000..02c06c1e8 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/FunctionTypes.cpp.F6408D52C8CBAC43.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Global.cpp.99A2BC7433D0411C.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Global.cpp.99A2BC7433D0411C.idx new file mode 100644 index 000000000..e6f9e1bfc Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Global.cpp.99A2BC7433D0411C.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/LightBulb.cpp.25779991A30208AB.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/LightBulb.cpp.25779991A30208AB.idx new file mode 100644 index 000000000..c40d7aa4c Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/LightBulb.cpp.25779991A30208AB.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Multi.cpp.9256CCD0CEC62E37.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Multi.cpp.9256CCD0CEC62E37.idx new file mode 100644 index 000000000..310b00f34 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Multi.cpp.9256CCD0CEC62E37.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Multi.h.12D578D4423F9B0F.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Multi.h.12D578D4423F9B0F.idx new file mode 100644 index 000000000..8c8420b85 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Multi.h.12D578D4423F9B0F.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/MultiNamespace.cpp.5F5196EDEF9545B6.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/MultiNamespace.cpp.5F5196EDEF9545B6.idx new file mode 100644 index 000000000..29170497f Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/MultiNamespace.cpp.5F5196EDEF9545B6.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Namespace.cpp.C5956757F5D1C20E.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Namespace.cpp.C5956757F5D1C20E.idx new file mode 100644 index 000000000..0c524e409 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Namespace.cpp.C5956757F5D1C20E.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Namespace.h.548DC9F016284D86.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Namespace.h.548DC9F016284D86.idx new file mode 100644 index 000000000..e0f8485f5 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Namespace.h.548DC9F016284D86.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Scope.cpp.5BB23F502C199C9D.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Scope.cpp.5BB23F502C199C9D.idx new file mode 100644 index 000000000..7951f6b75 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Scope.cpp.5BB23F502C199C9D.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Templates.cpp.84F02DC23EA85563.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Templates.cpp.84F02DC23EA85563.idx new file mode 100644 index 000000000..181abaeb7 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/Templates.cpp.84F02DC23EA85563.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/a.cpp.6EA32D981570B9FC.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/a.cpp.6EA32D981570B9FC.idx new file mode 100644 index 000000000..d51ba6694 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/a.cpp.6EA32D981570B9FC.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/a.cpp.857752285A160FD0.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/a.cpp.857752285A160FD0.idx new file mode 100644 index 000000000..7322355fe Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/a.cpp.857752285A160FD0.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/argsTest.cpp.B6261B2A4B983AF5.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/argsTest.cpp.B6261B2A4B983AF5.idx new file mode 100644 index 000000000..e5308e473 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/argsTest.cpp.B6261B2A4B983AF5.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/b.cpp.0509B920304D05EB.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/b.cpp.0509B920304D05EB.idx new file mode 100644 index 000000000..4a9d13514 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/b.cpp.0509B920304D05EB.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/b.cpp.B947CAA5580DA2D4.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/b.cpp.B947CAA5580DA2D4.idx new file mode 100644 index 000000000..c38a6f6b7 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/b.cpp.B947CAA5580DA2D4.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/box.h.1C7F9F74556BF791.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/box.h.1C7F9F74556BF791.idx new file mode 100644 index 000000000..7c029e566 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/box.h.1C7F9F74556BF791.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/box_sample.cpp.BD516E70B9579E19.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/box_sample.cpp.BD516E70B9579E19.idx new file mode 100644 index 000000000..e9e026894 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/box_sample.cpp.BD516E70B9579E19.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/call_test1.cpp.AFE072A62256BB1E.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/call_test1.cpp.AFE072A62256BB1E.idx new file mode 100644 index 000000000..6b3dbde6b Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/call_test1.cpp.AFE072A62256BB1E.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/call_test1.h.8E0085134619B3DC.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/call_test1.h.8E0085134619B3DC.idx new file mode 100644 index 000000000..788a731cb Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/call_test1.h.8E0085134619B3DC.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/call_test2.cpp.C77C6F7A362E0BC9.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/call_test2.cpp.C77C6F7A362E0BC9.idx new file mode 100644 index 000000000..eb944c3ef Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/call_test2.cpp.C77C6F7A362E0BC9.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/cdd_test1.cpp.BD46D99F30F59A87.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/cdd_test1.cpp.BD46D99F30F59A87.idx new file mode 100644 index 000000000..ecb3b4ef0 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/cdd_test1.cpp.BD46D99F30F59A87.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/cdd_test1.h.09906F768A4DDD38.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/cdd_test1.h.09906F768A4DDD38.idx new file mode 100644 index 000000000..c7083fc1a Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/cdd_test1.h.09906F768A4DDD38.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/code_folding.cpp.C5819303086F5EEF.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/code_folding.cpp.C5819303086F5EEF.idx new file mode 100644 index 000000000..ec7698dfc Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/code_folding.cpp.C5819303086F5EEF.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/code_folding.cpp.DB9510097AE27CFB.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/code_folding.cpp.DB9510097AE27CFB.idx new file mode 100644 index 000000000..8ce79cd03 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/code_folding.cpp.DB9510097AE27CFB.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/debugTest.cpp.123F29CF96DFC78B.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/debugTest.cpp.123F29CF96DFC78B.idx new file mode 100644 index 000000000..9ed5a0cba Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/debugTest.cpp.123F29CF96DFC78B.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/doxygen.cpp.5DEE7883DA925373.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/doxygen.cpp.5DEE7883DA925373.idx new file mode 100644 index 000000000..3cedc76d5 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/doxygen.cpp.5DEE7883DA925373.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/doxygen.cpp.B5B64F32FA972CF0.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/doxygen.cpp.B5B64F32FA972CF0.idx new file mode 100644 index 000000000..fe50e1eb5 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/doxygen.cpp.B5B64F32FA972CF0.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/doxygen_generation.cpp.093D78F9077C104D.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/doxygen_generation.cpp.093D78F9077C104D.idx new file mode 100644 index 000000000..99440377c Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/doxygen_generation.cpp.093D78F9077C104D.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/doxygen_generation.cpp.6E2531BC317C4339.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/doxygen_generation.cpp.6E2531BC317C4339.idx new file mode 100644 index 000000000..24d2858f6 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/doxygen_generation.cpp.6E2531BC317C4339.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/inlay_hints.cpp.A9F4DC47C2E64C69.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/inlay_hints.cpp.A9F4DC47C2E64C69.idx new file mode 100644 index 000000000..39c0ef136 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/inlay_hints.cpp.A9F4DC47C2E64C69.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/inlay_hints.cpp.FF1C076F49A91AFF.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/inlay_hints.cpp.FF1C076F49A91AFF.idx new file mode 100644 index 000000000..36ee20c06 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/inlay_hints.cpp.FF1C076F49A91AFF.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.193B37423612CAE7.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.193B37423612CAE7.idx new file mode 100644 index 000000000..519f28edb Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.193B37423612CAE7.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.1A14A52D6137112D.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.1A14A52D6137112D.idx new file mode 100644 index 000000000..c808bb594 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.1A14A52D6137112D.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.5D82FEE5BED6CD8E.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.5D82FEE5BED6CD8E.idx new file mode 100644 index 000000000..fc22ddd2f Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.5D82FEE5BED6CD8E.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.7EACA8C7DAADF134.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.7EACA8C7DAADF134.idx new file mode 100644 index 000000000..df6eb7c71 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.7EACA8C7DAADF134.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.933C5E37B5575960.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.933C5E37B5575960.idx new file mode 100644 index 000000000..144c7602a Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.933C5E37B5575960.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.D766105CF4A512F8.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.D766105CF4A512F8.idx new file mode 100644 index 000000000..b0af075a7 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.D766105CF4A512F8.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.E3ACF218E553B54B.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.E3ACF218E553B54B.idx new file mode 100644 index 000000000..493be331f Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main.cpp.E3ACF218E553B54B.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main1.cpp.E8065BCD1610612E.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main1.cpp.E8065BCD1610612E.idx new file mode 100644 index 000000000..f6a83d44d Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main1.cpp.E8065BCD1610612E.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main2.cpp.F5A3DED340D52798.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main2.cpp.F5A3DED340D52798.idx new file mode 100644 index 000000000..4cc85d458 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main2.cpp.F5A3DED340D52798.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main3.cpp.85387263AD3FA060.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main3.cpp.85387263AD3FA060.idx new file mode 100644 index 000000000..4ac711da4 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/main3.cpp.85387263AD3FA060.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/new.cpp.938D41CEA2778EB0.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/new.cpp.938D41CEA2778EB0.idx new file mode 100644 index 000000000..d47e10df1 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/new.cpp.938D41CEA2778EB0.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/new.cpp.93CAB7DD262F2719.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/new.cpp.93CAB7DD262F2719.idx new file mode 100644 index 000000000..e42505577 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/new.cpp.93CAB7DD262F2719.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/open_file.cpp.8364818E8D1AE4A0.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/open_file.cpp.8364818E8D1AE4A0.idx new file mode 100644 index 000000000..c5275abe7 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/open_file.cpp.8364818E8D1AE4A0.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.18898FC356DB0024.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.18898FC356DB0024.idx new file mode 100644 index 000000000..7d40dfbe9 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.18898FC356DB0024.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.42255FF1FE7CE998.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.42255FF1FE7CE998.idx new file mode 100644 index 000000000..35ea49546 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.42255FF1FE7CE998.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.5F04F7AC66660619.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.5F04F7AC66660619.idx new file mode 100644 index 000000000..47e6f0fb1 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.5F04F7AC66660619.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.834344597787EE3E.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.834344597787EE3E.idx new file mode 100644 index 000000000..b63d044e4 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.834344597787EE3E.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.B58BD725D0BA6F18.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.B58BD725D0BA6F18.idx new file mode 100644 index 000000000..3fb999f70 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/quickInfo.cpp.B58BD725D0BA6F18.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.196BD31F2C2E05C3.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.196BD31F2C2E05C3.idx new file mode 100644 index 000000000..26d665dd3 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.196BD31F2C2E05C3.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.2B1815108FBF945D.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.2B1815108FBF945D.idx new file mode 100644 index 000000000..8a775ba43 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.2B1815108FBF945D.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.372E2A9D9B71FFA6.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.372E2A9D9B71FFA6.idx new file mode 100644 index 000000000..ba2beeb3e Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.372E2A9D9B71FFA6.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.A6BFD85BBD24BA03.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.A6BFD85BBD24BA03.idx new file mode 100644 index 000000000..aa2e162fc Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.A6BFD85BBD24BA03.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.E4A9633E5C2E1AC1.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.E4A9633E5C2E1AC1.idx new file mode 100644 index 000000000..227a165f3 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.cpp.E4A9633E5C2E1AC1.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.291F04E4555C6678.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.291F04E4555C6678.idx new file mode 100644 index 000000000..fe67d6e28 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.291F04E4555C6678.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.76B0A2F4C18D40F5.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.76B0A2F4C18D40F5.idx new file mode 100644 index 000000000..0eca5fc16 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.76B0A2F4C18D40F5.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.B7BEB6FF49C4C98D.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.B7BEB6FF49C4C98D.idx new file mode 100644 index 000000000..2df506c72 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.B7BEB6FF49C4C98D.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.E1BAC2DF674F6207.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.E1BAC2DF674F6207.idx new file mode 100644 index 000000000..31fda4513 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.E1BAC2DF674F6207.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.F9A8751A06968E5A.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.F9A8751A06968E5A.idx new file mode 100644 index 000000000..e3156aa4e Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/references.h.F9A8751A06968E5A.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.4255EA5122F35AA2.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.4255EA5122F35AA2.idx new file mode 100644 index 000000000..adebbd08c Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.4255EA5122F35AA2.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.92183065604FA58F.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.92183065604FA58F.idx new file mode 100644 index 000000000..d2f3b6d3e Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.92183065604FA58F.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.A7F6F5408BF091FA.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.A7F6F5408BF091FA.idx new file mode 100644 index 000000000..9c923252e Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.A7F6F5408BF091FA.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.B347304ED41D5F48.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.B347304ED41D5F48.idx new file mode 100644 index 000000000..85e25796b Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.B347304ED41D5F48.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.D256AFA647478428.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.D256AFA647478428.idx new file mode 100644 index 000000000..79eee1497 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/semantic_colorization.cpp.D256AFA647478428.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.91D93ED1F6568F08.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.91D93ED1F6568F08.idx new file mode 100644 index 000000000..fde8c1dc7 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.91D93ED1F6568F08.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.AD29EE02DFC95088.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.AD29EE02DFC95088.idx new file mode 100644 index 000000000..11d17f0d3 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.AD29EE02DFC95088.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.B5EA9614A3A2C006.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.B5EA9614A3A2C006.idx new file mode 100644 index 000000000..104727771 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.B5EA9614A3A2C006.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.D628DD86A5BE0361.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.D628DD86A5BE0361.idx new file mode 100644 index 000000000..75d2b5c99 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.D628DD86A5BE0361.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.ED6C4687B5537EAF.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.ED6C4687B5537EAF.idx new file mode 100644 index 000000000..b3dc3332f Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/testIdl.idl.ED6C4687B5537EAF.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/thread.cpp.D7DA039FE11B2ECD.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/thread.cpp.D7DA039FE11B2ECD.idx new file mode 100644 index 000000000..24bee2d66 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/thread.cpp.D7DA039FE11B2ECD.idx differ diff --git a/.vscode/hornet/compile-db/fallback/.cache/clangd/index/thread.h.F70CB67253515238.idx b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/thread.h.F70CB67253515238.idx new file mode 100644 index 000000000..6bd505521 Binary files /dev/null and b/.vscode/hornet/compile-db/fallback/.cache/clangd/index/thread.h.F70CB67253515238.idx differ diff --git a/.vscode/hornet/compile-db/fallback/compile_commands.json b/.vscode/hornet/compile-db/fallback/compile_commands.json new file mode 100644 index 000000000..39ee43b9e --- /dev/null +++ b/.vscode/hornet/compile-db/fallback/compile_commands.json @@ -0,0 +1,592 @@ +[ + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Code Samples\\BoxConsoleSample\\box_sample.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Code Samples\\BoxConsoleSample\\box_sample.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Code Samples\\Fib\\main.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Code Samples\\Fib\\main.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Code Samples\\Fib\\thread.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Code Samples\\Fib\\thread.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\a.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\a.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\b.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\b.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\new.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\new.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\a.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\a.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\b.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\b.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\new.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\new.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\NoWorkspace\\assets\\open_file.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\NoWorkspace\\assets\\open_file.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\RunWithoutDebugging\\assets\\argsTest.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\RunWithoutDebugging\\assets\\argsTest.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\RunWithoutDebugging\\assets\\debugTest.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\RunWithoutDebugging\\assets\\debugTest.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SimpleCppProject\\assets\\main.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SimpleCppProject\\assets\\main.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SimpleCppProject\\assets\\main1.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SimpleCppProject\\assets\\main1.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SimpleCppProject\\assets\\main2.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SimpleCppProject\\assets\\main2.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SimpleCppProject\\assets\\main3.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SimpleCppProject\\assets\\main3.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\code_folding.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\code_folding.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\doxygen_generation.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\doxygen_generation.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\doxygen.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\doxygen.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\inlay_hints.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\inlay_hints.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\main.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\main.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\quickInfo.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\quickInfo.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\references.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\references.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\semantic_colorization.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\semantic_colorization.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\code_folding.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\code_folding.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\doxygen_generation.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\doxygen_generation.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\doxygen.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\doxygen.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\inlay_hints.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\inlay_hints.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\main.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\main.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\quickInfo.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\quickInfo.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\references.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\references.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\semantic_colorization.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultirootDeadlockTest\\assets\\SingleRootProject\\semantic_colorization.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_A\\main.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_A\\main.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_A\\quickInfo.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_A\\quickInfo.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_A\\references.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_A\\references.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_A\\semantic_colorization.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_A\\semantic_colorization.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_B\\main.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_B\\main.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_B\\quickInfo.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_B\\quickInfo.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_B\\references.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_B\\references.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_B\\semantic_colorization.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_B\\semantic_colorization.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_C\\main.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_C\\main.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_C\\quickInfo.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_C\\quickInfo.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_C\\references.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_C\\references.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_C\\semantic_colorization.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\MultiRootProjects\\assets\\project_C\\semantic_colorization.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\call_hierarchy\\call_test1.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\call_hierarchy\\call_test1.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\call_hierarchy\\call_test2.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\call_hierarchy\\call_test2.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Auto.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Auto.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\C_File.c", + "arguments": [ + "clang", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\C_File.c" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\cdd_test1.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\cdd_test1.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Class.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Class.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\ClassConstructor.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\ClassConstructor.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\FunctionTypes.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\FunctionTypes.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Global.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Global.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\LightBulb.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\LightBulb.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Multi.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Multi.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\MultiNamespace.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\MultiNamespace.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Namespace.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Namespace.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Scope.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Scope.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Templates.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\scenarios\\SingleRootProject\\assets\\create_declaration_definition\\Templates.cpp" + ] + } +] \ No newline at end of file diff --git a/.vscode/hornet/compile-db/sources.json b/.vscode/hornet/compile-db/sources.json new file mode 100644 index 000000000..10312c091 --- /dev/null +++ b/.vscode/hornet/compile-db/sources.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "sources": [], + "provenance": {} +} diff --git a/Documentation/Hornet-Implementation.md b/Documentation/Hornet-Implementation.md new file mode 100644 index 000000000..5161f73e0 --- /dev/null +++ b/Documentation/Hornet-Implementation.md @@ -0,0 +1,59 @@ +# Hornet C/C++ implementation status + +This implementation follows the V1 recommendation in `request.md` sections 101–102. It is an initial Compiler release with a Hybrid routing framework, not the completion of all four development phases. + +## Implemented + +- Independent extension identity (`hornet.hornet-cpp`), commands, settings, logs, entrypoint, dependency lockfile and VSIX allowlist. +- Shared `LanguageEngine`, `ModeManager` and `CapabilityRouter`. Providers use protocol values and do not access clangd directly. +- Workspace-local Compiler instances, settings and compilation databases, with serialized mode changes and rollback on startup failure. +- clangd stdio protocol, initialization, capability negotiation, UTF-16 positions, document synchronization, cancellation, initialization timeout, shutdown and up to two automatic crash restarts. +- Completion, hover, signatures, definition, declaration, type definition, implementation, references, rename, code actions, outline, workspace symbols, folding, formatting, inlay hints and semantic tokens, gated by backend capabilities. +- Native call/type hierarchy providers and lazy sidebar graphs. Each branch detects cycles; refreshing or replacing a root cancels stale queries. Jump, copy symbol, references, root replacement and call-root pinning are available. +- Interactive SVG call diagram from the C/C++ editor context menu. Left/right controls independently expand and collapse callers/callees on every node. Visibility follows open branches, preserving shared symbols and recursive edges. Directional results are cached, failures can be retried, and stale responses are discarded after reset. Rounded/straight connectors, pan/zoom, source navigation and recentering are available; each graph caches at most 250 functions. +- Compilation database discovery in the workspace root and `build/`, import, merge, last-source-wins deduplication, validation, canonical file lookup, provenance, watching, export, CMake/Bear generation and per-file argument display. +- Versioned extension API for LinuxBuild-style consumers. +- Trust restrictions, no shell interpolation, an explicit machine-level query-driver allowlist, configuration output containment checks, and no automatic execution of compilers named in imported databases. +- CPU thread budgets, current-file and bounded folder synchronization, and project refresh by restarting clangd after database reload. + +## Deliberate V1 boundaries + +| Area | Current behavior / remaining work | +| --- | --- | +| Tag and Flyweight | Planned backends are absent from the mode picker. Previously saved Tag/Flyweight modes use Compiler for the current session with an explanatory status message. No `hornet-db`, ctags/cscope integration or Rust Tree-sitter server is shipped. | +| Hybrid | Uses Compiler only until an index backend is implemented. The injectable fallback interface and coverage-dependent routing are tested. Uncovered files still use clangd's fallback parsing for browsing, while rename, code actions and diagnostics are restricted. | +| Header coverage | Requires an explicit database entry for precision-sensitive features in Hybrid. Inferred clangd header commands are not treated as verified coverage. | +| Database discovery | Bounded to root/build paths; import additional module databases explicitly. A malformed update retains the previous valid database and reports the error in logs. | +| Database generation | CMake and Bear are supported. CMake needs a generator that emits compile commands (such as Ninja or Unix Makefiles). Heuristic/header-guess generation is not implemented. | +| Index storage and rebuild | clangd owns its cache and background indexing. Hornet global-storage index databases, index deletion/rebuild, sharding, memory budgets and detailed indexing progress are future work. The sync command does not pretend to delete/rebuild caches. | +| Exclusions | Applied to manual folder synchronization. clangd background index coverage is determined by compilation commands and includes. | +| Binary distribution | Uses a locally installed clangd on the workspace host. No download service or native binaries are bundled; universal and platform-specific VSIX packaging is implemented; native binary checksums, glibc compatibility and license validation for bundled native releases are pending. | +| Restricted/virtual workspaces | Activation is disabled. Open a trusted filesystem workspace folder. Standalone files outside workspace folders are not supported in this release. | +| Advanced UI | Qualified-name copying, inactive-code styling, configurable graph auto-follow and detailed index status remain future work. | +| Native testing/performance | No million-file benchmark or Linux ABI claim. VS Code interactive smoke checks are documented separately from transport integration tests. | + +## Repository migration + +Historical Microsoft sources and assets remain in the repository for reference and incremental migration. `tsconfig.hornet.json` includes only `src/hornet` and its tests; `build.hornet.js` bundles only the Hornet entrypoint; `.vscodeignore` allows only the new bundle, call diagram assets, icon, metadata, README and notices. Legacy private runtime downloaders, telemetry, experiments, debugger and Copilot integrations are not in the runtime dependency graph or VSIX. `legacy.yarn.lock` is retained only as historical reference. npm is the supported build tool. + +The publisher value `hornet` is a local development identity; verify ownership before publishing to a marketplace. Public Marketplace, Open VSX and GitHub Release workflows are available; this work does not publish or install the extension automatically. See `Hornet-Releasing.md`. + +## Validation + +```powershell +cd Extension +npm.cmd ci +npm.cmd run compile +npm.cmd test +$env:HORNET_TEST_CLANGD = 'C:/absolute/path/to/clangd.exe' +npm.cmd test +npm.cmd run package +``` + +`HORNET_TEST_CLANGD` runs a real language-server process against an isolated C++ fixture, including Unicode positions and edits. VS Code host objects are substituted in that test; it is not an Extension Host E2E test. Unit tests cover routing, mode rollback/serialization, compilation database parsing/merging, CPU budgets and the shipping manifest. Windows environments without symlink privileges skip the canonicalization symlink test. + +Interactive smoke checks: open `Extension` in VS Code and press F5, then open a C/C++ workspace in the development host. Verify completion and Problems, import a database, edit a source, show and expand both hierarchies, switch Compiler/Hybrid, and open a second workspace folder. Confirm that closing the development host stops clangd and that an invalid clangd path shows an actionable error with logs. + +Call diagram tests cover independent directional expansion/collapse, shared descendants, cycles, caching, concurrent queries, late responses, retry and graph limits. The clangd integration test also builds and collapses a graph from real incoming/outgoing calls. Optional `test/hornet/callGraph.browser.cjs` renders the actual panel HTML/CSS/JS in headless Chromium and checks controls on both rectangle edges, both connector styles, source navigation, zoom, safe symbol labels, recentering and engine invalidation. Set `HORNET_PLAYWRIGHT_MODULE` to an installed `playwright-core` module and `HORNET_BROWSER_PATH` to a local Chromium executable; run `npm.cmd test` first to compile host code, then `node test/hornet/callGraph.browser.cjs` from `Extension`. Browser host APIs and call data are substituted; this does not replace an interactive VS Code Extension Host check. + +Protocol references: [clangd compile commands](https://clangd.llvm.org/design/compile-commands), [clangd protocol extensions](https://clangd.llvm.org/extensions), [system-header driver allowlisting](https://clangd.llvm.org/guides/system-headers). diff --git a/Documentation/Hornet-Releasing.md b/Documentation/Hornet-Releasing.md new file mode 100644 index 000000000..4a4162dc0 --- /dev/null +++ b/Documentation/Hornet-Releasing.md @@ -0,0 +1,91 @@ +# Hornet cross-platform builds and public releases + +Windows, Linux and macOS remain supported host platforms. SSH, WSL and containers run the extension and clangd on the workspace host. Removing Microsoft's internal services does not remove Windows support or the public VS Code Marketplace. + +## Platform tasks + +The extension retains `windows`, `linux` and `osx` task overrides, argument quoting, working directories and problem matchers. New tasks can use `hornet-cpp.build`; existing `cppbuild` tasks remain supported by a compatibility task provider. No Microsoft C/C++ runtime is needed for these tasks. Tasks run only when invoked in a trusted workspace. + +```json +{ + "version": "2.0.0", + "tasks": [{ + "type": "hornet-cpp.build", + "label": "Build active file", + "command": "clang++", + "args": ["-g", "${file}"], + "options": { "cwd": "${fileDirname}" }, + "linux": { "command": "g++" }, + "osx": { "command": "/usr/bin/clang++" }, + "windows": { "command": "clang++" }, + "problemMatcher": "$gcc", + "group": "build" + }] +} +``` + +Portable upstream C++ filename associations, GCC/IAR/ARM compiler problem matchers, language defaults and semantic token scopes are retained. Historical debugger registrations and proprietary language-server commands remain excluded because their backends have been replaced. + +## Build and package + +Run commands in `Extension/` with Node.js 20 or newer (CI uses Node.js 24): + +```sh +npm ci +npm run build +npm test +npm run package +npm run package:all +``` + +`package` produces the universal `hornet-cpp-.vsix`. `package:all` writes the following ten variants into `artifacts/`: + +| OS | Targets | +| --- | --- | +| Universal | `universal` | +| Windows | `win32-x64`, `win32-arm64` | +| Linux | `linux-x64`, `linux-arm64`, `linux-armhf` | +| macOS | `darwin-x64`, `darwin-arm64` | +| Alpine Linux | `alpine-x64`, `alpine-arm64` | + +Examples: + +```sh +npm run package:linux-x64 +npm run package:darwin-arm64 +npm run package:win32-x64 +npm run package:pre-release +npm run package:all -- --pre-release +``` + +Target IDs are written to VSIX metadata by vsce. They are not npm `os`/`cpu` filters that would restrict installation to the machine doing the build. The extension bundle is JavaScript; any host can package all targets. Hornet discovers clangd on the workspace host and automatically downloads a verified official archive on Windows x64, glibc Linux x64 and macOS x64/arm64 when missing. Other hosts require a local clangd installation. Generating a target package does not certify native ABI compatibility or imply that tests ran on that CPU architecture. Browser-only VS Code has no native process support and is not a supported target. + +The `bootstrap`, `build`, `rebuild`, `clean`, `scripts`, `show`, `webpack` and `vsix-prepublish` entrypoints remain available with Hornet implementations. `webpack` is a compatibility alias for the current bundler. `clean` removes only generated `dist` and `out/hornet` output; it retains release artifacts. + +## Public distribution + +All publishing commands consume explicit, already packaged VSIX files. Configure your own publisher/namespace in `package.json` and obtain credentials for that namespace. Do not use the upstream `ms-vscode` identity. + +Public VS Code Marketplace (token in `VSCE_PAT`): + +```sh +npm run publish:marketplace -- --vsix artifacts/hornet-cpp-0.1.0-universal.vsix +``` + +Open VSX (token in `OVSX_PAT`): + +```sh +npm run publish:openvsx -- --vsix artifacts/hornet-cpp-0.1.0-universal.vsix +``` + +Repeat `--vsix` to publish multiple target packages. Add `--dry-run` to inspect arguments without accessing either registry. Tokens are read from the environment and never placed in command-line arguments. Open VSX namespace setup and publisher agreements follow the [official publishing instructions](https://github.com/eclipse-openvsx/openvsx/wiki/Publishing-Extensions). + +VSIX files also support offline/manual installation. To distribute through GitHub Releases, use the `Package and release Hornet` workflow or attach the VSIX files manually. + +## CI and release workflow + +The existing Linux, macOS and Windows CI workflows remain separate and call the shared Hornet build/test/package workflow. They install public npm dependencies and no longer acquire Microsoft private binaries or use the private Yarn bootstrap registry. Each uploads its universal VSIX as a build artifact. + +`release_hornet.yml` is manually dispatched. By default it only packages all targets and uploads artifacts. Optional inputs create a draft GitHub Release, publish to Marketplace, or publish to Open VSX. Publishing requires repository secrets `VSCE_PAT` and/or `OVSX_PAT`. Stable and pre-release builds are both supported. + +Microsoft MicroBuild signing, internal AAD subscriptions, internal package feeds and proprietary runtime acquisition are not used by these Hornet workflows. Historical `Build/package`, `Build/publish` and signing templates remain in the repository as upstream references; they are not the Hornet release entrypoints. Public tools such as vsce, public Marketplace authentication, npm and GitHub Actions are retained. diff --git a/Extension/.npmrc b/Extension/.npmrc index a3422e06d..c6969b513 100644 --- a/Extension/.npmrc +++ b/Extension/.npmrc @@ -1,7 +1,3 @@ -registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/ -# Disable postinstall scripts for supply chain security. Allowlist exceptions with npm trust: https://docs.npmjs.com/cli/v11/commands/npm-trust +registry=https://registry.npmjs.org/ ignore-scripts=true - -min-release-age=7 audit=true -audit-level=high diff --git a/Extension/.vscode/launch.json b/Extension/.vscode/launch.json index 6547573af..3b87002dc 100644 --- a/Extension/.vscode/launch.json +++ b/Extension/.vscode/launch.json @@ -1,172 +1,11 @@ -// A launch configuration that compiles the extension and then opens it inside a new window { - "version": "0.1.0", - "configurations": [ - { - // debugs the extension - "name": "Run Extension", - "type": "extensionHost", - "request": "launch", - "args": [ - "--no-sandbox", - "--disable-updates", - "--skip-welcome", - "--skip-release-notes", - "--disable-workspace-trust", - "--extensionDevelopmentPath=${workspaceFolder}", - ], - "sourceMaps": true, - "outFiles": [ - "${workspaceFolder}/dist/**" - ], - // you can use a watch task as a prelaunch task and it works like you'd want it to. - "preLaunchTask": "watch" - }, - { - // debugs the extension with sanitizer (TSan/ASan/UBSan) reports captured to files. - // Requires a sanitizer build of the cpptools language server. Each process writes - // ${userHome}/cpptools-sanitizer-logs/. (see readme.developer.md). - "name": "Run Extension (capture sanitizer logs)", - "type": "extensionHost", - "request": "launch", - "env": { - "CPPTOOLS_SANITIZER_LOG_DIR": "${userHome}/cpptools-sanitizer-logs" - }, - "args": [ - "--no-sandbox", - "--disable-updates", - "--skip-welcome", - "--skip-release-notes", - "--disable-workspace-trust", - "--extensionDevelopmentPath=${workspaceFolder}", - ], - "sourceMaps": true, - "outFiles": [ - "${workspaceFolder}/dist/**" - ], - // you can use a watch task as a prelaunch task and it works like you'd want it to. - "preLaunchTask": "watch" - }, - { - // debugs the extension (selecting the workspace) - "name": "Run Extension-Select Workspace", - "type": "extensionHost", - "request": "launch", - "args": [ - "--no-sandbox", - "--disable-updates", - "--skip-welcome", - "--skip-release-notes", - "--disable-workspace-trust", - "--extensionDevelopmentPath=${workspaceFolder}", - "${input:pickWorkspace}" - ], - "sourceMaps": true, - "outFiles": [ - "${workspaceFolder}/dist/**" - ], - // you can use a watch task as a prelaunch task and it works like you'd want it to. - "preLaunchTask": "watch" - }, - { - // debug scenario tests (selecting the workspace) - "name": "VSCode Tests", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "env": { - "SCENARIO": "${input:pickScenario}" - }, - "args": [ - "--no-sandbox", - "--disable-updates", - "--skip-welcome", - "--skip-release-notes", - "--disable-extensions", - "--extensionDevelopmentPath=${workspaceFolder}", - "--extensionTestsPath=${workspaceFolder}/dist/test/common/selectTests", - "--scenario=${input:pickScenario}", - "${input:pickScenario}" - ], - "sourceMaps": true, - "outFiles": [ - "${workspaceFolder}/dist/**" - ], - // you can use a watch task as a prelaunch task and it works like you'd want it to. - "preLaunchTask": "watch" - }, - { - // used for debugging unit tests - "name": "MochaTest", - "type": "node", - "request": "attach", - "port": 9229, - "continueOnAttach": true, - "autoAttachChildProcesses": false, - "skipFiles": [ - "/**" - ], - "outFiles": [ - "${workspaceFolder}/dist/**", - "!**/node_modules/**" - ] - } - ], - "inputs": [ - { - "type": "pickString", - "id": "pickScenario", - "description": "Select which scenario to debug VSCode tests.", - "options": [ - { - "label": "MultirootDeadlockTest ", - "value": "${workspaceFolder}/test/scenarios/MultirootDeadlockTest/assets/test.code-workspace" - }, - { - "label": "RunWithoutDebugging ", - "value": "${workspaceFolder}/test/scenarios/RunWithoutDebugging/assets/" - }, - { - "label": "SimpleCppProject ", - "value": "${workspaceFolder}/test/scenarios/SimpleCppProject/assets/simpleCppProject.code-workspace" - }, - { - "label": "SingleRootProject ", - "value": "${workspaceFolder}/test/scenarios/SingleRootProject/assets/" - }, - { - "label": "CompilerDetection ", - "value": "${workspaceFolder}/test/scenarios/CompilerDetection/assets" - } - ] - }, - { - "type": "pickString", - "id": "pickWorkspace", - "description": "Select which workspace scenario to debug VSCode.", - "default": "-n", - "options": [ - { - "label": "(Debug with new window) ", - "value": "-n" - }, - { - "label": "MultirootDeadlockTest ", - "value": "${workspaceFolder}/test/scenarios/MultirootDeadlockTest/assets/test.code-workspace" - }, - { - "label": "SimpleCppProject ", - "value": "${workspaceFolder}/test/scenarios/SimpleCppProject/assets/simpleCppProject.code-workspace" - }, - { - "label": "SingleRootProject ", - "value": "${workspaceFolder}/test/scenarios/SingleRootProject/assets/" - }, - { - "label": "CompilerDetection ", - "value": "${workspaceFolder}/test/scenarios/CompilerDetection/assets" - } - ] - } - ] + "version": "0.2.0", + "configurations": [{ + "name": "Run Hornet C/C++", + "type": "extensionHost", + "request": "launch", + "args": ["--extensionDevelopmentPath=${workspaceFolder}"], + "outFiles": ["${workspaceFolder}/dist/**/*.js"], + "preLaunchTask": "compile" + }] } diff --git a/Extension/.vscode/tasks.json b/Extension/.vscode/tasks.json index 76b0fac63..047f54bed 100644 --- a/Extension/.vscode/tasks.json +++ b/Extension/.vscode/tasks.json @@ -1,28 +1,10 @@ { - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format - "version": "2.0.0", - "tasks": [ - { - "label": "compile", - "type": "npm", - "script": "compile", - "problemMatcher": "$tsc", - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "label": "watch", - "type": "npm", - "script": "watch", - "group": { - "kind": "build", - "isDefault": true - }, - "isBackground": true, - "problemMatcher": "$tsc-watch", - } - ] + "version": "2.0.0", + "tasks": [{ + "label": "compile", + "type": "npm", + "script": "compile", + "problemMatcher": "$tsc", + "group": {"kind": "build", "isDefault": true} + }] } diff --git a/Extension/.vscodeignore b/Extension/.vscodeignore index 59e8dac79..3eb9e5d21 100644 --- a/Extension/.vscodeignore +++ b/Extension/.vscodeignore @@ -1,55 +1,10 @@ - -# ignore vscode settings for extension development -.vscode/** - -# ignore binaries -obj/** - -# ignore source files -tools/** -notices/** -test/** -src/** - -# ignore .js files that are webpacked or only used for development -out/src/** -out/tools/** - -# don't include the local code and tests compiled files -dist/test/** - -# no project scripts -.scripts/** - -# ignore ts files in ui -ui/*.ts - -# ignore Azure-Pipelines files -jobs/** -cgmanifest.json - -# ignore development files -eslint.config.js -.gitattributes -.gitignore -gulpfile.js -localized_string_ids.h -readme.developer.md -test.tsconfig.json -translations_auto_pr.js -tsconfig.json -tslint.json -tscCompileList.txt -ui.tsconfig.json -webpack.config.js -CMakeLists.txt -debugAdapters/install.lock* -typings/** -**/*.map -*.d.ts - -# ignore i18n language files -i18n/** - -# ignore node_modules -node_modules/ +** +!package.json +!README.md +!LICENSE.txt +!ThirdPartyNotices.txt +!LanguageCCPP_color.png +!dist/hornet.js +!assets/callGraph/graph.js +!assets/callGraph/layout.js +!assets/callGraph/graph.css diff --git a/Extension/LICENSE.txt b/Extension/LICENSE.txt new file mode 100644 index 000000000..9bcfb3ece --- /dev/null +++ b/Extension/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Microsoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Extension/LanguageCCPP_color.png b/Extension/LanguageCCPP_color.png new file mode 100644 index 000000000..18773f3f7 Binary files /dev/null and b/Extension/LanguageCCPP_color.png differ diff --git a/Extension/README.md b/Extension/README.md index 6a06178cc..bd20cbd79 100644 --- a/Extension/README.md +++ b/Extension/README.md @@ -1,78 +1,103 @@ -# C/C++ for Visual Studio Code +# Hornet C/C++ -#### [Repository](https://github.com/microsoft/vscode-cpptools)  |  [Issues](https://github.com/microsoft/vscode-cpptools/issues)  |  [Documentation](https://code.visualstudio.com/docs/languages/cpp)  |  [Code Samples](https://github.com/microsoft/vscode-cpptools/tree/main/Code%20Samples) +Hornet is an independent C/C++ language extension built around a shared language-engine interface and clangd. This 0.1.9 release implements the V1 scope of `request.md`: Compiler support, a Hybrid routing framework, call/type hierarchy views, automatic project indexing and compilation database management. -[![Badge](https://aka.ms/vsls-badge)](https://aka.ms/vsls) +Tag and Flyweight appear in the mode picker as not yet implemented; selecting either leaves the current service unchanged. A previously saved unavailable mode uses Compiler for the current session and reports this in the status tooltip. Hybrid currently uses clangd alone; its fallback index will be added in later phases. -The C/C++ extension adds language support for C/C++ to Visual Studio Code, including [editing (IntelliSense)](https://code.visualstudio.com/docs/cpp/cpp-ide) and [debugging](https://code.visualstudio.com/docs/cpp/cpp-debug) features. +## Get started -## Pre-requisites -C++ is a compiled language meaning your program's source code must be translated (compiled) before it can be run on your computer. VS Code is first and foremost an editor, and relies on command-line tools to do much of the development workflow. The C/C++ extension **does not include a C++ compiler or debugger**. You will need to install these tools or use those already installed on your computer. - * C++ compiler pre-installed - * C++ debugger pre-installed +1. Open a trusted C/C++ workspace. Hornet automatically searches PATH, common LLVM installations and the official clangd extension's managed installation. If missing, it downloads the official clangd 22.1.6 archive, verifies its SHA-256 checksum, and installs it in Hornet's storage on the workspace host. No path selection is required. Downloads support Windows x64, Linux x64 with glibc, and macOS x64/arm64; other hosts use a locally installed clangd. SSH, WSL and containers perform discovery and installation inside that environment. +2. Install the Hornet VSIX and open a trusted C/C++ workspace folder. +3. Hornet automatically creates `.vscode/hornet/compile-db/compile_commands.json`, which is the database read by the language service. It obtains build parameters from the selected CMake preset/build directory, including nested Debug/Release layouts, and preserves the include paths, macros and cross-compiler flags. Only one automatic configuration is used at a time. **Hornet C/C++: Import Compilation Database** supports additional explicit inputs. +4. Hornet automatically builds the project index when the folder opens, even before you open a source file. The index status shows discovery, parsing, completed/total counts and percentages when clangd supplies them, elapsed waiting time, then **Index ready**. Click a running index to see its detailed log. A separate **Hornet: Hybrid/Compiler** status item stays visible and opens the mode picker. +5. To build the index manually after startup, run **Hornet Build Index** from the command palette or a folder's Explorer context menu, or click **Hornet: Index ready**. The command refreshes compilation commands, rediscovers unconfigured sources, and waits for indexing to finish. **Sync Project Index** remains an alias. -
+Example settings: -Here is a list of compilers and architectures per platform officially supported by the extension. These are reflected by the available [IntelliSense modes](https://code.visualstudio.com/docs/cpp/configure-intellisense-crosscompilation#_intellisense-mode) from the extension's IntelliSense configuration. Note that support for other compilers may be limited. +```json +{ + "hornet-cpp.mode": "hybrid", + "hornet-cpp.clangd.path": "clangd", + "hornet-cpp.cpuUsage": "Medium", + "hornet-cpp.clangd.ignoreDiagnostics": "not_indexed", + "hornet-cpp.clangd.enableInlayHints": true, + "hornet-cpp.syntaxColor.enable": true +} +``` -Platform | Compilers | Architectures -:--- | :--- | :--- -Windows | MSVC, Clang, GCC | x64, x86, arm64, arm -Linux | Clang, GCC | x64, x86, arm64, arm -macOS | Clang, GCC | x64, x86, arm64 +Without a compile database, clangd can still provide basic browsing. Analysis may be incomplete. Hybrid suppresses rename, code actions and diagnostics for files without an explicit compile command. This also applies to headers whose commands clangd merely infers. Compiler mode allows these requests; diagnostic filtering remains configurable. -For more information about installing the required tools or setting up the extension, please follow the tutorials below. -
-
+For an unconfigured project, Hornet discovers first-party source files and `include`/`includes`/`inc` directories and writes separate inferred browsing commands. Opening a call graph parses the discovered files (up to 250) so callers in unopened files are included. These commands do not replace real build flags or mark the project as configured. Parse errors and missing build configuration are shown in the graph; macros and conditional compilation require the project's actual compilation database. -## Overview and tutorials -* [C/C++ extension overview](https://code.visualstudio.com/docs/languages/cpp) -* [Introductory Videos](https://code.visualstudio.com/docs/cpp/introvideos-cpp) +The semantic index is persisted as clangd `.idx` cache files beside the selected compilation database: `.vscode/hornet/compile-db/.cache/clangd/index/`, or under `compile-db/fallback/.cache/clangd/index/` for inferred commands. Subsequent startups reuse unchanged shards and index changed files. Automatic discovery is bounded to 1,000 first-party source files, 500 directories and six directory levels; larger projects should provide a compilation database. Indexing does not compile or link the application. -C/C++ extension tutorials per compiler and platform -* [Microsoft C++ compiler (MSVC) on Windows](https://code.visualstudio.com/docs/cpp/config-msvc) -* [GCC and Mingw-w64 on Windows](https://code.visualstudio.com/docs/cpp/config-mingw) -* [GCC on Windows Subsystem for Linux (WSL)](https://code.visualstudio.com/docs/cpp/config-wsl) -* [GCC on Linux](https://code.visualstudio.com/docs/cpp/config-linux) -* [Clang on macOS](https://code.visualstudio.com/docs/cpp/config-clang-mac) +## Features -## Quick links -* [Editing features (IntelliSense)](https://code.visualstudio.com/docs/cpp/cpp-ide) -* [IntelliSense configuration](https://code.visualstudio.com/docs/cpp/customize-default-settings-cpp) -* [Enhanced colorization](https://code.visualstudio.com/docs/cpp/colorization-cpp) -* [Debugging](https://code.visualstudio.com/docs/cpp/cpp-debug) -* [Debug configuration](https://code.visualstudio.com/docs/cpp/launch-json-reference) -* [Enable logging for IntelliSense or debugging](https://code.visualstudio.com/docs/cpp/enable-logging-cpp) +- Completion, hover, signatures, definition/declaration, references, rename and code actions. +- Semantic highlighting, inlay hints, outline, workspace symbols, folding and formatting. +- Native call/type hierarchy providers, an interactive function call diagram, and lazy **Call Graph** and **Type Hierarchy** sidebars. +- Database import, merge, validation, normalization, source tracking, file watching, export and CMake/Bear generation. +- Independent settings and servers for each workspace folder. +- Per-file/folder index synchronization and project refresh; graceful process cleanup and bounded crash recovery. -## Questions and feedback +Features are registered according to the installed clangd version's advertised capabilities. Use a recent clangd with LSP 3.17 hierarchy support. Other active C/C++ extensions can produce duplicate results; Hornet records their presence in the output log without showing a startup warning or modifying them. -**[FAQs](https://code.visualstudio.com/docs/cpp/faq-cpp)** -
-Check out the FAQs before filing a question. -
+Right-click a C/C++ function and choose **Hornet Show Graph**. The diagram opens in the bottom **Hornet Graph** panel tab alongside Terminal and Ports, leaving the editor layout intact. Switching panel tabs preserves the graph and viewport. The diagram initially shows only the selected function, its direct callers and its direct callees, including unopened source files. Controls stay scoped to the selected function: ancestors can expand only their caller chain, and descendants only their callee chain. Other callees of ancestors and other callers of descendants are never queried or drawn. The center has both sides; eligible function rectangles have **+/−** controls: **left** expands/collapses callers, **right** expands/collapses callees. Each plus opens one additional level in that direction; deeper levels remain closed until clicked. Reopening a collapsed branch restores its previously opened descendants. Collapsing hides that branch's descendants while preserving functions still reachable through other expanded branches. Results are cached until refresh; a plus appears only for hidden relationships, a minus only for a branch that can be collapsed, and no control appears for an empty or already-visible side. -**[Provide feedback](https://github.com/microsoft/vscode-cpptools/issues/new/choose)** -
-File questions, issues, or feature requests for the extension. -
+The layout ranks functions by actual call direction, groups related branches to reduce crossings, and reserves lanes around intervening nodes for calls that skip columns. Calls leave the caller's right side and enter the callee's left side; recursive groups use dashed outside loops. Caller/callee colors reflect their relationship to the selected root. Choose rounded or square elbow connectors. Related branches share aligned spines, uninterrupted chains stay horizontal, and fixed-size arrow tips meet the vertical center of the destination port. Expanding or collapsing a branch recomputes the whole layout, reserves space for whole subtrees and moves sibling branches to make room, aligns single-child chains, and fits the result into the canvas. Progress-only updates do not rearrange nodes. -**[Known issues](https://github.com/Microsoft/vscode-cpptools/issues)** -
-If someone has already filed an issue that encompasses your feedback, please leave a 👍 or 👎 reaction on the issue to upvote or downvote it to help us prioritize the issue. -
+Drag the background to pan, use the mouse wheel or toolbar to zoom, double-click a function to open its source, or select **设为中心** to start a new graph from it. A graph loads at most 250 functions; use a new center to explore further. Call information comes from clangd and depends on the project's compile commands and index coverage. **Show Type Hierarchy** continues to open the type sidebar. -**[Quick survey](https://aka.ms/vcvscodesurvey)** -
-Let us know what you think of the extension by taking the quick survey. +Imported databases are merged into `.vscode/hornet/compile-db/compile_commands.json`; `sources.json` records origins. Later imports override earlier entries for the same canonical file. Importing does not execute compiler command strings. CMake generation runs configure in `build/`; use a CMake generator that supports compile commands. Bear runs the explicitly entered JSON argument array without a shell. -## Contribution +Driver probing is disabled unless paths are explicitly allowed in the machine-level `hornet-cpp.clangd.queryDriver` setting. Hornet disables clangd configuration loading so a workspace `.clangd` file cannot bypass Hornet's managed settings. clangd's own index cache and background indexing remain under clangd's control; Hornet's exclude patterns apply to manual folder synchronization only. -Contributions are always welcome. Please see our [contributing guide](CONTRIBUTING.md) for more details. +## Build and test -## Microsoft Open Source Code of Conduct +From `Extension/`, with Node.js 20 or newer: -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact opencode@microsoft.com with any additional questions or comments. +```sh +npm ci +npm run compile +npm test +npm run package +``` -## Data and telemetry +To include the real clangd integration test, set `HORNET_TEST_CLANGD` to an absolute executable path before `npm test`. Open `Extension/` in VS Code and press F5 for interactive testing. The default test suite does not launch an Extension Host. -This extension collects usage data and sends it to Microsoft to help improve our products and services. Collection of telemetry is controlled via the same setting provided by Visual Studio Code: `"telemetry.enableTelemetry"`. Read our [privacy statement](https://go.microsoft.com/fwlink/?LinkId=521839) to learn more. +## Extension API + +```typescript +const extension = vscode.extensions.getExtension('hornet.hornet-cpp'); +if (!extension) throw new Error('Hornet C/C++ is not installed'); +const exported = await extension.activate(); +const api = exported.getApi(1); +await api.importCompilationDatabases( + ['/project/module-a/build/compile_commands.json'], + vscode.Uri.file('/project').toString() +); +const command = await api.getCompileCommand('/project/src/main.cpp'); +await api.refreshIndex(vscode.Uri.file('/project').toString()); +``` + +The optional workspace URI avoids ambiguity in multi-root workspaces. The TypeScript contract is in `src/hornet/api/hornetCppApi.ts` in the source repository. + +## Release boundaries + +No native binaries, debugger, Microsoft private runtime, telemetry or experiments are shipped. Tag/Flyweight servers, heuristic database generation, global-storage indexes, cache rebuild/sharding, RTOS headers, inactive-code styling and million-file performance certification remain future work. The source repository's `Documentation/Hornet-Implementation.md` maps implemented behavior and remaining phases to the design. + +The development publisher is `hornet`; verify publisher ownership before marketplace publication. Local VSIX installation and public Marketplace, Open VSX and GitHub Release distribution are supported. + +## License + +MIT. This fork retains the upstream MIT copyright notices. Historical upstream source remains available in the repository but is excluded from the Hornet bundle and package. See `ThirdPartyNotices.txt` for bundled JavaScript dependencies. clangd is installed separately under its own license. + +## Platform builds and releases + +Windows, Linux, macOS and Alpine target packages are retained. Build all desktop/server targets with `npm run package:all`, or a single target with e.g. `npm run package:linux-x64`, `npm run package:darwin-arm64` or `npm run package:win32-x64`. Outputs are written to `Extension/artifacts/`. Stable and pre-release packages are supported. + +Public publishing entrypoints are `npm run publish:marketplace -- --vsix ` and `npm run publish:openvsx -- --vsix ` (credentials come from `VSCE_PAT` / `OVSX_PAT`). Add `--dry-run` to inspect the publish plan. The manual GitHub release workflow also supports draft releases. Only Microsoft internal feeds, signing and proprietary runtime acquisition are excluded. See `Documentation/Hornet-Releasing.md` in the repository for the full matrix and release instructions. + +Build tasks preserve `windows`, `linux` and `osx` overrides. Use task type `hornet-cpp.build`; existing `cppbuild` tasks are also supported. + +If automatic setup fails (for example, GitHub is unreachable), the status bar shows **Hornet: Retry clangd**. Clicking it retries discovery and download without opening a file picker. Downloads respect the VS Code HTTP proxy setting and HTTPS_PROXY/HTTP_PROXY. **Hornet C/C++: Configure clangd** remains available for optional manual selection. Explicit custom executable paths are respected. Open **Hornet C/C++: Open Logs** to see the extension version, location and backend startup details. diff --git a/Extension/ThirdPartyNotices.txt b/Extension/ThirdPartyNotices.txt index c39e33537..4691a0fab 100644 --- a/Extension/ThirdPartyNotices.txt +++ b/Extension/ThirdPartyNotices.txt @@ -1,4305 +1,251 @@ -NOTICES AND INFORMATION -Do Not Translate or Localize +Hornet C/C++ third-party notices -This software incorporates material from third parties. -Microsoft makes certain open source code available at https://3rdpartysource.microsoft.com, -or you may send a check or money order for US $5.00, including the product name, -the open source component name, platform, and version number, to: +No native binaries are included. clangd is installed separately. -Source Code Compliance Team -Microsoft Corporation -One Microsoft Way -Redmond, WA 98052 -USA +======================================================================== +agent-base 7.1.4 (MIT) -Notwithstanding any other terms, you may reverse engineer this software to the extent -required to debug changes to any libraries licensed under the GNU Lesser General Public License. - ---------------------------------------------------------- - -lldb-tools/lldb-mi 2388bd74133bc21eac59b2e2bf97f2a30770a315 - Apache-2.0 WITH LLVM-exception - - -Copyright (c) 2010 Apple Inc. - -============================================================================== -The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: -============================================================================== - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - ----- LLVM Exceptions to the Apache 2.0 License ---- - -As an exception, if, as a result of your compiling your source code, portions -of this Software are embedded into an Object form of such source code, you -may redistribute such embedded portions in such Object form without complying -with the conditions of Sections 4(a), 4(b) and 4(d) of the License. - -In addition, if you combine or link compiled forms of this Software with -software that is licensed under the GPLv2 ("Combined Software") and if a -court of competent jurisdiction determines that the patent provision (Section -3), the indemnity provision (Section 9) or other Section of the License -conflicts with the conditions of the GPLv2, you may retroactively and -prospectively choose to deem waived or otherwise exclude such Section(s) of -the License, but only in their entirety and only with respect to the Combined -Software. - -============================================================================== -Software from third parties included in the LLVM Project: -============================================================================== -The LLVM Project contains third party software which is under different license -terms. All such code will be identified clearly using at least one of two -mechanisms: -1) It will be in a separate directory tree with its own `LICENSE.txt` or - `LICENSE` file at the top containing the specific license and restrictions - which apply to that software, or -2) It will contain specific license and restriction terms at the top of every - file. - -============================================================================== -Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): -============================================================================== -University of Illinois/NCSA -Open Source License - -Copyright (c) 2010 Apple Inc. -All rights reserved. - -Developed by: - - LLDB Team - - http://lldb.llvm.org/ - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal with -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimers. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimers in the - documentation and/or other materials provided with the distribution. - - * Neither the names of the LLDB Team, copyright holders, nor the names of - its contributors may be used to endorse or promote products derived from - this Software without specific prior written permission. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE -SOFTWARE. - - - ---------------------------------------------------------- - ---------------------------------------------------------- - -webidl-conversions 3.0.1 - BSD-2-Clause -https://github.com/jsdom/webidl-conversions#readme - -Copyright (c) 2014, Domenic Denicola - -# The BSD 2-Clause License - -Copyright (c) 2014, Domenic Denicola -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -esprima 4.0.1 - BSD-2-Clause AND BSD-3-Clause -http://esprima.org/ - -Copyright JS Foundation and other contributors, https://js.foundation - -Copyright JS Foundation and other contributors, https://js.foundation/ - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -anymatch 3.1.3 - ISC -https://github.com/micromatch/anymatch - -Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com) - -The ISC License - -Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com) - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -fastq 1.20.1 - ISC -https://github.com/mcollina/fastq#readme - -Copyright (c) 2015-2020, Matteo Collina - -Copyright (c) 2015-2020, Matteo Collina - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -glob 7.2.3 - ISC -https://github.com/isaacs/node-glob#readme - -Copyright (c) Isaac Z. Schlueter and Contributors - -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -## Glob Logo - -Glob's logo created by Tanya Brassie , licensed -under a Creative Commons Attribution-ShareAlike 4.0 International License -https://creativecommons.org/licenses/by-sa/4.0/ - - ---------------------------------------------------------- - ---------------------------------------------------------- - -glob-parent 5.1.2 - ISC -https://github.com/gulpjs/glob-parent#readme - -Copyright (c) 2015, 2019 Elan Shanker - -The ISC License - -Copyright (c) 2015, 2019 Elan Shanker - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -inflight 1.0.6 - ISC -https://github.com/isaacs/inflight - -Copyright (c) Isaac Z. Schlueter - -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -inherits 2.0.4 - ISC -https://github.com/isaacs/inherits#readme - -Copyright (c) Isaac Z. Schlueter - -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - - - ---------------------------------------------------------- - ---------------------------------------------------------- - -isexe 2.0.0 - ISC -https://github.com/isaacs/isexe#readme - -Copyright (c) Isaac Z. Schlueter and Contributors - -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -minimatch 3.1.5 - ISC -https://github.com/isaacs/minimatch#readme - -Copyright (c) Isaac Z. Schlueter and Contributors - -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -minimatch 4.2.6 - ISC -https://github.com/isaacs/minimatch#readme - -Copyright (c) 2011-2022 Isaac Z. Schlueter and Contributors - -The ISC License - -Copyright (c) 2011-2022 Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -minimatch 5.1.9 - ISC -https://github.com/isaacs/minimatch#readme - -Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors - -The ISC License - -Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -once 1.4.0 - ISC -https://github.com/isaacs/once#readme - -Copyright (c) Isaac Z. Schlueter and Contributors - -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -semver 7.7.4 - ISC -https://github.com/npm/node-semver#readme - -Copyright Isaac Z. Schlueter -Copyright (c) Isaac Z. Schlueter and Contributors - -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -which 2.0.2 - ISC -https://github.com/isaacs/node-which#readme - -Copyright (c) Isaac Z. Schlueter and Contributors - -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -wrappy 1.0.2 - ISC -https://github.com/npm/wrappy - -Copyright (c) Isaac Z. Schlueter and Contributors - -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -fs.realpath 1.0.0 - ISC AND MIT -https://github.com/isaacs/fs.realpath#readme - -Copyright (c) Isaac Z. Schlueter and Contributors -Copyright Joyent, Inc. and other Node contributors - -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ----- - -This library bundles a version of the `fs.realpath` and `fs.realpathSync` -methods from Node.js v0.10 under the terms of the Node.js MIT license. - -Node's license follows, also included at the header of `old.js` which contains -the licensed code: - - Copyright Joyent, Inc. and other Node contributors. - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -@microsoft/applicationinsights-channel-js 3.3.11 - LicenseRef-scancode-generic-cla AND MIT -https://github.com/microsoft/ApplicationInsights-JS#readme - -Copyright (c) Microsoft Corporation -Copyright (c) Microsoft and contributors -Copyright (c) 2022 NevWare21 Solutions LLC -Copyright (c) 2023 NevWare21 Solutions LLC -Copyright (c) 2024 NevWare21 Solutions LLC -Copyright (c) 2025 NevWare21 Solutions LLC -Copyright (c) 2022-2025 NevWare21 Solutions LLC -Copyright (c) NevWare21 Solutions LLC and contributors - -The MIT License (MIT) - -Copyright (c) Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -@microsoft/applicationinsights-common 3.3.11 - LicenseRef-scancode-generic-cla AND MIT -https://github.com/microsoft/ApplicationInsights-JS#readme - -Copyright (c) Microsoft Corporation -Copyright (c) Microsoft and contributors -Copyright (c) 2022 NevWare21 Solutions LLC -Copyright (c) 2023 NevWare21 Solutions LLC -Copyright (c) 2024 NevWare21 Solutions LLC -Copyright (c) 2025 NevWare21 Solutions LLC -Copyright (c) 2022-2025 NevWare21 Solutions LLC - -The MIT License (MIT) - -Copyright (c) Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -@microsoft/applicationinsights-core-js 3.3.11 - LicenseRef-scancode-generic-cla AND MIT -https://github.com/microsoft/ApplicationInsights-JS#readme - -Copyright (c) Microsoft Corporation -Copyright (c) Microsoft and contributors -Copyright (c) 2022 NevWare21 Solutions LLC -Copyright (c) 2023 NevWare21 Solutions LLC -Copyright (c) 2024 NevWare21 Solutions LLC -Copyright (c) 2025 NevWare21 Solutions LLC -Copyright (c) 2022-2025 NevWare21 Solutions LLC -Copyright (c) NevWare21 Solutions LLC and contributors - -The MIT License (MIT) - -Copyright (c) Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -@microsoft/applicationinsights-web-basic 3.3.11 - LicenseRef-scancode-generic-cla AND MIT -https://github.com/microsoft/ApplicationInsights-JS#readme - -Copyright (c) Microsoft Corporation -Copyright (c) Microsoft and contributors -Copyright (c) 2022 NevWare21 Solutions LLC -Copyright (c) 2023 NevWare21 Solutions LLC -Copyright (c) 2024 NevWare21 Solutions LLC -Copyright (c) 2025 NevWare21 Solutions LLC -Copyright (c) 2022-2025 NevWare21 Solutions LLC -Copyright (c) NevWare21 Solutions LLC and contributors - -The MIT License (MIT) - -Copyright (c) Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -vscode-cpptools 7.1.1 - LicenseRef-scancode-generic-cla AND MIT -https://github.com/Microsoft/vscode-cpptools-api#readme - -Copyright (c) Microsoft Corporation - -vscode-cpptools-api - -Copyright (c) Microsoft Corporation -All rights reserved. - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -@microsoft/1ds-core-js 4.3.11 - MIT -https://github.com/microsoft/ApplicationInsights-JS#readme - -copyright Microsoft 2018 -Copyright (c) Microsoft Corporation -Copyright (c) Microsoft and contributors -Copyright (c) 2022 NevWare21 Solutions LLC -Copyright (c) 2023 NevWare21 Solutions LLC -Copyright (c) 2024 NevWare21 Solutions LLC -Copyright (c) 2025 NevWare21 Solutions LLC -Copyright (c) 2022-2025 NevWare21 Solutions LLC -Copyright (c) NevWare21 Solutions LLC and contributors - -The MIT License (MIT) - -Copyright (c) Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---------------------------------------------------------- - ---------------------------------------------------------- - -@microsoft/1ds-post-js 4.3.11 - MIT -https://github.com/microsoft/ApplicationInsights-JS#readme - -copyright Microsoft 2018 -copyright Microsoft 2020 -copyright Microsoft 2018-2020 -copyright Microsoft 2022 Simple -Copyright (c) Microsoft Corporation -Copyright (c) Microsoft and contributors -Copyright (c) 2022 NevWare21 Solutions LLC -Copyright (c) 2023 NevWare21 Solutions LLC -Copyright (c) 2024 NevWare21 Solutions LLC -Copyright (c) 2025 NevWare21 Solutions LLC -Copyright (c) 2022-2025 NevWare21 Solutions LLC -Copyright (c) NevWare21 Solutions LLC and contributors - -The MIT License (MIT) - -Copyright (c) Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---------------------------------------------------------- - ---------------------------------------------------------- - -@microsoft/applicationinsights-shims 3.0.1 - MIT -https://github.com/microsoft/ApplicationInsights-JS/tree/main/tools/shims - -Copyright (c) Microsoft Corporation -Copyright (c) Microsoft and contributors - -The MIT License (MIT) - -Copyright (c) Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -@microsoft/dynamicproto-js 2.0.3 - MIT -https://github.com/microsoft/DynamicProto-JS#readme - -Copyright (c) 2022 Nevware21 -Copyright (c) Microsoft Corporation -Copyright (c) Microsoft and contributors - -The MIT License (MIT) - -Copyright (c) Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -@nevware21/ts-async 0.5.5 - MIT -https://github.com/nevware21/ts-async - -Copyright (c) 2022 NevWare21 Solutions LLC -Copyright (c) 2023 NevWare21 Solutions LLC -Copyright (c) 2024 NevWare21 Solutions LLC -Copyright (c) 2025 NevWare21 Solutions LLC -Copyright (c) 2022-2025 NevWare21 Solutions LLC -Copyright (c) NevWare21 Solutions LLC and contributors - -MIT License - -Copyright (c) 2022 NevWare21 Solutions LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -@nevware21/ts-utils 0.14.0 - MIT -https://github.com/nevware21/ts-utils - -Copyright (c) 2022 NevWare21 Solutions LLC -Copyright (c) 2023 NevWare21 Solutions LLC -Copyright (c) 2024 NevWare21 Solutions LLC -Copyright (c) 2025 NevWare21 Solutions LLC -Copyright (c) 2026 NevWare21 Solutions LLC -Copyright (c) 2022-2025 NevWare21 Solutions LLC -Copyright (c) NevWare21 Solutions LLC and contributors - -MIT License - -Copyright (c) 2022 NevWare21 Solutions LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -@nodelib/fs.scandir 2.1.5 - MIT - - -Copyright (c) Denis Malinochkin - -The MIT License (MIT) - -Copyright (c) Denis Malinochkin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -@nodelib/fs.stat 2.0.5 - MIT - - -Copyright (c) Denis Malinochkin - -The MIT License (MIT) - -Copyright (c) Denis Malinochkin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -@nodelib/fs.walk 1.2.8 - MIT - - -Copyright (c) Denis Malinochkin - -The MIT License (MIT) - -Copyright (c) Denis Malinochkin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -@vscode/extension-telemetry 0.9.9 - MIT - - -Copyright (c) Microsoft Corporation - -vscode-extension-telemetry - -The MIT License (MIT) - -Copyright (c) Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---------------------------------------------------------- - ---------------------------------------------------------- - -@xmldom/xmldom 0.8.13 - MIT -https://github.com/xmldom/xmldom - -Copyright 2019 - present Christopher J. Brody and other contributors -Copyright 2012 - 2017 @jindw and other contributors - -Copyright 2019 - present Christopher J. Brody and other contributors, as listed in: https://github.com/xmldom/xmldom/graphs/contributors -Copyright 2012 - 2017 @jindw and other contributors, as listed in: https://github.com/jindw/xmldom/graphs/contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -array-timsort 1.0.3 - MIT -https://github.com/kaelzhang/node-array-timsort - -Copyright (c) 2015 Marco Ziccardi - -The MIT License - -Copyright (c) 2015 Marco Ziccardi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -balanced-match 1.0.2 - MIT -https://github.com/juliangruber/balanced-match - -Copyright (c) 2013 Julian Gruber - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -base64-js 1.5.1 - MIT -https://github.com/beatgammit/base64-js - -Copyright (c) 2014 Jameson Little - -The MIT License (MIT) - -Copyright (c) 2014 Jameson Little - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -big.js 5.2.2 - MIT -https://github.com/MikeMcl/big.js#readme - -Copyright (c) 2018 Michael Mclaughlin -Copyright (c) 2018 Michael Mclaughlin https://github.com/MikeMcl/big.js/LICENCE - -The MIT Licence (Expat). - -Copyright (c) 2018 Michael Mclaughlin - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - - ---------------------------------------------------------- - ---------------------------------------------------------- - -binary-extensions 2.3.0 - MIT -https://github.com/sindresorhus/binary-extensions#readme - -Copyright (c) Paul Miller (https://paulmillr.com) -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) -Copyright (c) Paul Miller (https://paulmillr.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -brace-expansion 1.1.18 - MIT -https://github.com/juliangruber/brace-expansion - -Copyright (c) 2013 Julian Gruber - -MIT License - -Copyright (c) 2013 Julian Gruber - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -brace-expansion 2.1.4 - MIT -https://github.com/juliangruber/brace-expansion - -Copyright (c) 2013 Julian Gruber - -MIT License - -Copyright (c) 2013 Julian Gruber - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -braces 3.0.3 - MIT -https://github.com/micromatch/braces - -Copyright (c) 2014-present, Jon Schlinkert -Copyright (c) 2019, Jon Schlinkert (https://github.com/jonschlinkert) - -The MIT License (MIT) - -Copyright (c) 2014-present, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -chokidar 3.6.0 - MIT -https://github.com/paulmillr/chokidar - -(c) Paul Miller -Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker - -The MIT License (MIT) - -Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the “Software”), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -comment-json 4.5.1 - MIT -https://github.com/kaelzhang/node-comment-json#readme - -Copyright (c) 2013 kaelzhang <> , contributors http://kael.me - -Copyright (c) 2013 kaelzhang <>, contributors -http://kael.me/ - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -concat-map 0.0.1 - MIT -https://github.com/substack/node-concat-map - - -This software is released under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -core-util-is 1.0.3 - MIT -https://github.com/isaacs/core-util-is#readme - -Copyright Node.js contributors -Copyright Joyent, Inc. and other Node contributors - -Copyright Node.js contributors. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -emojis-list 3.0.0 - MIT -https://nidecoc.io/Kikobeats/emojis-list - -Copyright (c) 2015 Kiko Beats -(c) Kiko Beats (http://www.kikobeats.com) - -The MIT License (MIT) - -Copyright © 2015 Kiko Beats - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -escape-string-regexp 2.0.0 - MIT -https://github.com/sindresorhus/escape-string-regexp#readme - -(c) Sindre Sorhus (https://sindresorhus.com) -Copyright (c) Sindre Sorhus (sindresorhus.com) - -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -fast-glob 3.3.3 - MIT -https://github.com/mrmlnc/fast-glob#readme - -Copyright (c) Denis Malinochkin - -The MIT License (MIT) - -Copyright (c) Denis Malinochkin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -fill-range 7.1.1 - MIT -https://github.com/jonschlinkert/fill-range - -Copyright (c) 2014-present, Jon Schlinkert -Copyright (c) 2019, Jon Schlinkert (https://github.com/jonschlinkert) - -The MIT License (MIT) - -Copyright (c) 2014-present, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -fsevents 2.3.3 - MIT -https://github.com/fsevents/fsevents - -(c) 2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller -Copyright (c) 2010-2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller - -MIT License ------------ - -Copyright (C) 2010-2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -is-binary-path 2.1.0 - MIT -https://github.com/sindresorhus/is-binary-path#readme - -(c) Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) -Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) - -MIT License - -Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -is-extglob 2.1.1 - MIT -https://github.com/jonschlinkert/is-extglob - -Copyright (c) 2014-2016, Jon Schlinkert -Copyright (c) 2016, Jon Schlinkert (https://github.com/jonschlinkert) - -The MIT License (MIT) - -Copyright (c) 2014-2016, Jon Schlinkert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -is-glob 4.0.3 - MIT -https://github.com/micromatch/is-glob - -Copyright (c) 2014-2017, Jon Schlinkert -Copyright (c) 2019, Jon Schlinkert (https://github.com/jonschlinkert) - -The MIT License (MIT) - -Copyright (c) 2014-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -is-number 7.0.0 - MIT -https://github.com/jonschlinkert/is-number - -Copyright (c) 2014-present, Jon Schlinkert -Copyright (c) 2018, Jon Schlinkert (https://github.com/jonschlinkert) - -The MIT License (MIT) - -Copyright (c) 2014-present, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -json5 2.2.3 - MIT -http://json5.org/ - -(c) 2019 Denis Pushkarev -copyright (c) 2019 Denis Pushkarev -Copyright (c) 2012-2018 Aseem Kishore, and others - -MIT License - -Copyright (c) 2012-2018 Aseem Kishore, and [others]. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -[others]: https://github.com/json5/json5/contributors - - ---------------------------------------------------------- - ---------------------------------------------------------- - -loader-utils 2.0.4 - MIT -https://github.com/webpack/loader-utils#readme - -Copyright JS Foundation and other contributors - -Copyright JS Foundation and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -merge2 1.4.1 - MIT -https://github.com/teambition/merge2 - -Copyright (c) 2014-2020 Teambition -(c) Teambition (https://www.teambition.com) - -The MIT License (MIT) - -Copyright (c) 2014-2020 Teambition - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -micromatch 4.0.8 - MIT -https://github.com/micromatch/micromatch - -Copyright (c) 2014-present, Jon Schlinkert -Copyright (c) 2024, Jon Schlinkert (https://github.com/jonschlinkert) - -The MIT License (MIT) - -Copyright (c) 2014-present, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -mkdirp 3.0.1 - MIT -https://github.com/isaacs/node-mkdirp#readme - -Copyright (c) 2011-2023 James Halliday (mail@substack.net) and Isaac Z. Schlueter (i@izs.me) - -Copyright (c) 2011-2023 James Halliday (mail@substack.net) and Isaac Z. Schlueter (i@izs.me) - -This project is free software released under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -node-fetch 2.7.0 - MIT -https://github.com/bitinn/node-fetch - -Copyright (c) 2016 David Frank - -The MIT License (MIT) - -Copyright (c) 2016 David Frank - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - ---------------------------------------------------------- - ---------------------------------------------------------- - -node-loader 2.1.0 - MIT -https://github.com/webpack-contrib/node-loader - -Copyright JS Foundation and other contributors - -Copyright JS Foundation and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -node-stream-zip 1.15.0 - MIT -https://github.com/antelle/node-stream-zip - -Copyright (c) 2021 Antelle https://github.com/antelle -(c) 2020 Antelle https://github.com/antelle/node-stream-zip/blob/master/LICENSE -Copyright (c) 2012 Another-D-Mention Software and other contributors, http://www.another-d-mention.ro -Portions copyright https://github.com/cthackers/adm-zip https://raw.githubusercontent.com/cthackers/adm-zip/master/LICENSE - -Copyright (c) 2021 Antelle https://github.com/antelle - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -== dependency license: adm-zip == - -Copyright (c) 2012 Another-D-Mention Software and other contributors, -http://www.another-d-mention.ro/ - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ---------------------------------------------------------- - ---------------------------------------------------------- - -node-vcvarsall 1.2.0 - MIT -https://github.com/bobbrow/node-vcvarsall#readme - -Copyright (c) 2025 Bob Brown - -MIT License - -Copyright (c) 2025 Bob Brown - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -node-vswhere 1.0.2 - MIT -https://github.com/bobbrow/node-vswhere#readme - -Copyright (c) 2025 Bob Brown - -MIT License - -Copyright (c) 2025 Bob Brown - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -normalize-path 3.0.0 - MIT -https://github.com/jonschlinkert/normalize-path - -Copyright (c) 2014-2018, Jon Schlinkert -Copyright (c) 2018, Jon Schlinkert (https://github.com/jonschlinkert) - -The MIT License (MIT) - -Copyright (c) 2014-2018, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -path-is-absolute 1.0.1 - MIT -https://github.com/sindresorhus/path-is-absolute#readme - -(c) Sindre Sorhus (https://sindresorhus.com) -Copyright (c) Sindre Sorhus (sindresorhus.com) - -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -picomatch 2.3.2 - MIT -https://github.com/micromatch/picomatch - -Copyright (c) 2017-present, Jon Schlinkert -Copyright (c) 2017-present, Jon Schlinkert (https://github.com/jonschlinkert) - -The MIT License (MIT) - -Copyright (c) 2017-present, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -plist 3.1.0 - MIT -https://github.com/TooTallNate/node-plist#readme - -Copyright (c) 2010-2017 Nathan Rajlich - -(The MIT License) - -Copyright (c) 2010-2017 Nathan Rajlich - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -posix-getopt 1.2.1 - MIT -https://github.com/davepacheco/node-getopt#readme - -Copyright 2011 David Pacheco. -Copyright (c) 2013, Joyent, Inc. - -Copyright (c) 2013, Joyent, Inc. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -queue-microtask 1.2.3 - MIT -https://github.com/feross/queue-microtask - -Copyright (c) Feross Aboukhadijeh -Copyright (c) Feross Aboukhadijeh (https://feross.org) - -The MIT License (MIT) - -Copyright (c) Feross Aboukhadijeh - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -readdirp 3.6.0 - MIT -https://github.com/paulmillr/readdirp - -Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) -Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller ( https://paulmillr.com ) - -MIT License - -Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -reusify 1.1.0 - MIT -https://github.com/mcollina/reusify#readme - -Copyright (c) 2015-2024 Matteo Collina - -The MIT License (MIT) - -Copyright (c) 2015-2024 Matteo Collina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - ---------------------------------------------------------- - ---------------------------------------------------------- - -run-parallel 1.2.0 - MIT -https://github.com/feross/run-parallel - -Copyright (c) Feross Aboukhadijeh -Copyright (c) Feross Aboukhadijeh (http://feross.org) - -The MIT License (MIT) - -Copyright (c) Feross Aboukhadijeh - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -ssh-config 4.4.4 - MIT -https://github.com/cyjake/ssh-config#readme - -Copyright (c) 2017 Chen Yangjian - -MIT License - -Copyright (c) 2017 Chen Yangjian - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -tas-client 0.2.33 - MIT -https://github.com/microsoft/tas-client - -MIT License - -Copyright (c) Microsoft Corporation. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -tmp 0.2.7 - MIT -http://github.com/raszi/node-tmp - -Copyright (c) 2014 KARASZI Istvan -Copyright (c) 2011-2017 KARASZI Istvan - -The MIT License (MIT) - -Copyright (c) 2014 KARASZI István - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -to-regex-range 5.0.1 - MIT -https://github.com/micromatch/to-regex-range - -Copyright (c) 2015-present, Jon Schlinkert -Copyright (c) 2019, Jon Schlinkert (https://github.com/jonschlinkert) - -The MIT License (MIT) - -Copyright (c) 2015-present, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -tr46 0.0.3 - MIT -https://github.com/Sebmaster/tr46.js#readme - - -MIT License - -Copyright (c) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ---------------------------------------------------------- - ---------------------------------------------------------- - -vscode-jsonrpc 8.2.0 - MIT -https://github.com/Microsoft/vscode-languageserver-node#readme - -Copyright (c) Microsoft Corporation - -Copyright (c) Microsoft Corporation - -All rights reserved. - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -vscode-languageclient 9.0.1 - MIT -https://github.com/Microsoft/vscode-languageserver-node#readme - -Copyright (c) Microsoft Corporation - -Copyright (c) Microsoft Corporation - -All rights reserved. - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -vscode-languageserver-protocol 3.17.5 - MIT -https://github.com/Microsoft/vscode-languageserver-node#readme - -Copyright (c) Microsoft Corporation -Copyright (c) TypeFox, Microsoft and others - -Copyright (c) Microsoft Corporation - -All rights reserved. - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -vscode-languageserver-types 3.17.5 - MIT -https://github.com/Microsoft/vscode-languageserver-node#readme - -Copyright (c) Microsoft Corporation - -Copyright (c) Microsoft Corporation - -All rights reserved. - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -vscode-nls 5.2.0 - MIT -https://github.com/Microsoft/vscode-nls#readme - -Copyright (c) Microsoft Corporation - -The MIT License (MIT) - -Copyright (c) Microsoft Corporation - -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, -modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT -OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -vscode-tas-client 0.1.84 - MIT -https://github.com/microsoft/tas-client - -MIT License - -Copyright (c) Microsoft Corporation. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -whatwg-url 5.0.0 - MIT -https://github.com/jsdom/whatwg-url#readme - -Copyright (c) 2015-2016 Sebastian Mayr - -The MIT License (MIT) - -Copyright (c) 2015–2016 Sebastian Mayr - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - ---------------------------------------------------------- - -xmlbuilder 15.1.1 - MIT -http://github.com/oozcitak/xmlbuilder-js - -Copyright (c) 2013 Ozgur Ozcitak - -The MIT License (MIT) - -Copyright (c) 2013 Ozgur Ozcitak - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ---------------------------------------------------------- - -------------------------------------------------------------------- - -Additional Third Party Notices - -The notices above are auto-generated from npm packages. -The notices below are from non-npm sources. - -- ANTLR (http://www.antlr2.org/) -- C++11 Sublime Text Snippets (https://github.com/Rapptz/cpp-sublime-snippet) -- Clang (https://clang.llvm.org/) -- editorconfig-core-js (https://github.com/editorconfig/editorconfig-core-js) -- gcc-11/libgcc (https://packages.ubuntu.com/jammy/gcc-11-base) -- Guidelines Support Library (https://github.com/Microsoft/GSL) -- libc++ (https://libcxx.llvm.org/index.html) -- libexecinfo (https://github.com/ronchaine/libexecinfo) -- libiconv (https://www.gnu.org/software/libiconv/) -- libiconv Win32 modifications (https://www.codeproject.com/Articles/302012/How-to-Build-libiconv-with-Microsoft-Visual-Studio) -- libuv (https://github.com/libuv/libuv) -- LLDB (https://lldb.llvm.org/) -- LLVM (http://llvm.org/) -- MI Debug Engine (https://github.com/Microsoft/MIEngine) -- musl (https://git.musl-libc.org/cgit/musl) -- SQLite (https://www.sqlite.org/) - Includes:functions (from fossil) (https://fossil-scm.org) -- SoftFloat (http://www.jhauser.us/arithmetic/SoftFloat.html) - -%% ANTLR NOTICES AND INFORMATION BEGIN HERE -========================================= -ANTLR 2 License - -We reserve no legal rights to the ANTLR--it is fully in the public domain. An individual or company may do whatever they wish with source code distributed with ANTLR or the code generated by ANTLR, including the incorporation of ANTLR, or its output, into commerical software. -We encourage users to develop software with ANTLR. However, we do ask that credit is given to us for developing ANTLR. By "credit", we mean that if you use ANTLR or incorporate any source code into one of your programs (commercial product, research project, or otherwise) that you acknowledge this fact somewhere in the documentation, research report, etc... If you like ANTLR and have developed a nice tool with the output, please mention that you developed it using ANTLR. In addition, we ask that the headers remain intact in our source code. As long as these guidelines are kept, we expect to continue enhancing this system and expect to make other tools available as they are completed. -In countries where the Public Domain status of the work may not be valid, the author grants a copyright licence to the general public to deal in the work without restriction and permission to sublicence derivates under the terms of any (OSI approved) Open Source licence. -========================================= -END OF ANTLR NOTICES AND INFORMATION - -%% C++11 Sublime Text Snippets NOTICES AND INFORMATION BEGIN HERE -========================================= -C++ Snippets for Sublime Text (https://packagecontrol.io/packages/C%2B%2B%20Snippets) - -Individual snippets based on those from the C++ Snippets for Sublime Text collection are licensed under CC0 1.0 Universal -========================================= -END OF C++11 Sublime Text Snippets NOTICES AND INFORMATION - -%% Clang NOTICES AND INFORMATION BEGIN HERE -========================================= -============================================================================== -The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: -============================================================================== - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - - - ----- LLVM Exceptions to the Apache 2.0 License ---- - -As an exception, if, as a result of your compiling your source code, portions -of this Software are embedded into an Object form of such source code, you -may redistribute such embedded portions in such Object form without complying -with the conditions of Sections 4(a), 4(b) and 4(d) of the License. - -In addition, if you combine or link compiled forms of this Software with -software that is licensed under the GPLv2 ("Combined Software") and if a -court of competent jurisdiction determines that the patent provision (Section -3), the indemnity provision (Section 9) or other Section of the License -conflicts with the conditions of the GPLv2, you may retroactively and -prospectively choose to deem waived or otherwise exclude such Section(s) of -the License, but only in their entirety and only with respect to the Combined -Software. - -============================================================================== -Software from third parties included in the LLVM Project: -============================================================================== -The LLVM Project contains third party software which is under different license -terms. All such code will be identified clearly using at least one of two -mechanisms: -1) It will be in a separate directory tree with its own `LICENSE.txt` or - `LICENSE` file at the top containing the specific license and restrictions - which apply to that software, or -2) It will contain specific license and restriction terms at the top of every - file. - -========================================= -END OF Clang NOTICES AND INFORMATION - -%% editorconfig-core-js NOTICES AND INFORMATION BEGIN HERE -========================================= -Copyright © 2012 EditorConfig Team - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the “Software”), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -========================================= -END OF editorconfig-core-js NOTICES AND INFORMATION - -%% gcc-9/libgcc NOTICES AND INFORMATION BEGIN HERE -========================================= -The following runtime libraries are licensed under the terms of the -GNU General Public License (v3 or later) with version 3.1 of the GCC -Runtime Library Exception (included in this file): - -- libgcc (libgcc/, gcc/libgcc2.[ch], gcc/unwind*, gcc/gthr*, - gcc/coretypes.h, gcc/crtstuff.c, gcc/defaults.h, gcc/dwarf2.h, - gcc/emults.c, gcc/gbl-ctors.h, gcc/gcov-io.h, gcc/libgcov.c, - gcc/tsystem.h, gcc/typeclass.h). +(The MIT License) -https://opensource.org/licenses/gpl-3.0.html +Copyright (c) 2013 Nathan Rajlich -GCC RUNTIME LIBRARY EXCEPTION +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: -Version 3.1, 31 March 2009 +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. -Copyright (C) 2009 Free Software Foundation, Inc. +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -Everyone is permitted to copy and distribute verbatim copies of this -license document, but changing it is not allowed. +======================================================================== +debug 4.4.3 (MIT) -This GCC Runtime Library Exception ("Exception") is an additional -permission under section 7 of the GNU General Public License, version -3 ("GPLv3"). It applies to a given file (the "Runtime Library") that -bears a notice placed by the copyright holder of the file stating that -the file is governed by GPLv3 along with this Exception. +(The MIT License) -When you use GCC to compile a program, GCC may combine portions of -certain GCC header files and runtime libraries with the compiled -program. The purpose of this Exception is to allow compilation of -non-GPL (including proprietary) programs to use, in this way, the -header files and runtime libraries covered by this Exception. +Copyright (c) 2014-2017 TJ Holowaychuk +Copyright (c) 2018-2021 Josh Junon -0. Definitions. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software +and associated documentation files (the 'Software'), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: -A file is an "Independent Module" if it either requires the Runtime -Library for execution after a Compilation Process, or makes use of an -interface provided by the Runtime Library, but is not otherwise based -on the Runtime Library. +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. -"GCC" means a version of the GNU Compiler Collection, with or without -modifications, governed by version 3 (or a specified later version) of -the GNU General Public License (GPL) with the option of using any -subsequent versions published by the FSF. +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -"GPL-compatible Software" is software whose conditions of propagation, -modification and use would permit combination with GCC in accord with -the license of GCC. -"Target Code" refers to output from any compiler for a real or virtual -target processor architecture, in executable form or suitable for -input to an assembler, loader, linker and/or execution -phase. Notwithstanding that, Target Code does not include data in any -format that is used as a compiler intermediate representation, or used -for producing a compiler intermediate representation. -The "Compilation Process" transforms code entirely represented in -non-intermediate languages designed for human-written code, and/or in -Java Virtual Machine byte code, into Target Code. Thus, for example, -use of source code generators and preprocessors need not be considered -part of the Compilation Process, since the Compilation Process can be -understood as starting with the output of the generators or -preprocessors. +======================================================================== +has-flag 3.0.0 (MIT) -A Compilation Process is "Eligible" if it is done using GCC, alone or -with other GPL-compatible software, or if it is done without using any -work based on GCC. For example, using non-GPL-compatible Software to -optimize any GCC intermediate representations would not qualify as an -Eligible Compilation Process. +MIT License -1. Grant of Additional Permission. +Copyright (c) Sindre Sorhus (sindresorhus.com) -You have permission to propagate a work of Target Code formed by -combining the Runtime Library with Independent Modules, even if such -propagation would otherwise violate the terms of GPLv3, provided that -all Target Code was generated by Eligible Compilation Processes. You -may then convey such a combination under terms of your choice, -consistent with the licensing of the Independent Modules. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -2. No Weakening of GCC Copyleft. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -The availability of this Exception does not imply any general -presumption that third-party software is unaffected by the copyleft -requirements of the license of GCC. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +======================================================================== +https-proxy-agent 7.0.6 (MIT) ----LICENSE-------------------------------------------- -GNU GENERAL PUBLIC LICENSE -Version 3, 29 June 2007 -Copyright (C) 2007 Free Software Foundation, Inc. -Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. -Preamble -The GNU General Public License is a free, copyleft license for software and other kinds of works. -The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. -When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. -To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. -For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. -Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. -For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. -Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. -Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. -The precise terms and conditions for copying, distribution and modification follow. -TERMS AND CONDITIONS -0. Definitions. -“This License” refers to version 3 of the GNU General Public License. -“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. -“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. -To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. -A “covered work” means either the unmodified Program or a work based on the Program. -To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. -To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. -An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. -1. Source Code. -The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. -A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. -The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. -The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. -The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. -The Corresponding Source for a work in source code form is that same work. -2. Basic Permissions. -All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. -You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. -Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. -3. Protecting Users' Legal Rights From Anti-Circumvention Law. -No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. -When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. -4. Conveying Verbatim Copies. -You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. -You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. -5. Conveying Modified Source Versions. -You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: -a) The work must carry prominent notices stating that you modified it, and giving a relevant date. -b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. -c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. -d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. -A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. -6. Conveying Non-Source Forms. -You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: -a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. -b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. -c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. -d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. -e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. -A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. -A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. -“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. -If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). -The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. -Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. -7. Additional Terms. -“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. -When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. -Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: -a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or -b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or -c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or -d) Limiting the use for publicity purposes of names of licensors or authors of the material; or -e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or -f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. -All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. -If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. -Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. -8. Termination. -You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). -However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. -Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. -Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. -9. Acceptance Not Required for Having Copies. -You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. -10. Automatic Licensing of Downstream Recipients. -Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. -An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. -You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. -11. Patents. -A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. -A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. -Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. -In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. -If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. -If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. -A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. -Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. -12. No Surrender of Others' Freedom. -If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. -13. Use with the GNU Affero General Public License. -Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. -14. Revised Versions of this License. -The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. -Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. -If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. -Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. -15. Disclaimer of Warranty. -THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. -16. Limitation of Liability. -IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -17. Interpretation of Sections 15 and 16. -If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. -END OF TERMS AND CONDITIONS -========================================= -END OF gcc-9/libgcc NOTICES AND INFORMATION +(The MIT License) -%% Guidelines Support Library NOTICES AND INFORMATION BEGIN HERE -========================================= -Copyright (c) 2015 Microsoft Corporation. All rights reserved. +Copyright (c) 2013 Nathan Rajlich -This code is licensed under the MIT License (MIT). +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -========================================= -END OF Guidelines Support Library NOTICES AND INFORMATION +======================================================================== +ms 2.1.3 (MIT) -%% libc++ NOTICES AND INFORMATION BEGIN HERE -========================================= -The libc++ library is dual licensed under both the University of Illinois -"BSD-Like" license and the MIT license. As a user of this code you may choose -to use it under either license. -============================================================================== -MIT License +The MIT License (MIT) -Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT +Copyright (c) 2020 Vercel, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights +in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -========================================= -END OF libc++ NOTICES AND INFORMATION - -%% LLDB NOTICES AND INFORMATION BEGIN HERE -========================================= -University of Illinois/NCSA -Open Source License - -Copyright (c) 2010 Apple Inc. -All rights reserved. - -Developed by: - - LLDB Team - - http://lldb.llvm.org/ - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal with -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimers. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimers in the - documentation and/or other materials provided with the distribution. - - * Neither the names of the LLDB Team, copyright holders, nor the names of - its contributors may be used to endorse or promote products derived from - this Software without specific prior written permission. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE -SOFTWARE. -========================================= -END OF LLDB NOTICES AND INFORMATION - -%% LLVM NOTICES AND INFORMATION BEGIN HERE -========================================= -LLVM Release License -============================================================================== -University of Illinois/NCSA -Open Source License - -Copyright (c) 2003-2015 University of Illinois at Urbana-Champaign. -All rights reserved. - -Developed by: - - LLVM Team - - University of Illinois at Urbana-Champaign - - http://llvm.org - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal with -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimers. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimers in the - documentation and/or other materials provided with the distribution. - - * Neither the names of the LLVM Team, University of Illinois at - Urbana-Champaign, nor the names of its contributors may be used to - endorse or promote products derived from this Software without specific - prior written permission. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -============================================================================== -Copyrights and Licenses for Third Party Software Distributed with LLVM: -============================================================================== -The LLVM software contains code written by third parties. Such software will -have its own individual LICENSE.TXT file in the directory in which it appears. -This file will describe the copyrights, license, and restrictions which apply -to that code. - -The disclaimer of warranty in the University of Illinois Open Source License -applies to all code in the LLVM Distribution, and nothing in any of the -other licenses gives permission to use the names of the LLVM Team or the -University of Illinois to endorse or promote products derived from this -Software. -The following pieces of software have additional or alternate copyrights, -licenses, and/or restrictions: +======================================================================== +pend 1.2.0 (MIT) -Program Directory -------- --------- -Autoconf llvm/autoconf - llvm/projects/ModuleMaker/autoconf -Google Test llvm/utils/unittest/googletest -OpenBSD regex llvm/lib/Support/{reg*, COPYRIGHT.regex} -pyyaml tests llvm/test/YAMLParser/{*.data, LICENSE.TXT} -ARM contributions llvm/lib/Target/ARM/LICENSE.TXT -md5 contributions llvm/lib/Support/MD5.cpp llvm/include/llvm/Support/MD5.h -========================================= -END OF LLVM NOTICES AND INFORMATION +The MIT License (Expat) -%% MI Debug Engine NOTICES AND INFORMATION BEGIN HERE -========================================= -The MIT License (MIT) - -Copyright (c) 2015 Microsoft Corporation. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +Copyright (c) 2014 Andrew Kelley -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -========================================= -END OF MI Debug Engine NOTICES AND INFORMATION - -%% musl NOTICES AND INFORMATION BEGIN HERE -========================================= -musl as a whole is licensed under the following standard MIT license: - ----------------------------------------------------------------------- -Copyright © 2005-2020 Rich Felker, et al. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation files +(the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------------------------------------------------------------------- - -Authors/contributors include: - -A. Wilcox -Ada Worcester -Alex Dowad -Alex Suykov -Alexander Monakov -Andre McCurdy -Andrew Kelley -Anthony G. Basile -Aric Belsito -Arvid Picciani -Bartosz Brachaczek -Benjamin Peterson -Bobby Bingham -Boris Brezillon -Brent Cook -Chris Spiegel -Clément Vasseur -Daniel Micay -Daniel Sabogal -Daurnimator -David Carlier -David Edelsohn -Denys Vlasenko -Dmitry Ivanov -Dmitry V. Levin -Drew DeVault -Emil Renner Berthing -Fangrui Song -Felix Fietkau -Felix Janda -Gianluca Anzolin -Hauke Mehrtens -He X -Hiltjo Posthuma -Isaac Dunham -Jaydeep Patil -Jens Gustedt -Jeremy Huntwork -Jo-Philipp Wich -Joakim Sindholt -John Spencer -Julien Ramseier -Justin Cormack -Kaarle Ritvanen -Khem Raj -Kylie McClain -Leah Neukirchen -Luca Barbato -Luka Perkov -M Farkas-Dyck (Strake) -Mahesh Bodapati -Markus Wichmann -Masanori Ogino -Michael Clark -Michael Forney -Mikhail Kremnyov -Natanael Copa -Nicholas J. Kain -orc -Pascal Cuoq -Patrick Oppenlander -Petr Hosek -Petr Skocik -Pierre Carrier -Reini Urban -Rich Felker -Richard Pennington -Ryan Fairfax -Samuel Holland -Segev Finer -Shiz -sin -Solar Designer -Stefan Kristiansson -Stefan O'Rear -Szabolcs Nagy -Timo Teräs -Trutz Behn -Valentin Ochs -Will Dietz -William Haddon -William Pitcock - -Portions of this software are derived from third-party works licensed -under terms compatible with the above MIT license: - -The TRE regular expression implementation (src/regex/reg* and -src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed -under a 2-clause BSD license (license text in the source files). The -included version has been heavily modified by Rich Felker in 2012, in -the interests of size, simplicity, and namespace cleanliness. - -Much of the math library code (src/math/* and src/complex/*) is -Copyright © 1993,2004 Sun Microsystems or -Copyright © 2003-2011 David Schultz or -Copyright © 2003-2009 Steven G. Kargl or -Copyright © 2003-2009 Bruce D. Evans or -Copyright © 2008 Stephen L. Moshier or -Copyright © 2017-2018 Arm Limited -and labelled as such in comments in the individual source files. All -have been licensed under extremely permissive terms. - -The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008 -The Android Open Source Project and is licensed under a two-clause BSD -license. It was taken from Bionic libc, used on Android. - -The AArch64 memcpy and memset code (src/string/aarch64/*) are -Copyright © 1999-2019, Arm Limited. - -The implementation of DES for crypt (src/crypt/crypt_des.c) is -Copyright © 1994 David Burren. It is licensed under a BSD license. - -The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was -originally written by Solar Designer and placed into the public -domain. The code also comes with a fallback permissive license for use -in jurisdictions that may not recognize the public domain. - -The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011 -Valentin Ochs and is licensed under an MIT-style license. - -The x86_64 port was written by Nicholas J. Kain and is licensed under -the standard MIT terms. +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. -The mips and microblaze ports were originally written by Richard -Pennington for use in the ellcc project. The original code was adapted -by Rich Felker for build system and code conventions during upstream -integration. It is licensed under the standard MIT terms. -The mips64 port was contributed by Imagination Technologies and is -licensed under the standard MIT terms. +======================================================================== +supports-color 5.5.0 (MIT) -The powerpc port was also originally written by Richard Pennington, -and later supplemented and integrated by John Spencer. It is licensed -under the standard MIT terms. +MIT License -All other files which have no copyright comments are original works -produced specifically for use as part of this library, written either -by Rich Felker, the main author of the library, or by one or more -contibutors listed above. Details on authorship of individual files -can be found in the git version control history of the project. The -omission of copyright and license comments in each file is in the -interest of source tree size. +Copyright (c) Sindre Sorhus (sindresorhus.com) -In addition, permission is hereby granted for all public header files -(include/* and arch/*/bits/*) and crt files intended to be linked into -applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit -the copyright notice and permission notice otherwise required by the -license, and to use these files without any requirement of -attribution. These files include substantial contributions from: +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -Bobby Bingham -John Spencer -Nicholas J. Kain -Rich Felker -Richard Pennington -Stefan Kristiansson -Szabolcs Nagy +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -all of whom have explicitly granted such permission. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -This file previously contained text expressing a belief that most of -the files covered by the above exception were sufficiently trivial not -to be subject to copyright, resulting in confusion over whether it -negated the permissions granted in the license. In the spirit of -permissive licensing, and of not having licensing issues being an -obstacle to adoption, that text has been removed. -========================================= -END OF musl NOTICES AND INFORMATION +======================================================================== +vscode-jsonrpc 8.2.0 (MIT) -%% libexecinfo NOTICES AND INFORMATION BEGIN HERE -========================================= -libexecinfo is licensed for use as follows: +Copyright (c) Microsoft Corporation -==== -Copyright (c) 2003 Maxim Sobolev All rights reserved. - * -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * -THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - -========================================= -END OF libexecinfo NOTICES AND INFORMATION - -%% libiconv NOTICES AND INFORMATION BEGIN HERE -========================================= -GNU LESSER GENERAL PUBLIC LICENSE -Version 2.1, February 1999 - -Copyright (C) 1991, 1999 Free Software Foundation, Inc. - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] -Preamble -The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. - -This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. - -When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. - -To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. - -For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. - -We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. -To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. - -Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. - -Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. - -When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. - -We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. - -For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. - -In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. - -Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. - -The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". - -A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. - -The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) - -"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. - -Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. - -1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. - -You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: - -a) The modified work must itself be a software library. -b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. -c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. -d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. -(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. - -3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. - -Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. - -This option is useful when you wish to copy part of the code of the Library into a program that is not a library. - -4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. - -If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. - -5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. - -However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. - -When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. - -If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) - -Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. - -6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. - -You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: - -a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) -b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. -c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. -d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. -e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. -For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. - -It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. - -7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: - -a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. -b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. -8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. - -9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. - -10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. - -11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. - -This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - -12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. - -13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. - -14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - -NO WARRANTY - -15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -END OF TERMS AND CONDITIONS -How to Apply These Terms to Your New Libraries -If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). - -To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - -one line to give the library's name and an idea of what it does. -Copyright (C) year name of author - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, see -. - -========================================= -END OF libiconv NOTICES AND INFORMATION - -%% libiconv Win32 Modifications NOTICES AND INFORMATION BEGIN HERE -========================================= -GNU LESSER GENERAL PUBLIC LICENSE -Version 3, 29 June 2007 +MIT License -Copyright (C) 2007 Free Software Foundation, Inc. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -0. Additional Definitions. -As used herein, “this License” refers to version 3 of the GNU Lesser General Public License, and the “GNU GPL” refers to version 3 of the GNU General Public License. +======================================================================== +vscode-languageclient 9.0.1 (MIT) -“The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. +Copyright (c) Microsoft Corporation -An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. +All rights reserved. -A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”. +MIT License -The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -1. Exception to Section 3 of the GNU GPL. +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. -2. Conveying Modified Versions. +======================================================================== +vscode-languageserver-protocol 3.17.5 (MIT) -If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: +Copyright (c) Microsoft Corporation -a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or -b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. -3. Object Code Incorporating Material from Library Header Files. +All rights reserved. -The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: +MIT License -a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. -b) Accompany the object code with a copy of the GNU GPL and this license document. -4. Combined Works. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. -b) Accompany the Combined Work with a copy of the GNU GPL and this license document. -c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. -d) Do one of the following: -0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. -1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user’s computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. -e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) -5. Combined Libraries. +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: -a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. -b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. -6. Revised Versions of the GNU Lesser General Public License. +======================================================================== +vscode-languageserver-types 3.17.5 (MIT) -The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. +Copyright (c) Microsoft Corporation -Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. +All rights reserved. -If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy’s public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. -========================================= -END OF libiconv Win32 Modifications NOTICES AND INFORMATION +MIT License -%% libuv NOTICES AND INFORMATION BEGIN HERE -========================================= -libuv is licensed for use as follows: +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -==== -Copyright (c) 2015-present libuv project contributors. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. -==== +======================================================================== +yauzl 3.4.0 (MIT) -This license applies to parts of libuv originating from the -https://github.com/joyent/libuv repository: +The MIT License (MIT) -==== +Copyright (c) 2014 Josh Wolfe -Copyright Joyent, Inc. and other Node contributors. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. - -==== - -This license applies to all parts of libuv that are not externally -maintained libraries. - -The externally maintained libraries used by libuv are: - - - tree.h (from FreeBSD), copyright Niels Provos. Two clause BSD license. - - - inet_pton and inet_ntop implementations, contained in src/inet.c, are - copyright the Internet Systems Consortium, Inc., and licensed under the ISC - license. - - - stdint-msvc2008.h (from msinttypes), copyright Alexander Chemeris. Three - clause BSD license. - - - pthread-fixes.c, copyright Google Inc. and Sony Mobile Communications AB. - Three clause BSD license. - - - android-ifaddrs.h, android-ifaddrs.c, copyright Berkeley Software Design - Inc, Kenneth MacKay and Emergya (Cloud4all, FP7/2007-2013, grant agreement - n° 289016). Three clause BSD license. -========================================= -END OF libuv NOTICES AND INFORMATION - -%% SQLite NOTICES AND INFORMATION BEGIN HERE -========================================= -SQLite is in the -Public Domain -All of the code and documentation in SQLite has been dedicated to the public domain by the authors. All code authors, and representatives of the companies they work for, have signed affidavits dedicating their contributions to the public domain and originals of those signed affidavits are stored in a firesafe at the main offices of Hwaci. Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. - -The previous paragraph applies to the deliverable code and documentation in SQLite - those parts of the SQLite library that you actually bundle and ship with a larger application. Some scripts used as part of the build process (for example the "configure" scripts generated by autoconf) might fall under other open-source licenses. Nothing from these build scripts ever reaches the final deliverable SQLite library, however, and so the licenses associated with those scripts should not be a factor in assessing your rights to copy and use the SQLite library. - -All of the deliverable code in SQLite has been written from scratch. No code has been taken from other projects or from the open internet. Every line of code can be traced back to its original author, and all of those authors have public domain dedications on file. So the SQLite code base is clean and is uncontaminated with licensed code from other projects. - -Buy An SQLite License -Obtaining An License To Use SQLite - -Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Some reasons for obtaining a license include: - -Your company desires warranty of title and/or indemnity against claims of copyright infringement. -You are using SQLite in a jurisdiction that does not recognize the public domain. -You are using SQLite in a jurisdiction that does not recognize the right of an author to dedicate their work to the public domain. -You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite. -Your legal department tells you that you have to purchase a license. -If you feel like you really need to purchase a license for SQLite, Hwaci, the company that employs all the developers of SQLite, will sell you one. All proceeds from the sale of SQLite licenses are used to fund continuing improvement and support of SQLite. - -Contributed Code - -In order to keep SQLite completely free and unencumbered by copyright, all new contributors to the SQLite code base are asked to dedicate their contributions to the public domain. If you want to send a patch or enhancement for possible inclusion in the SQLite source tree, please accompany the patch with the following statement: - -The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under copyright law. -We are not able to accept patches or changes to SQLite that are not accompanied by a statement such as the above. In addition, if you make changes or enhancements as an employee, then a simple statement such as the above is insufficient. You must also send by surface mail a copyright release signed by a company officer. A signed original of the copyright release should be mailed to: - -Hwaci -6200 Maple Cove Lane -Charlotte, NC 28269 -USA -A template copyright release is available in PDF or HTML. You can use this release to make future changes. -========================================= -Functions from fossil (http://fossil-scm.org) - -Copyright (c) 2007 D. Richard Hipp. All rights reserved. - -Redistribution and use in source and binary forms, with or -without modification, are permitted provided that the -following conditions are met: - - 1. Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - - 2. Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -The views and conclusions contained in the software and documentation -are those of the authors and contributors and should not be interpreted -as representing official policies, either expressed or implied, of anybody -else. -========================================= -END OF SQLite NOTICES AND INFORMATION - -%% SoftFloat NOTICES AND INFORMATION BEGIN HERE -========================================= -License for Berkeley SoftFloat Release 3e - -John R. Hauser -2018 January 20 - -The following applies to the whole of SoftFloat Release 3e as well as to -each source file individually. - -Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the -University of California. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions, and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions, and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE -DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -========================================= -END OF SoftFloat NOTICES AND INFORMATION +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Extension/artifacts/chain-tests.log b/Extension/artifacts/chain-tests.log new file mode 100644 index 000000000..fe4d295b4 Binary files /dev/null and b/Extension/artifacts/chain-tests.log differ diff --git a/Extension/artifacts/discovery-tests.log b/Extension/artifacts/discovery-tests.log new file mode 100644 index 000000000..bf8227309 Binary files /dev/null and b/Extension/artifacts/discovery-tests.log differ diff --git a/Extension/artifacts/graph-browser/bottom-panel-graph.png b/Extension/artifacts/graph-browser/bottom-panel-graph.png new file mode 100644 index 000000000..0e26f0505 Binary files /dev/null and b/Extension/artifacts/graph-browser/bottom-panel-graph.png differ diff --git a/Extension/artifacts/graph-browser/call-graph.png b/Extension/artifacts/graph-browser/call-graph.png new file mode 100644 index 000000000..a51dd7368 Binary files /dev/null and b/Extension/artifacts/graph-browser/call-graph.png differ diff --git a/Extension/artifacts/graph-browser/d-complete-chains.png b/Extension/artifacts/graph-browser/d-complete-chains.png new file mode 100644 index 000000000..5eb3fc9c0 Binary files /dev/null and b/Extension/artifacts/graph-browser/d-complete-chains.png differ diff --git a/Extension/artifacts/graph-browser/d-expanded-branch.png b/Extension/artifacts/graph-browser/d-expanded-branch.png new file mode 100644 index 000000000..25894f6f9 Binary files /dev/null and b/Extension/artifacts/graph-browser/d-expanded-branch.png differ diff --git a/Extension/artifacts/graph-browser/d-initial-one-level.png b/Extension/artifacts/graph-browser/d-initial-one-level.png new file mode 100644 index 000000000..8b8a9a8bb Binary files /dev/null and b/Extension/artifacts/graph-browser/d-initial-one-level.png differ diff --git a/Extension/artifacts/graph-browser/execute-one-expanded.png b/Extension/artifacts/graph-browser/execute-one-expanded.png new file mode 100644 index 000000000..10f298d7d Binary files /dev/null and b/Extension/artifacts/graph-browser/execute-one-expanded.png differ diff --git a/Extension/artifacts/graph-browser/execute-one-initial.png b/Extension/artifacts/graph-browser/execute-one-initial.png new file mode 100644 index 000000000..16af6cec6 Binary files /dev/null and b/Extension/artifacts/graph-browser/execute-one-initial.png differ diff --git a/Extension/artifacts/graph-browser/mars-expanded-layout.png b/Extension/artifacts/graph-browser/mars-expanded-layout.png new file mode 100644 index 000000000..37e8e8a28 Binary files /dev/null and b/Extension/artifacts/graph-browser/mars-expanded-layout.png differ diff --git a/Extension/artifacts/graph-browser/mars-rover-call-graph.png b/Extension/artifacts/graph-browser/mars-rover-call-graph.png new file mode 100644 index 000000000..b0642754b Binary files /dev/null and b/Extension/artifacts/graph-browser/mars-rover-call-graph.png differ diff --git a/Extension/artifacts/index-host/extensions/extensions.json b/Extension/artifacts/index-host/extensions/extensions.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/Extension/artifacts/index-host/extensions/extensions.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Extension/artifacts/index-host/project/.vscode/hornet/compile-db/compile_commands.json b/Extension/artifacts/index-host/project/.vscode/hornet/compile-db/compile_commands.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/Extension/artifacts/index-host/project/.vscode/hornet/compile-db/compile_commands.json @@ -0,0 +1 @@ +[] diff --git a/Extension/artifacts/index-host/project/.vscode/hornet/compile-db/fallback/compile_commands.json b/Extension/artifacts/index-host/project/.vscode/hornet/compile-db/fallback/compile_commands.json new file mode 100644 index 000000000..cef7162c7 --- /dev/null +++ b/Extension/artifacts/index-host/project/.vscode/hornet/compile-db/fallback/compile_commands.json @@ -0,0 +1,32 @@ +[ + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\a.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\a.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\b.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\b.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\new.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\new.cpp" + ] + } +] \ No newline at end of file diff --git a/Extension/artifacts/index-host/project/.vscode/hornet/compile-db/sources.json b/Extension/artifacts/index-host/project/.vscode/hornet/compile-db/sources.json new file mode 100644 index 000000000..10312c091 --- /dev/null +++ b/Extension/artifacts/index-host/project/.vscode/hornet/compile-db/sources.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "sources": [], + "provenance": {} +} diff --git a/Extension/artifacts/index-host/project/a.cpp b/Extension/artifacts/index-host/project/a.cpp new file mode 100644 index 000000000..3811c6580 --- /dev/null +++ b/Extension/artifacts/index-host/project/a.cpp @@ -0,0 +1 @@ +int seed() { return 1; } diff --git a/Extension/artifacts/index-host/project/b.cpp b/Extension/artifacts/index-host/project/b.cpp new file mode 100644 index 000000000..06fe93f17 --- /dev/null +++ b/Extension/artifacts/index-host/project/b.cpp @@ -0,0 +1 @@ +int unopened() { return 2; } diff --git a/Extension/artifacts/index-host/project/index-host-result.json b/Extension/artifacts/index-host/project/index-host-result.json new file mode 100644 index 000000000..d5cb633b4 --- /dev/null +++ b/Extension/artifacts/index-host/project/index-host-result.json @@ -0,0 +1,4 @@ +{ + "passed": false, + "error": "AssertionError [ERR_ASSERTION]: []\n\tat exports.run (i:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\hornet\\index.vscode.cjs:31:16)" +} \ No newline at end of file diff --git a/Extension/artifacts/index-host/project/new.cpp b/Extension/artifacts/index-host/project/new.cpp new file mode 100644 index 000000000..dab1f2e4a --- /dev/null +++ b/Extension/artifacts/index-host/project/new.cpp @@ -0,0 +1 @@ +int addedThroughManualBuild() { return 3; } diff --git a/Extension/artifacts/index-host/project2/.vscode/hornet/compile-db/compile_commands.json b/Extension/artifacts/index-host/project2/.vscode/hornet/compile-db/compile_commands.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/Extension/artifacts/index-host/project2/.vscode/hornet/compile-db/compile_commands.json @@ -0,0 +1 @@ +[] diff --git a/Extension/artifacts/index-host/project2/.vscode/hornet/compile-db/fallback/compile_commands.json b/Extension/artifacts/index-host/project2/.vscode/hornet/compile-db/fallback/compile_commands.json new file mode 100644 index 000000000..9d5254d18 --- /dev/null +++ b/Extension/artifacts/index-host/project2/.vscode/hornet/compile-db/fallback/compile_commands.json @@ -0,0 +1,32 @@ +[ + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\a.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\a.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\b.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\b.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\new.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\new.cpp" + ] + } +] \ No newline at end of file diff --git a/Extension/artifacts/index-host/project2/.vscode/hornet/compile-db/sources.json b/Extension/artifacts/index-host/project2/.vscode/hornet/compile-db/sources.json new file mode 100644 index 000000000..10312c091 --- /dev/null +++ b/Extension/artifacts/index-host/project2/.vscode/hornet/compile-db/sources.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "sources": [], + "provenance": {} +} diff --git a/Extension/artifacts/index-host/project2/a.cpp b/Extension/artifacts/index-host/project2/a.cpp new file mode 100644 index 000000000..3811c6580 --- /dev/null +++ b/Extension/artifacts/index-host/project2/a.cpp @@ -0,0 +1 @@ +int seed() { return 1; } diff --git a/Extension/artifacts/index-host/project2/b.cpp b/Extension/artifacts/index-host/project2/b.cpp new file mode 100644 index 000000000..06fe93f17 --- /dev/null +++ b/Extension/artifacts/index-host/project2/b.cpp @@ -0,0 +1 @@ +int unopened() { return 2; } diff --git a/Extension/artifacts/index-host/project2/index-host-result.json b/Extension/artifacts/index-host/project2/index-host-result.json new file mode 100644 index 000000000..865f06640 --- /dev/null +++ b/Extension/artifacts/index-host/project2/index-host-result.json @@ -0,0 +1,9 @@ +{ + "passed": true, + "version": "0.1.3", + "shards": [ + ".vscode\\hornet\\compile-db\\fallback\\.cache\\clangd\\index\\a.cpp.457AFCEC84D5C09F.idx", + ".vscode\\hornet\\compile-db\\fallback\\.cache\\clangd\\index\\b.cpp.AF2912F08FD4293C.idx", + ".vscode\\hornet\\compile-db\\fallback\\.cache\\clangd\\index\\new.cpp.75EB8BF4C070CD33.idx" + ] +} \ No newline at end of file diff --git a/Extension/artifacts/index-host/project2/new.cpp b/Extension/artifacts/index-host/project2/new.cpp new file mode 100644 index 000000000..dab1f2e4a --- /dev/null +++ b/Extension/artifacts/index-host/project2/new.cpp @@ -0,0 +1 @@ +int addedThroughManualBuild() { return 3; } diff --git a/Extension/artifacts/index-host/stderr.log b/Extension/artifacts/index-host/stderr.log new file mode 100644 index 000000000..65786a2c6 --- /dev/null +++ b/Extension/artifacts/index-host/stderr.log @@ -0,0 +1,18 @@ +[21708:0909/080722.630:ERROR:content\browser\gpu\gpu_process_host.cc:1017] GPU process exited unexpectedly: exit_code=-1073741515 +[main 2026-09-09T15:07:22.687Z] Error: Unable to create or open registry key + at Object.setDeviceId (D:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar\@vscode\deviceid\dist\storage.js:100:25) + at Module.getDeviceId (D:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar\@vscode\deviceid\dist\devdeviceid.js:46:23) + at process.processTicksAndRejections (node:internal/process/task_queues:104:5) + at async Gg (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:460:5508) + at async _I (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:505:93754) + at async Xk (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:505:94201) + at async Promise.all (index 2) + at async $s.startup (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:11024) + at async Jx.startup (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:592:54632) +[21708:0909/080722.693:ERROR:content\browser\gpu\gpu_process_host.cc:1017] GPU process exited unexpectedly: exit_code=-1073741515 +[main 2026-09-09T15:07:22.761Z] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +[21708:0909/080722.766:ERROR:content\browser\gpu\gpu_process_host.cc:1017] GPU process exited unexpectedly: exit_code=-1073741515 +[main 2026-09-09T15:07:22.771Z] CodeWindow: renderer process gone (reason: launch-failed, code: 49) +[main 2026-09-09T15:07:22.790Z] CodeWindow: renderer process gone (reason: launch-failed, code: 49) +[21708:0909/080722.804:ERROR:content\browser\gpu\gpu_process_host.cc:1017] GPU process exited unexpectedly: exit_code=-1073741515 diff --git a/Extension/artifacts/index-host/stderr2.log b/Extension/artifacts/index-host/stderr2.log new file mode 100644 index 000000000..2f7c44354 --- /dev/null +++ b/Extension/artifacts/index-host/stderr2.log @@ -0,0 +1,17 @@ +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +[main 2026-09-09T15:08:18.241Z] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +[main 2026-09-09T15:08:19.399Z] [AgentHost:stderr] (node:6688) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +[hornet.hornet-cpp]: 'configuration.semanticTokenType.description' must be defined and can not be empty +(node:9604) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) +Unknown channel: agentHostClientByokLm +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy +AssertionError [ERR_ASSERTION]: [] + at exports.run (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:31:16) diff --git a/Extension/artifacts/index-host/stderr3.log b/Extension/artifacts/index-host/stderr3.log new file mode 100644 index 000000000..874a52140 --- /dev/null +++ b/Extension/artifacts/index-host/stderr3.log @@ -0,0 +1,15 @@ +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +[main 2026-09-09T15:10:06.797Z] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +[main 2026-09-09T15:10:07.544Z] [AgentHost:stderr] (node:26212) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +[hornet.hornet-cpp]: 'configuration.semanticTokenType.description' must be defined and can not be empty +(node:14696) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) +Unknown channel: agentHostClientByokLm +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy diff --git a/Extension/artifacts/index-host/stdout.log b/Extension/artifacts/index-host/stdout.log new file mode 100644 index 000000000..8c57e3140 --- /dev/null +++ b/Extension/artifacts/index-host/stdout.log @@ -0,0 +1,5 @@ + +[main 2026-09-09T15:07:22.695Z] StorageMainService: creating application shared storage +[main 2026-09-09T15:07:22.757Z] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +[main 2026-09-09T15:07:22.759Z] [shared storage] Initializing fallback application storage (path: in-memory) +[main 2026-09-09T15:07:22.784Z] [shared storage] Fallback application storage initialized with 3 items diff --git a/Extension/artifacts/index-host/stdout2.log b/Extension/artifacts/index-host/stdout2.log new file mode 100644 index 000000000..b6a1613b3 --- /dev/null +++ b/Extension/artifacts/index-host/stdout2.log @@ -0,0 +1,74 @@ + +[main 2026-09-09T15:08:18.176Z] StorageMainService: creating application shared storage +[main 2026-09-09T15:08:18.237Z] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +[main 2026-09-09T15:08:18.239Z] [shared storage] Initializing fallback application storage (path: in-memory) +[main 2026-09-09T15:08:18.261Z] [shared storage] Fallback application storage initialized with 3 items +[main 2026-09-09T15:08:19.001Z] update#setState idle +[AgentHost:renderer] Acquiring MessagePort to agent host... +[main 2026-09-09T15:08:19.025Z] AgentHostProcessManager: agent host started +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] MessagePort acquired, creating client... +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NjQzYTVhNzUtYjAyOS00MjY5LTlkYjAtNDAwNmRiZDliNGQz" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +Started initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/index-host/extensions +Started local extension host with pid 21228. +[AgentHost:renderer] Protocol connection established; clientId=5751b5f9-99e2-4d9d-97e0-6d2a5f20a1d3 +Completed initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/index-host/extensions +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] Clearing authentication for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] Clearing authentication for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NjQzYTVhNzUtYjAyOS00MjY5LTlkYjAtNDAwNmRiZDliNGQz" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost] No token resolved for resource: https://api.github.com/repos +Settings Sync: Account status changed from uninitialized to unavailable +[main 2026-09-09T15:08:21.564Z] Extension host with pid 21228 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/index-host/stdout3.log b/Extension/artifacts/index-host/stdout3.log new file mode 100644 index 000000000..ad83a8f39 --- /dev/null +++ b/Extension/artifacts/index-host/stdout3.log @@ -0,0 +1,24 @@ + +[main 2026-09-09T15:10:06.730Z] StorageMainService: creating application shared storage +[main 2026-09-09T15:10:06.791Z] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +[main 2026-09-09T15:10:06.794Z] [shared storage] Initializing fallback application storage (path: in-memory) +[main 2026-09-09T15:10:06.816Z] [shared storage] Fallback application storage initialized with 3 items +[main 2026-09-09T15:10:07.160Z] update#setState idle +[AgentHost:renderer] Acquiring MessagePort to agent host... +[main 2026-09-09T15:10:07.187Z] AgentHostProcessManager: agent host started +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] MessagePort acquired, creating client... +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/MGQ1NWE2NzYtM2NjZC00YjhlLWE5YmEtNzcxY2I0NTFkYTM4" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +Started local extension host with pid 27744. +[AgentHost:renderer] Protocol connection established; clientId=74392238-a2c8-4ae0-8b45-b180b0c8b01e +Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] Clearing authentication for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] Clearing authentication for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +Settings Sync: Account status changed from uninitialized to unavailable +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/MGQ1NWE2NzYtM2NjZC00YjhlLWE5YmEtNzcxY2I0NTFkYTM4" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[main 2026-09-09T15:10:10.220Z] Extension host with pid 27744 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/index-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index b/Extension/artifacts/index-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/index-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index differ diff --git a/Extension/artifacts/index-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index-dir/the-real-index b/Extension/artifacts/index-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index-dir/the-real-index new file mode 100644 index 000000000..4114aca27 Binary files /dev/null and b/Extension/artifacts/index-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index-dir/the-real-index differ diff --git a/Extension/artifacts/index-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index b/Extension/artifacts/index-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/index-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index differ diff --git a/Extension/artifacts/index-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index-dir/the-real-index b/Extension/artifacts/index-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index-dir/the-real-index new file mode 100644 index 000000000..4114aca27 Binary files /dev/null and b/Extension/artifacts/index-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index-dir/the-real-index differ diff --git a/Extension/artifacts/index-host/user/Code Cache/js/index b/Extension/artifacts/index-host/user/Code Cache/js/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/index-host/user/Code Cache/js/index differ diff --git a/Extension/artifacts/index-host/user/Code Cache/js/index-dir/the-real-index b/Extension/artifacts/index-host/user/Code Cache/js/index-dir/the-real-index new file mode 100644 index 000000000..7f3ec29e0 Binary files /dev/null and b/Extension/artifacts/index-host/user/Code Cache/js/index-dir/the-real-index differ diff --git a/Extension/artifacts/index-host/user/Code Cache/wasm/index b/Extension/artifacts/index-host/user/Code Cache/wasm/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/index-host/user/Code Cache/wasm/index differ diff --git a/Extension/artifacts/index-host/user/Code Cache/wasm/index-dir/the-real-index b/Extension/artifacts/index-host/user/Code Cache/wasm/index-dir/the-real-index new file mode 100644 index 000000000..7f3ec29e0 Binary files /dev/null and b/Extension/artifacts/index-host/user/Code Cache/wasm/index-dir/the-real-index differ diff --git a/Extension/artifacts/index-host/user/Crashpad/metadata b/Extension/artifacts/index-host/user/Crashpad/metadata new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user/Crashpad/settings.dat b/Extension/artifacts/index-host/user/Crashpad/settings.dat new file mode 100644 index 000000000..78050f25c Binary files /dev/null and b/Extension/artifacts/index-host/user/Crashpad/settings.dat differ diff --git a/Extension/artifacts/index-host/user/DIPS b/Extension/artifacts/index-host/user/DIPS new file mode 100644 index 000000000..1fed397b3 Binary files /dev/null and b/Extension/artifacts/index-host/user/DIPS differ diff --git a/Extension/artifacts/index-host/user/DawnGraphiteCache/data_0 b/Extension/artifacts/index-host/user/DawnGraphiteCache/data_0 new file mode 100644 index 000000000..d76fb77e9 Binary files /dev/null and b/Extension/artifacts/index-host/user/DawnGraphiteCache/data_0 differ diff --git a/Extension/artifacts/index-host/user/DawnGraphiteCache/data_1 b/Extension/artifacts/index-host/user/DawnGraphiteCache/data_1 new file mode 100644 index 000000000..dcaafa974 Binary files /dev/null and b/Extension/artifacts/index-host/user/DawnGraphiteCache/data_1 differ diff --git a/Extension/artifacts/index-host/user/DawnGraphiteCache/data_2 b/Extension/artifacts/index-host/user/DawnGraphiteCache/data_2 new file mode 100644 index 000000000..c7e2eb9ad Binary files /dev/null and b/Extension/artifacts/index-host/user/DawnGraphiteCache/data_2 differ diff --git a/Extension/artifacts/index-host/user/DawnGraphiteCache/data_3 b/Extension/artifacts/index-host/user/DawnGraphiteCache/data_3 new file mode 100644 index 000000000..5eec97358 Binary files /dev/null and b/Extension/artifacts/index-host/user/DawnGraphiteCache/data_3 differ diff --git a/Extension/artifacts/index-host/user/DawnGraphiteCache/index b/Extension/artifacts/index-host/user/DawnGraphiteCache/index new file mode 100644 index 000000000..73b487aca Binary files /dev/null and b/Extension/artifacts/index-host/user/DawnGraphiteCache/index differ diff --git a/Extension/artifacts/index-host/user/DawnWebGPUCache/data_0 b/Extension/artifacts/index-host/user/DawnWebGPUCache/data_0 new file mode 100644 index 000000000..d76fb77e9 Binary files /dev/null and b/Extension/artifacts/index-host/user/DawnWebGPUCache/data_0 differ diff --git a/Extension/artifacts/index-host/user/DawnWebGPUCache/data_1 b/Extension/artifacts/index-host/user/DawnWebGPUCache/data_1 new file mode 100644 index 000000000..dcaafa974 Binary files /dev/null and b/Extension/artifacts/index-host/user/DawnWebGPUCache/data_1 differ diff --git a/Extension/artifacts/index-host/user/DawnWebGPUCache/data_2 b/Extension/artifacts/index-host/user/DawnWebGPUCache/data_2 new file mode 100644 index 000000000..c7e2eb9ad Binary files /dev/null and b/Extension/artifacts/index-host/user/DawnWebGPUCache/data_2 differ diff --git a/Extension/artifacts/index-host/user/DawnWebGPUCache/data_3 b/Extension/artifacts/index-host/user/DawnWebGPUCache/data_3 new file mode 100644 index 000000000..5eec97358 Binary files /dev/null and b/Extension/artifacts/index-host/user/DawnWebGPUCache/data_3 differ diff --git a/Extension/artifacts/index-host/user/DawnWebGPUCache/index b/Extension/artifacts/index-host/user/DawnWebGPUCache/index new file mode 100644 index 000000000..8d2f21dea Binary files /dev/null and b/Extension/artifacts/index-host/user/DawnWebGPUCache/index differ diff --git a/Extension/artifacts/index-host/user/GPUCache/data_0 b/Extension/artifacts/index-host/user/GPUCache/data_0 new file mode 100644 index 000000000..d76fb77e9 Binary files /dev/null and b/Extension/artifacts/index-host/user/GPUCache/data_0 differ diff --git a/Extension/artifacts/index-host/user/GPUCache/data_1 b/Extension/artifacts/index-host/user/GPUCache/data_1 new file mode 100644 index 000000000..dcaafa974 Binary files /dev/null and b/Extension/artifacts/index-host/user/GPUCache/data_1 differ diff --git a/Extension/artifacts/index-host/user/GPUCache/data_2 b/Extension/artifacts/index-host/user/GPUCache/data_2 new file mode 100644 index 000000000..c7e2eb9ad Binary files /dev/null and b/Extension/artifacts/index-host/user/GPUCache/data_2 differ diff --git a/Extension/artifacts/index-host/user/GPUCache/data_3 b/Extension/artifacts/index-host/user/GPUCache/data_3 new file mode 100644 index 000000000..5eec97358 Binary files /dev/null and b/Extension/artifacts/index-host/user/GPUCache/data_3 differ diff --git a/Extension/artifacts/index-host/user/GPUCache/index b/Extension/artifacts/index-host/user/GPUCache/index new file mode 100644 index 000000000..d1a9aed20 Binary files /dev/null and b/Extension/artifacts/index-host/user/GPUCache/index differ diff --git a/Extension/artifacts/index-host/user/Local State b/Extension/artifacts/index-host/user/Local State new file mode 100644 index 000000000..b49c52fd6 --- /dev/null +++ b/Extension/artifacts/index-host/user/Local State @@ -0,0 +1 @@ +{"os_crypt":{"audit_enabled":true,"encrypted_key":"RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAAAv29JXdQmqT41XH1SOdj65EAAAABIAAABDAGgAcgBvAG0AaQB1AG0AAAAQZgAAAAEAACAAAACFczcUrq//mJQz6MM+Gfgm/1mGhAS7huy87wBHjK10VgAAAAAOgAAAAAIAACAAAABtYQVeWZg9Nh8fJ2lUaOLUUdRO7nBGPBRXa1iWXnHA4jAAAACNPsAYF0QCcLFeip3TBX+dkUHLcwk2WUeyUSoZOJiuEZJGLzyeT5EK8W3VfwIJ3KhAAAAAOOKYH5w+PM8pFFW0vuM1lwMNMebnynZD6sM9IZDtLgo2mFnm2vwbyq2mB8/PO5x9NjcW4qppJYJJ2JhQroeLmA=="},"uninstall_metrics":{"installation_date2":"1788966442"}} \ No newline at end of file diff --git a/Extension/artifacts/index-host/user/Local Storage/leveldb/000003.log b/Extension/artifacts/index-host/user/Local Storage/leveldb/000003.log new file mode 100644 index 000000000..988af4977 Binary files /dev/null and b/Extension/artifacts/index-host/user/Local Storage/leveldb/000003.log differ diff --git a/Extension/artifacts/index-host/user/Local Storage/leveldb/CURRENT b/Extension/artifacts/index-host/user/Local Storage/leveldb/CURRENT new file mode 100644 index 000000000..7ed683d17 --- /dev/null +++ b/Extension/artifacts/index-host/user/Local Storage/leveldb/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/Extension/artifacts/index-host/user/Local Storage/leveldb/LOCK b/Extension/artifacts/index-host/user/Local Storage/leveldb/LOCK new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user/Local Storage/leveldb/LOG b/Extension/artifacts/index-host/user/Local Storage/leveldb/LOG new file mode 100644 index 000000000..4157e1687 --- /dev/null +++ b/Extension/artifacts/index-host/user/Local Storage/leveldb/LOG @@ -0,0 +1,2 @@ +2026/09/09-08:07:22.611 3ffc Creating DB I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\user\Local Storage\leveldb since it was missing. +2026/09/09-08:07:22.622 3ffc Reusing MANIFEST I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\user\Local Storage\leveldb/MANIFEST-000001 diff --git a/Extension/artifacts/index-host/user/Local Storage/leveldb/MANIFEST-000001 b/Extension/artifacts/index-host/user/Local Storage/leveldb/MANIFEST-000001 new file mode 100644 index 000000000..18e5cab72 Binary files /dev/null and b/Extension/artifacts/index-host/user/Local Storage/leveldb/MANIFEST-000001 differ diff --git a/Extension/artifacts/index-host/user/Network/Network Persistent State b/Extension/artifacts/index-host/user/Network/Network Persistent State new file mode 100644 index 000000000..176ac58f4 --- /dev/null +++ b/Extension/artifacts/index-host/user/Network/Network Persistent State @@ -0,0 +1 @@ +{"net":{"http_server_properties":{"servers":[],"version":5},"network_qualities":{"CAASABiAgICA+P////8B":"4G"}}} \ No newline at end of file diff --git a/Extension/artifacts/index-host/user/Network/NetworkDataMigrated b/Extension/artifacts/index-host/user/Network/NetworkDataMigrated new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user/Network/Trust Tokens b/Extension/artifacts/index-host/user/Network/Trust Tokens new file mode 100644 index 000000000..e4af9e4b5 Binary files /dev/null and b/Extension/artifacts/index-host/user/Network/Trust Tokens differ diff --git a/Extension/artifacts/index-host/user/Network/Trust Tokens-journal b/Extension/artifacts/index-host/user/Network/Trust Tokens-journal new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user/Preferences b/Extension/artifacts/index-host/user/Preferences new file mode 100644 index 000000000..1ec6df73d --- /dev/null +++ b/Extension/artifacts/index-host/user/Preferences @@ -0,0 +1 @@ +{"spellcheck":{"dictionaries":["en-US"],"dictionary":""}} \ No newline at end of file diff --git a/Extension/artifacts/index-host/user/Session Storage/000003.log b/Extension/artifacts/index-host/user/Session Storage/000003.log new file mode 100644 index 000000000..59560f5f2 Binary files /dev/null and b/Extension/artifacts/index-host/user/Session Storage/000003.log differ diff --git a/Extension/artifacts/index-host/user/Session Storage/CURRENT b/Extension/artifacts/index-host/user/Session Storage/CURRENT new file mode 100644 index 000000000..7ed683d17 --- /dev/null +++ b/Extension/artifacts/index-host/user/Session Storage/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/Extension/artifacts/index-host/user/Session Storage/LOCK b/Extension/artifacts/index-host/user/Session Storage/LOCK new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user/Session Storage/LOG b/Extension/artifacts/index-host/user/Session Storage/LOG new file mode 100644 index 000000000..72b62b6d4 --- /dev/null +++ b/Extension/artifacts/index-host/user/Session Storage/LOG @@ -0,0 +1,2 @@ +2026/09/09-08:07:22.806 745c Creating DB I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\user\Session Storage since it was missing. +2026/09/09-08:07:22.815 745c Reusing MANIFEST I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\user\Session Storage/MANIFEST-000001 diff --git a/Extension/artifacts/index-host/user/Session Storage/MANIFEST-000001 b/Extension/artifacts/index-host/user/Session Storage/MANIFEST-000001 new file mode 100644 index 000000000..18e5cab72 Binary files /dev/null and b/Extension/artifacts/index-host/user/Session Storage/MANIFEST-000001 differ diff --git a/Extension/artifacts/index-host/user/Shared Dictionary/cache/index b/Extension/artifacts/index-host/user/Shared Dictionary/cache/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/index-host/user/Shared Dictionary/cache/index differ diff --git a/Extension/artifacts/index-host/user/Shared Dictionary/cache/index-dir/the-real-index b/Extension/artifacts/index-host/user/Shared Dictionary/cache/index-dir/the-real-index new file mode 100644 index 000000000..bd65a1d62 Binary files /dev/null and b/Extension/artifacts/index-host/user/Shared Dictionary/cache/index-dir/the-real-index differ diff --git a/Extension/artifacts/index-host/user/Shared Dictionary/db b/Extension/artifacts/index-host/user/Shared Dictionary/db new file mode 100644 index 000000000..d97070388 Binary files /dev/null and b/Extension/artifacts/index-host/user/Shared Dictionary/db differ diff --git a/Extension/artifacts/index-host/user/Shared Dictionary/db-journal b/Extension/artifacts/index-host/user/Shared Dictionary/db-journal new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user/User/globalStorage/storage.json b/Extension/artifacts/index-host/user/User/globalStorage/storage.json new file mode 100644 index 000000000..1318435b9 --- /dev/null +++ b/Extension/artifacts/index-host/user/User/globalStorage/storage.json @@ -0,0 +1,11 @@ +{ + "telemetry.machineId": "9ec4a1e80f7b0032a5601670899ff8e6ab94e6124c5ce7bb6888c60d5190be85", + "telemetry.sqmId": "{FB92DE06-18B0-4EE3-8B85-3267D8E89FA1}", + "telemetry.devDeviceId": "1327d8a9-573e-4dcc-bbbd-7e60039ea1f3", + "backupWorkspaces": { + "workspaces": [], + "folders": [], + "emptyWindows": [] + }, + "windowControlHeight": 35 +} \ No newline at end of file diff --git a/Extension/artifacts/index-host/user/User/settings.json b/Extension/artifacts/index-host/user/User/settings.json new file mode 100644 index 000000000..d08e73ca6 --- /dev/null +++ b/Extension/artifacts/index-host/user/User/settings.json @@ -0,0 +1 @@ +{"security.workspace.trust.enabled":false,"workbench.startupEditor":"none","extensions.autoUpdate":false,"update.mode":"none"} diff --git a/Extension/artifacts/index-host/user/logs/20260909T080722/main.log b/Extension/artifacts/index-host/user/logs/20260909T080722/main.log new file mode 100644 index 000000000..1dfe0e065 --- /dev/null +++ b/Extension/artifacts/index-host/user/logs/20260909T080722/main.log @@ -0,0 +1,18 @@ +2026-09-09 08:07:22.770 [error] Error: Unable to create or open registry key + at Object.setDeviceId (D:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar\@vscode\deviceid\dist\storage.js:100:25) + at Module.getDeviceId (D:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar\@vscode\deviceid\dist\devdeviceid.js:46:23) + at process.processTicksAndRejections (node:internal/process/task_queues:104:5) + at async Gg (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:460:5508) + at async _I (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:505:93754) + at async Xk (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:505:94201) + at async Promise.all (index 2) + at async $s.startup (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:11024) + at async Jx.startup (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:592:54632) +2026-09-09 08:07:22.771 [info] StorageMainService: creating application shared storage +2026-09-09 08:07:22.771 [info] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +2026-09-09 08:07:22.771 [info] [shared storage] Initializing fallback application storage (path: in-memory) +2026-09-09 08:07:22.771 [error] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +2026-09-09 08:07:22.771 [error] CodeWindow: renderer process gone (reason: launch-failed, code: 49) +2026-09-09 08:07:22.784 [info] [shared storage] Fallback application storage initialized with 3 items +2026-09-09 08:07:22.790 [error] CodeWindow: renderer process gone (reason: launch-failed, code: 49) diff --git a/Extension/artifacts/index-host/user/logs/20260909T080722/mcpGateway.log b/Extension/artifacts/index-host/user/logs/20260909T080722/mcpGateway.log new file mode 100644 index 000000000..8d01d3555 --- /dev/null +++ b/Extension/artifacts/index-host/user/logs/20260909T080722/mcpGateway.log @@ -0,0 +1 @@ +2026-09-09 08:07:22.775 [info] [McpGatewayService] Initialized diff --git a/Extension/artifacts/index-host/user2/Cache/Cache_Data/data_0 b/Extension/artifacts/index-host/user2/Cache/Cache_Data/data_0 new file mode 100644 index 000000000..6f7b4e3a7 Binary files /dev/null and b/Extension/artifacts/index-host/user2/Cache/Cache_Data/data_0 differ diff --git a/Extension/artifacts/index-host/user2/Cache/Cache_Data/data_1 b/Extension/artifacts/index-host/user2/Cache/Cache_Data/data_1 new file mode 100644 index 000000000..3873667b2 Binary files /dev/null and b/Extension/artifacts/index-host/user2/Cache/Cache_Data/data_1 differ diff --git a/Extension/artifacts/index-host/user2/Cache/Cache_Data/data_2 b/Extension/artifacts/index-host/user2/Cache/Cache_Data/data_2 new file mode 100644 index 000000000..c7e2eb9ad Binary files /dev/null and b/Extension/artifacts/index-host/user2/Cache/Cache_Data/data_2 differ diff --git a/Extension/artifacts/index-host/user2/Cache/Cache_Data/data_3 b/Extension/artifacts/index-host/user2/Cache/Cache_Data/data_3 new file mode 100644 index 000000000..6ae55c90e Binary files /dev/null and b/Extension/artifacts/index-host/user2/Cache/Cache_Data/data_3 differ diff --git a/Extension/artifacts/index-host/user2/Cache/Cache_Data/index b/Extension/artifacts/index-host/user2/Cache/Cache_Data/index new file mode 100644 index 000000000..401adee9c Binary files /dev/null and b/Extension/artifacts/index-host/user2/Cache/Cache_Data/index differ diff --git a/Extension/artifacts/index-host/user2/Cache/No_Vary_Search/journal.baj b/Extension/artifacts/index-host/user2/Cache/No_Vary_Search/journal.baj new file mode 100644 index 000000000..54fe66eb5 --- /dev/null +++ b/Extension/artifacts/index-host/user2/Cache/No_Vary_Search/journal.baj @@ -0,0 +1 @@ +$F~ \ No newline at end of file diff --git a/Extension/artifacts/index-host/user2/Cache/No_Vary_Search/snapshot.baf b/Extension/artifacts/index-host/user2/Cache/No_Vary_Search/snapshot.baf new file mode 100644 index 000000000..8912405f3 Binary files /dev/null and b/Extension/artifacts/index-host/user2/Cache/No_Vary_Search/snapshot.baf differ diff --git a/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/3f578c145a84d19f_0 b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/3f578c145a84d19f_0 new file mode 100644 index 000000000..fcd9b535e Binary files /dev/null and b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/3f578c145a84d19f_0 differ diff --git a/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4029b16ba7c77307_0 b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4029b16ba7c77307_0 new file mode 100644 index 000000000..0d0a927e4 Binary files /dev/null and b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4029b16ba7c77307_0 differ diff --git a/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5a4441e8b154785f_0 b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5a4441e8b154785f_0 new file mode 100644 index 000000000..0515868e7 Binary files /dev/null and b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5a4441e8b154785f_0 differ diff --git a/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5cd5a55cf624c9d4_0 b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5cd5a55cf624c9d4_0 new file mode 100644 index 000000000..40d02b698 Binary files /dev/null and b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5cd5a55cf624c9d4_0 differ diff --git a/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/6706124f05459316_0 b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/6706124f05459316_0 new file mode 100644 index 000000000..dd0f765e9 Binary files /dev/null and b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/6706124f05459316_0 differ diff --git a/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/a5f6702cfaf384a3_0 b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/a5f6702cfaf384a3_0 new file mode 100644 index 000000000..abc0ed72c Binary files /dev/null and b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/a5f6702cfaf384a3_0 differ diff --git a/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index differ diff --git a/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index-dir/the-real-index b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index-dir/the-real-index new file mode 100644 index 000000000..51782fe3c Binary files /dev/null and b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index-dir/the-real-index differ diff --git a/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index differ diff --git a/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index-dir/the-real-index b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index-dir/the-real-index new file mode 100644 index 000000000..06d5e03a2 Binary files /dev/null and b/Extension/artifacts/index-host/user2/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index-dir/the-real-index differ diff --git a/Extension/artifacts/index-host/user2/CachedProfilesData/__default__profile__/extensions.builtin.cache b/Extension/artifacts/index-host/user2/CachedProfilesData/__default__profile__/extensions.builtin.cache new file mode 100644 index 000000000..94fb523c5 --- /dev/null +++ b/Extension/artifacts/index-host/user2/CachedProfilesData/__default__profile__/extensions.builtin.cache @@ -0,0 +1 @@ +{"input":{"location":{"$mid":1,"fsPath":"d:\\Software\\Microsoft\\Visual Studio Code\\88e44fa0e0\\resources\\app\\extensions","_sep":1,"external":"file:///d%3A/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/extensions","path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions","scheme":"file"},"mtime":1788955827471,"profile":false,"type":0,"validate":true,"productVersion":"1.136.2","productDate":"2026-09-04T21:40:42Z","productCommit":"88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f","devMode":false,"language":"en","translations":{}},"result":[{"type":0,"identifier":{"id":"typescriptteam.jsts-chat-features"},"manifest":{"name":"jsts-chat-features","displayName":"JS/TS Chat Features","description":"Provides extensions to VS Family to improve the Copilot experience in JavaScript and TypeScript contexts","publisher":"TypeScriptTeam","author":"Microsoft Corp.","private":true,"version":"0.0.4","icon":"logo.png","license":"SEE LICENSE IN LICENSE.txt","engines":{"vscode":"^1.109.0"},"categories":["AI","Programming Languages"],"extensionKind":["workspace"],"contributes":{"chatSkills":[{"path":"./skills/typescript-setup/SKILL.md","when":"config.jsts-chat-features.skills.enabled"},{"path":"./skills/typescript-update/SKILL.md","when":"config.jsts-chat-features.skills.enabled"}],"configuration":{"title":"JS/TS Chat Features","type":"object","properties":{"jsts-chat-features.skills.enabled":{"type":"boolean","tags":["onExp"],"default":false,"description":"These skills provide helpful prompts and features to enhance your experience when using Copilot to work with JavaScript and TypeScript."}}}},"files":["LICENSE.txt","README.md","logo.png","skills/typescript-setup/SKILL.md","skills/typescript-update/SKILL.md","skills/typescript-update/4to5.md","skills/typescript-update/5to6.md","skills/typescript-update/6to7.md"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/TypeScriptTeam.jsts-chat-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[[2,"property `extensionKind` can be defined only if property `main` is also defined."]],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.bat"},"manifest":{"name":"bat","displayName":"Windows Bat Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Windows batch files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.52.0"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin mmims/language-batchfile grammars/batchfile.cson ./syntaxes/batchfile.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"bat","extensions":[".bat",".cmd"],"aliases":["Batch","bat"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"bat","scopeName":"source.batchfile","path":"./syntaxes/batchfile.tmLanguage.json"}],"snippets":[{"language":"bat","path":"./snippets/batchfile.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/bat","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.clojure"},"manifest":{"name":"clojure","displayName":"Clojure Language Basics","description":"Provides syntax highlighting and bracket matching in Clojure files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-clojure grammars/clojure.cson ./syntaxes/clojure.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"clojure","aliases":["Clojure","clojure"],"extensions":[".clj",".cljs",".cljc",".cljx",".clojure",".edn"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"clojure","scopeName":"source.clojure","path":"./syntaxes/clojure.tmLanguage.json"}],"configurationDefaults":{"[clojure]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/clojure","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.coffeescript"},"manifest":{"name":"coffeescript","displayName":"CoffeeScript Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in CoffeeScript files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-coffee-script grammars/coffeescript.cson ./syntaxes/coffeescript.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"coffeescript","extensions":[".coffee",".cson",".iced"],"aliases":["CoffeeScript","coffeescript","coffee"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"coffeescript","scopeName":"source.coffee","path":"./syntaxes/coffeescript.tmLanguage.json"}],"breakpoints":[{"language":"coffeescript"}],"snippets":[{"language":"coffeescript","path":"./snippets/coffeescript.code-snippets"}],"configurationDefaults":{"[coffeescript]":{"diffEditor.ignoreTrimWhitespace":false,"editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/coffeescript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.configuration-editing"},"manifest":{"name":"configuration-editing","displayName":"Configuration Editing","description":"Provides capabilities (advanced IntelliSense, auto-fixing) in configuration files like settings, launch, and extension recommendation files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.0.0"},"icon":"images/icon.png","activationEvents":["onProfile","onProfile:github","onLanguage:json","onLanguage:jsonc"],"enabledApiProposals":["profileContentHandlers"],"main":"./dist/configurationEditingMain","browser":"./dist/browser/configurationEditingMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"languages":[{"id":"jsonc","extensions":[".code-workspace","language-configuration.json","icon-theme.json","color-theme.json"],"filenames":["settings.json","launch.json","tasks.json","mcp.json","keybindings.json","extensions.json","argv.json","profiles.json","devcontainer.json",".devcontainer.json"]},{"id":"json","extensions":[".code-profile"]}],"jsonValidation":[{"fileMatch":"vscode://defaultsettings/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"%APP_SETTINGS_HOME%/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"vscode://defaultsettings/*.json","url":"vscode://schemas/settings/default"},{"fileMatch":"%APP_SETTINGS_HOME%/settings.json","url":"vscode://schemas/settings/user"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/settings.json","url":"vscode://schemas/settings/profile"},{"fileMatch":"%MACHINE_SETTINGS_HOME%/settings.json","url":"vscode://schemas/settings/machine"},{"fileMatch":"%APP_WORKSPACES_HOME%/*/workspace.json","url":"vscode://schemas/workspaceConfig"},{"fileMatch":"**/*.code-workspace","url":"vscode://schemas/workspaceConfig"},{"fileMatch":"**/argv.json","url":"vscode://schemas/argv"},{"fileMatch":"/.vscode/settings.json","url":"vscode://schemas/settings/folder"},{"fileMatch":"/.vscode/launch.json","url":"vscode://schemas/launch"},{"fileMatch":"/.vscode/tasks.json","url":"vscode://schemas/tasks"},{"fileMatch":"/.vscode/mcp.json","url":"vscode://schemas/mcp"},{"fileMatch":"%APP_SETTINGS_HOME%/tasks.json","url":"vscode://schemas/tasks"},{"fileMatch":"%APP_SETTINGS_HOME%/chatLanguageModels.json","url":"vscode://schemas/language-models"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/chatLanguageModels.json","url":"vscode://schemas/language-models"},{"fileMatch":"%APP_SETTINGS_HOME%/snippets/*.json","url":"vscode://schemas/snippets"},{"fileMatch":"%APP_SETTINGS_HOME%/prompts/*.toolsets.jsonc","url":"vscode://schemas/toolsets"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/snippets/.json","url":"vscode://schemas/snippets"},{"fileMatch":"%APP_SETTINGS_HOME%/sync/snippets/preview/*.json","url":"vscode://schemas/snippets"},{"fileMatch":"**/*.code-snippets","url":"vscode://schemas/global-snippets"},{"fileMatch":"/.vscode/extensions.json","url":"vscode://schemas/extensions"},{"fileMatch":"devcontainer.json","url":"https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json"},{"fileMatch":".devcontainer.json","url":"https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json"},{"fileMatch":"%APP_SETTINGS_HOME%/globalStorage/ms-vscode-remote.remote-containers/nameConfigs/*.json","url":"./schemas/attachContainer.schema.json"},{"fileMatch":"%APP_SETTINGS_HOME%/globalStorage/ms-vscode-remote.remote-containers/imageConfigs/*.json","url":"./schemas/attachContainer.schema.json"},{"fileMatch":"**/quality/*/product.json","url":"vscode://schemas/vscode-product"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["profileContentHandlers"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/configuration-editing","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"github.copilot-chat"},"manifest":{"name":"copilot-chat","displayName":"GitHub Copilot","description":"AI chat features powered by Copilot","version":"0.64.1","build":"1","completionsCoreVersion":"1.378.1799","internalLargeStorageAriaKey":"ec712b3202c5462fb6877acae7f1f9d7-c19ad55e-3e3c-4f99-984b-827f6d95bd9e-6917","ariaKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","buildType":"prod","publisher":"GitHub","homepage":"https://github.com/features/copilot?editor=vscode","license":"SEE LICENSE IN LICENSE.txt","repository":{"type":"git","url":"https://github.com/microsoft/vscode-copilot-chat"},"bugs":{"url":"https://github.com/microsoft/vscode/issues"},"qna":"https://github.com/github-community/community/discussions/categories/copilot","icon":"assets/copilot.png","pricing":"Trial","engines":{"vscode":"^1.136.2","npm":">=9.0.0","node":">=22.14.0"},"categories":["AI","Chat","Programming Languages","Machine Learning"],"keywords":["ai","openai","codex","pilot","snippets","documentation","autocomplete","intellisense","refactor","javascript","python","typescript","php","go","golang","ruby","c++","c#","java","kotlin","co-pilot"],"badges":[{"url":"https://img.shields.io/badge/GitHub%20Copilot-Subscription%20Required-orange","href":"https://github.com/github-copilot/signup?editor=vscode","description":"Sign up for GitHub Copilot"},{"url":"https://img.shields.io/github/stars/github/copilot-docs?style=social","href":"https://github.com/github/copilot-docs","description":"Star Copilot on GitHub"},{"url":"https://img.shields.io/youtube/channel/views/UC7c3Kb6jYCRj4JOHHZTxKsQ?style=social","href":"https://www.youtube.com/@GitHub/search?query=copilot","description":"Check out GitHub on Youtube"},{"url":"https://img.shields.io/twitter/follow/github?style=social","href":"https://twitter.com/github","description":"Follow GitHub on Twitter"}],"activationEvents":["onStartupFinished","onLanguageModelChat:copilot","onUri","onCommand:_github.copilot.chat.reportModelFeedbackSurvey","onFileSystem:ccreq","onFileSystem:ccsettings"],"main":"./dist/extension","l10n":"./l10n","enabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","chatDebug","chatHooks","extensionsAny","newSymbolNamesProvider","interactive","codeActionAI","activeComment","commentReveal","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","documentFiltersExclusive","embeddings","findTextInFiles","findTextInFiles2","languageModelToolSupportsModel","findFiles2","textSearchProvider","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","chatParticipantAdditions","defaultChatParticipant","contribSourceControlInputBoxMenu","authLearnMore","testObserver","aiTextSearchProvider","chatParticipantPrivate","chatProvider","contribDebugCreateConfiguration","chatReferenceDiagnostic","textSearchProvider2","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelPricing","inlineCompletionsAdditions","chatStatusItem","chatInputNotification","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","languageModelThinkingPart","chatSessionsProvider","devDeviceId","contribEditorContentMenu","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","environmentPower","terminalTitle","toolInvocationApproveCombination","chatSessionCustomizationProvider"],"contributes":{"languageModelTools":[{"name":"copilot_searchCodebase","toolReferenceName":"codebase","displayName":"Codebase","icon":"$(folder)","userDescription":"Find relevant file chunks, symbols, and other information via semantic search","modelDescription":"Run a natural language search for relevant code or documentation comments from the user's current workspace. Returns relevant code snippets from the user's current workspace if it is large, or the full contents of the workspace if it is small.","tags":["codesearch","vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to search the codebase for. Should contain all relevant context. Should ideally be text that might appear in the codebase, such as function names, variable names, or comments."}},"required":["query"]}},{"name":"execution_subagent","toolReferenceName":"executionSubagent","displayName":"Execution Subagent","icon":"$(play)","userDescription":"Launch an execution-focused subagent that runs one or more terminal commands to accomplish a task. This subagent is powered by Google's Gemini-3-Flash model. It is designed to select an efficient summary of the terminal outputs to return to the main agent context.","modelDescription":"Launch an iterative execution-focused subagent that performs an execution-based task.\nUSE THIS INSTEAD OF RUNNING INDIVIDUAL COMMANDS WITH run_in_terminal EXCEPT IN THE RARE CASES THAT YOU NEED THE FULL OUTPUT OF A COMMAND.\nHere are some examples of how it can be used:\n- Run tests and filter the output to summarize which tests failed and why.\n- Install all dependencies of a project.\nReturns: A list of commands that were run, along with relevant excerpts of each command's output.\nInput fields:\n- query: What to execute, and what to look for in the output. Can include exact commands to run, or a description of an execution task.\n- description: Short user-visible invocation message.\nNOTE: In the subagent query, make sure to specify any restrictions or guidelines on running commands provided by the user earlier in the conversation.\nFor example, if the user instructs the agent to not edit files in a particular directory, make sure to include that instruction in the subagent query when relevant.","when":"config.github.copilot.chat.executionSubagent.enabled","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"What to execute, and what to look for in the output. Can include exact commands to run, or a description of an execution task."},"description":{"type":"string","description":"User-visible invocation message shown while the subagent runs."}},"required":["query","description"]}},{"name":"search_subagent","toolReferenceName":"searchSubagent","displayName":"Search Subagent","icon":"$(search)","userDescription":"Launch an iterative search-focused subagent to find relevant code in your workspace.","modelDescription":"Launch a fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns (eg. \"src/components/**/*.tsx\"), search code for keywords (eg. \"API endpoints\"), or answer questions about the codebase (eg. \"how do API endpoints work?\").\nReturns: A list of relevant files/snippet locations in the workspace.\n\nInput fields:\n- query: Natural language description of what to search for.\n- description: Short user-visible invocation message. \n- details: 2-3 sentences detailing the objective of the search agent.","when":"config.github.copilot.chat.searchSubagent.enabled && config.github.copilot.chat.exploreAgent.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language description of what to search for."},"description":{"type":"string","description":"A short (3-5 word) description of the task."},"details":{"type":"string","description":"A more detailed description of the objective for the search subagent. This helps the sub-agent remain on task and understand its purpose."}},"required":["query","description","details"]}},{"name":"explore_subagent","toolReferenceName":"exploreSubagent","displayName":"Search Subagent","icon":"$(search)","userDescription":"Launch an iterative search-focused subagent to find relevant code in your workspace.","modelDescription":"Launch a fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns (eg. \"src/components/**/*.tsx\"), search code for keywords (eg. \"API endpoints\"), or answer questions about the codebase (eg. \"how do API endpoints work?\").\nReturns: A list of relevant files/snippet locations in the workspace.\n\nInput fields:\n- query: Natural language description of what to search for.\n- description: Short user-visible invocation message. \n- details: 2-3 sentences detailing the objective of the search agent.","when":"config.github.copilot.chat.searchSubagent.enabled && !config.github.copilot.chat.exploreAgent.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language description of what to search for."},"description":{"type":"string","description":"A short (3-5 word) description of the task."},"details":{"type":"string","description":"A more detailed description of the objective for the search subagent. This helps the sub-agent remain on task and understand its purpose."}},"required":["query","description","details"]}},{"name":"skill","toolReferenceName":"skill","displayName":"Skill","icon":"$(book)","userDescription":"Execute a skill by name. Skills provide specialized capabilities, domain knowledge, and refined workflows.","modelDescription":"Invoke a skill to handle a user's request with specialized instructions and workflows.\n\nSkills are domain-specific capabilities discovered from SKILL.md files. When a user's task matches an available skill, call this tool to load and apply it. If the user types a slash command (e.g. \"/deploy\", \"/test\"), treat it as a skill invocation.\n\nUsage:\n- Pass the skill name only (no arguments).\n- Examples: skill: \"docx\", skill: \"deploy\", skill: \"fix-ci-failures\"\n\nRules:\n- Available skills appear in system-reminder messages earlier in the conversation.\n- BLOCKING: When a matching skill exists, you MUST call this tool before producing any other output about the task.\n- Never reference a skill without calling this tool.\n- Do not call this tool for a skill that is already active in the current turn (indicated by a tag).\n- Do not use this tool for built-in commands such as /help or /clear.","when":"config.github.copilot.chat.skillTool.enabled","inputSchema":{"type":"object","properties":{"skill":{"type":"string","description":"The skill name. E.g., \"commit\", \"review-pr\", or \"pdf\""}},"required":["skill"]}},{"name":"copilot_searchWorkspaceSymbols","toolReferenceName":"symbols","displayName":"Workspace Symbols","icon":"$(symbol)","userDescription":"Search for workspace symbols using language services.","modelDescription":"Search the user's workspace for code symbols using language services. Use this tool when the user is looking for a specific symbol in their workspace.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"symbolName":{"type":"string","description":"The symbol to search for, such as a function name, class name, or variable name."}},"required":["symbolName"]}},{"name":"copilot_getVSCodeAPI","toolReferenceName":"vscodeAPI","displayName":"Get VS Code API References","icon":"$(references)","userDescription":"Use VS Code API references to answer questions about VS Code extension development.","modelDescription":"Get comprehensive VS Code API documentation and references for extension development. This tool provides authoritative documentation for VS Code's extensive API surface, including proposed APIs, contribution points, and best practices. Use this tool for understanding complex VS Code API interactions.\n\nWhen to use this tool:\n- User asks about specific VS Code APIs, interfaces, or extension capabilities\n- Need documentation for VS Code extension contribution points (commands, views, settings, etc.)\n- Questions about proposed APIs and their usage patterns\n- Understanding VS Code extension lifecycle, activation events, and packaging\n- Best practices for VS Code extension development architecture\n- API examples and code patterns for extension features\n- Troubleshooting extension-specific issues or API limitations\n\nWhen NOT to use this tool:\n- Creating simple standalone files or scripts unrelated to VS Code extensions\n- General programming questions not specific to VS Code extension development\n- Questions about using VS Code as an editor (user-facing features)\n- Non-extension related development tasks\n- File creation or editing that doesn't involve VS Code extension APIs\n\nCRITICAL usage guidelines:\n1. Always include specific API names, interfaces, or concepts in your query\n2. Mention the extension feature you're trying to implement\n3. Include context about proposed vs stable APIs when relevant\n4. Reference specific contribution points when asking about extension manifest\n5. Be specific about the VS Code version or API version when known\n\nScope: This tool is for EXTENSION DEVELOPMENT ONLY - building tools that extend VS Code itself, not for general file creation or non-extension programming tasks.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to search vscode documentation for. Should contain all relevant context."}},"required":["query"]},"tags":[]},{"name":"copilot_findFiles","toolReferenceName":"fileSearch","displayName":"Find Files","userDescription":"Find files by name using a glob pattern","modelDescription":"Search for files in the workspace by glob pattern. This only returns the paths of matching files. Use this tool when you know the exact filename pattern of the files you're searching for. Glob patterns match from the root of the workspace folder. Examples:\n- **/*.{js,ts} to match all js/ts files in the workspace.\n- src/** to match all files under the top-level src folder.\n- **/foo/**/*.js to match all js files under any foo folder in the workspace.\n\nIn a multi-root workspace, you can scope the search to a specific workspace folder by using the absolute path to the folder as the query, e.g. /path/to/folder/**/*.ts.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search for files with names or paths matching this glob pattern. Can also be an absolute path to a workspace folder to scope the search in a multi-root workspace."},"maxResults":{"type":"number","description":"The maximum number of results to return. Do not use this unless necessary, it can slow things down. By default, only some matches are returned. If you use this and don't see what you're looking for, you can try again with a more specific query or a larger maxResults."}},"required":["query"]}},{"name":"copilot_findTextInFiles","toolReferenceName":"textSearch","displayName":"Find Text In Files","userDescription":"Search for text in files by regular expression","modelDescription":"Do a fast text search in the workspace. Use this tool when you want to search with an exact string or regex. If you are not sure what words will appear in the workspace, prefer using regex patterns with alternation (|) or character classes to search for multiple potential words at once instead of making separate searches. For example, use 'function|method|procedure' to look for all of those words at once. Use includePattern to search within files matching a specific pattern, or in a specific file, using a relative path. Use 'includeIgnoredFiles' to include files normally ignored by .gitignore, other ignore files, and `files.exclude` and `search.exclude` settings. Warning: using this may cause the search to be slower, only set it when you want to search in ignored folders like node_modules or build outputs. Use this tool when you want to see an overview of a particular file, instead of using read_file many times to look for code within a file.\n\nIn a multi-root workspace, you can scope the search to a specific workspace folder by using the absolute path to the folder as the includePattern, e.g. /path/to/folder.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The pattern to search for in files in the workspace. Use regex with alternation (e.g., 'word1|word2|word3') or character classes to find multiple potential words in a single search. Be sure to set the isRegexp property properly to declare whether it's a regex or plain text pattern. Is case-insensitive."},"isRegexp":{"type":"boolean","description":"Whether the pattern is a regex."},"includePattern":{"type":"string","description":"Search files matching this glob pattern. Will be applied to the relative path of files within the workspace. To search recursively inside a folder, use a proper glob pattern like \"src/folder/**\". Do not use | in includePattern. Can also be an absolute path to a workspace folder to scope the search in a multi-root workspace."},"maxResults":{"type":"number","description":"The maximum number of results to return. Do not use this unless necessary, it can slow things down. By default, only some matches are returned. If you use this and don't see what you're looking for, you can try again with a more specific query or a larger maxResults."},"includeIgnoredFiles":{"type":"boolean","description":"Whether to include files that would normally be ignored according to .gitignore, other ignore files and `files.exclude` and `search.exclude` settings. Warning: using this may cause the search to be slower. Only set it when you want to search in ignored folders like node_modules or build outputs."}},"required":["query","isRegexp"]}},{"name":"copilot_applyPatch","displayName":"Apply Patch","toolReferenceName":"applyPatch","userDescription":"Edit text files in the workspace","modelDescription":"Edit text files. Do not use this tool to edit Jupyter notebooks. `apply_patch` allows you to execute a diff/patch against a text file, but the format of the diff specification is unique to this task, so pay careful attention to these instructions. To use the `apply_patch` command, you should pass a message of the following structure as \"input\":\n\n*** Begin Patch\n[YOUR_PATCH]\n*** End Patch\n\nWhere [YOUR_PATCH] is the actual content of your patch, specified in the following V4A diff format.\n\n*** [ACTION] File: [/absolute/path/to/file] -> ACTION can be one of Add, Update, or Delete.\nAn example of a message that you might pass as \"input\" to this function, in order to apply a patch, is shown below.\n\n*** Begin Patch\n*** Update File: /Users/someone/pygorithm/searching/binary_search.py\n@@class BaseClass\n@@ def search():\n- pass\n+ raise NotImplementedError()\n\n@@class Subclass\n@@ def search():\n- pass\n+ raise NotImplementedError()\n\n*** End Patch\nDo not use line numbers in this diff format.","inputSchema":{"type":"object","properties":{"input":{"type":"string","description":"The edit patch to apply."},"explanation":{"type":"string","description":"A short description of what the tool call is aiming to achieve."}},"required":["input","explanation"]}},{"name":"copilot_readFile","toolReferenceName":"readFile","legacyToolReferenceFullNames":["search/readFile"],"displayName":"Read File","userDescription":"Read the contents of a file","modelDescription":"Read the contents of a file.\n\nYou must specify the line range you're interested in. Line numbers are 1-indexed. If the file contents returned are insufficient for your task, you may call this tool again to retrieve more content. Prefer reading larger ranges over doing many small reads. Binary files use startLine/endLine as byte offsets.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"filePath":{"description":"The absolute path of the file to read.","type":"string"},"startLine":{"type":"number","description":"The line number to start reading from, 1-based."},"endLine":{"type":"number","description":"The inclusive line number to end reading at, 1-based."}},"required":["filePath","startLine","endLine"]}},{"name":"copilot_viewImage","toolReferenceName":"viewImage","displayName":"View Image","userDescription":"View the contents of an image file","when":"config.github.copilot.chat.tools.viewImage.enabled","modelDescription":"View the contents of an image file. Use this instead of read_file for supported image files such as png, jpg, jpeg, gif, and webp. The tool returns the image directly to multimodal models and does not take line ranges or offsets.","inputSchema":{"type":"object","properties":{"filePath":{"description":"The absolute path of the image file to view.","type":"string"}},"required":["filePath"]}},{"name":"copilot_listDirectory","toolReferenceName":"listDirectory","displayName":"List Dir","userDescription":"List the contents of a directory","modelDescription":"List the contents of a directory. Result will have the name of the child. If the name ends in /, it's a folder, otherwise a file","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"The absolute path to the directory to list."}},"required":["path"]}},{"name":"copilot_getErrors","displayName":"Get Problems","toolReferenceName":"problems","legacyToolReferenceFullNames":["problems"],"icon":"$(error)","userDescription":"Check errors for a particular file","modelDescription":"Get any compile or lint errors in a specific file or across all files. If the user mentions errors or problems in a file, they may be referring to these. Use the tool to see the same errors that the user is seeing. If the user asks you to analyze all errors, or does not specify a file, use this tool to gather errors for all files. Also use this tool after editing a file to validate the change.","tags":[],"inputSchema":{"type":"object","properties":{"filePaths":{"description":"The absolute paths to the files or folders to check for errors. Omit 'filePaths' when retrieving all errors.","type":"array","items":{"type":"string"}}}}},{"name":"copilot_readProjectStructure","displayName":"Project Structure","modelDescription":"Get a file tree representation of the workspace.","tags":[]},{"name":"copilot_getChangedFiles","displayName":"Git Changes","toolReferenceName":"changes","legacyToolReferenceFullNames":["changes"],"icon":"$(diff)","userDescription":"Get diffs of changed files","modelDescription":"Get git diffs of current file changes in a git repository. Don't forget that you can use run_in_terminal to run git commands in a terminal as well.","when":"config.github.copilot.chat.getChangedFilesTool.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"repositoryPath":{"type":"string","description":"The absolute path to the git repository to look for changes in. If not provided, the active git repository will be used."},"sourceControlState":{"type":"array","items":{"type":"string","enum":["staged","unstaged","merge-conflicts"]},"description":"The kinds of git state to filter by. Allowed values are: 'staged', 'unstaged', and 'merge-conflicts'. If not provided, all states will be included."}}}},{"name":"copilot_createNewWorkspace","displayName":"Create New Workspace","toolReferenceName":"newWorkspace","legacyToolReferenceFullNames":["new/newWorkspace"],"icon":"$(new-folder)","userDescription":"Scaffold a new workspace in VS Code","when":"config.github.copilot.chat.newWorkspaceCreation.enabled","modelDescription":"Get comprehensive setup steps to help the user create complete project structures in a VS Code workspace. This tool is designed for full project initialization and scaffolding, not for creating individual files.\n\nWhen to use this tool:\n- User wants to create a new complete project from scratch\n- Setting up entire project frameworks (TypeScript projects, React apps, Node.js servers, etc.)\n- Initializing Model Context Protocol (MCP) servers with full structure\n- Creating VS Code extensions with proper scaffolding\n- Setting up Next.js, Vite, or other framework-based projects\n- User asks for \"new project\", \"create a workspace\", \"set up a [framework] project\"\n- Need to establish complete development environment with dependencies, config files, and folder structure\n\nWhen NOT to use this tool:\n- Creating single files or small code snippets\n- Adding individual files to existing projects\n- Making modifications to existing codebases\n- User asks to \"create a file\" or \"add a component\"\n- Simple code examples or demonstrations\n- Debugging or fixing existing code\n\nThis tool provides complete project setup including:\n- Folder structure creation\n- Package.json and dependency management\n- Configuration files (tsconfig, eslint, etc.)\n- Initial boilerplate code\n- Development environment setup\n- Build and run instructions\n\nUse other file creation tools for individual files within existing projects.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to use to generate the new workspace. This should be a clear and concise description of the workspace the user wants to create."}},"required":["query"]},"tags":["enable_other_tool_install_extension"]},{"name":"copilot_installExtension","displayName":"Install Extension in VS Code","when":"!config.github.copilot.chat.installExtensionSkill.enabled","toolReferenceName":"installExtension","legacyToolReferenceFullNames":["new/installExtension"],"modelDescription":"Install an extension in VS Code. Use this tool to install an extension in Visual Studio Code as part of a new workspace creation process only.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the extension to install. This should be in the format .."},"name":{"type":"string","description":"The name of the extension to install. This should be a clear and concise description of the extension."}},"required":["id","name"]},"tags":[]},{"name":"copilot_runVscodeCommand","displayName":"Run VS Code Command","toolReferenceName":"runCommand","legacyToolReferenceFullNames":["new/runVscodeCommand"],"modelDescription":"Run a command in VS Code. Use this tool to run a command in Visual Studio Code as part of a new workspace creation process only.","inputSchema":{"type":"object","properties":{"commandId":{"type":"string","description":"The ID of the command to execute. This should be in the format ."},"name":{"type":"string","description":"The name of the command to execute. This should be a clear and concise description of the command."},"args":{"type":"array","description":"The arguments to pass to the command. This should be an array of strings.","items":{"type":"string"}},"skipCheck":{"type":"boolean","description":"If true, skip checking whether the command exists before executing it."}},"required":["commandId","name"]},"tags":[]},{"name":"copilot_createNewJupyterNotebook","displayName":"Create New Jupyter Notebook","icon":"$(notebook)","toolReferenceName":"createJupyterNotebook","legacyToolReferenceFullNames":["newJupyterNotebook"],"modelDescription":"Generates a new Jupyter Notebook (.ipynb) in VS Code. Jupyter Notebooks are interactive documents commonly used for data exploration, analysis, visualization, and combining code with narrative text. Prefer creating plain Python files or similar unless a user explicitly requests creating a new Jupyter Notebook or already has a Jupyter Notebook opened or exists in the workspace.","userDescription":"Create a new Jupyter Notebook","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to use to generate the jupyter notebook. This should be a clear and concise description of the notebook the user wants to create."}},"required":["query"]},"tags":[]},{"name":"copilot_insertEdit","toolReferenceName":"insertEdit","displayName":"Edit File","modelDescription":"Insert new code into an existing file in the workspace. Use this tool once per file that needs to be modified, even if there are multiple changes for a file. Generate the \"explanation\" property first.\nThe system is very smart and can understand how to apply your edits to the files, you just need to provide minimal hints.\nAvoid repeating existing code, instead use comments to represent regions of unchanged code. Be as concise as possible. For example:\n// ...existing code...\n{ changed code }\n// ...existing code...\n{ changed code }\n// ...existing code...\n\nHere is an example of how you should use format an edit to an existing Person class:\nclass Person {\n\t// ...existing code...\n\tage: number;\n\t// ...existing code...\n\tgetAge() {\n\treturn this.age;\n\t}\n}","tags":[],"inputSchema":{"type":"object","properties":{"explanation":{"type":"string","description":"A short explanation of the edit being made."},"filePath":{"type":"string","description":"An absolute path to the file to edit."},"code":{"type":"string","description":"The code change to apply to the file.\nThe system is very smart and can understand how to apply your edits to the files, you just need to provide minimal hints.\nAvoid repeating existing code, instead use comments to represent regions of unchanged code. Be as concise as possible. For example:\n// ...existing code...\n{ changed code }\n// ...existing code...\n{ changed code }\n// ...existing code...\n\nHere is an example of how you should use format an edit to an existing Person class:\nclass Person {\n\t// ...existing code...\n\tage: number;\n\t// ...existing code...\n\tgetAge() {\n\t\treturn this.age;\n\t}\n}"}},"required":["explanation","filePath","code"]}},{"name":"copilot_createFile","toolReferenceName":"createFile","legacyToolReferenceFullNames":["createFile"],"displayName":"Create File","userDescription":"Create new files","modelDescription":"This is a tool for creating a new file in the workspace. The file will be created with the specified content. The directory will be created if it does not already exist. Never use this tool to edit a file that already exists.","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"The absolute path to the file to create."},"content":{"type":"string","description":"The content to write to the file."}},"required":["filePath","content"]}},{"name":"copilot_createDirectory","toolReferenceName":"createDirectory","legacyToolReferenceFullNames":["createDirectory"],"displayName":"Create Directory","userDescription":"Create new directories in your workspace","modelDescription":"Create a new directory structure in the workspace. Will recursively create all directories in the path, like mkdir -p. You do not need to use this tool before using create_file, that tool will automatically create the needed directories.","tags":[],"inputSchema":{"type":"object","properties":{"dirPath":{"type":"string","description":"The absolute path to the directory to create."}},"required":["dirPath"]}},{"name":"copilot_replaceString","toolReferenceName":"replaceString","displayName":"Replace String in File","modelDescription":"This is a tool for making edits in an existing file in the workspace. For moving or renaming files, use run in terminal tool with the 'mv' command instead. For larger edits, split them into smaller edits and call the edit tool multiple times to ensure accuracy. Before editing, always ensure you have the context to understand the file's contents and context. To edit a file, provide: 1) filePath (absolute path), 2) oldString (MUST be the exact literal text to replace including all whitespace, indentation, newlines, and surrounding code etc), and 3) newString (MUST be the exact literal text to replace \\`oldString\\` with (also including all whitespace, indentation, newlines, and surrounding code etc.). Ensure the resulting code is correct and idiomatic.). Each use of this tool replaces exactly ONE occurrence of oldString.\n\nCRITICAL for \\`oldString\\`: Must uniquely identify the single instance to change. Include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string matches multiple locations, or does not match exactly, the tool will fail. Never use 'Lines 123-456 omitted' from summarized documents or ...existing code... comments in the oldString or newString.","when":"!config.github.copilot.chat.disableReplaceTool","inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the file to edit."},"oldString":{"type":"string","description":"The exact literal text to replace, preferably unescaped. For single replacements (default), include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. For multiple replacements, specify expected_replacements parameter. If this string is not the exact literal text (i.e. you escaped it) or does not match exactly, the tool will fail."},"newString":{"type":"string","description":"The exact literal text to replace `old_string` with, preferably unescaped. Provide the EXACT text. Ensure the resulting code is correct and idiomatic."}},"required":["filePath","oldString","newString"]}},{"name":"copilot_multiReplaceString","toolReferenceName":"multiReplaceString","displayName":"Multi-Replace String in Files","modelDescription":"This tool allows you to apply multiple replace_string_in_file operations in a single call, which is more efficient than calling replace_string_in_file multiple times. It takes an array of replacement operations and applies them sequentially. Each replacement operation has the same parameters as replace_string_in_file: filePath, oldString, newString, and explanation. This tool is ideal when you need to make multiple edits across different files or multiple edits in the same file. The tool will provide a summary of successful and failed operations.","when":"!config.github.copilot.chat.disableReplaceTool","inputSchema":{"type":"object","properties":{"explanation":{"type":"string","description":"A brief explanation of what the multi-replace operation will accomplish."},"replacements":{"type":"array","description":"An array of replacement operations to apply sequentially.","items":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the file to edit."},"oldString":{"type":"string","description":"The exact literal text to replace, preferably unescaped. Include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string is not the exact literal text or does not match exactly, this replacement will fail."},"newString":{"type":"string","description":"The exact literal text to replace `oldString` with, preferably unescaped. Provide the EXACT text. Ensure the resulting code is correct and idiomatic."}},"required":["filePath","oldString","newString"]},"minItems":1}},"required":["explanation","replacements"]}},{"name":"copilot_editNotebook","toolReferenceName":"editNotebook","icon":"$(pencil)","displayName":"Edit Notebook","userDescription":"Edit a notebook file in the workspace","modelDescription":"This is a tool for editing an existing Notebook file in the workspace. Generate the \"explanation\" property first.\nThe system is very smart and can understand how to apply your edits to the notebooks.\nWhen updating the content of an existing cell, ensure newCode preserves whitespace and indentation exactly and does NOT include any code markers such as (...existing code...).","tags":["enable_other_tool_copilot_getNotebookSummary"],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file to edit, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1."},"cellId":{"type":"string","description":"Id of the cell that needs to be deleted or edited. Use the value `TOP`, `BOTTOM` when inserting a cell at the top or bottom of the notebook, else provide the id of the cell after which a new cell is to be inserted. Remember, if a cellId is provided and editType=insert, then a cell will be inserted after the cell with the provided cellId."},"newCode":{"anyOf":[{"type":"string","description":"The code for the new or existing cell to be edited. Code should not be wrapped within tags. Do NOT include code markers such as (...existing code...) to indicate existing code."},{"type":"array","items":{"type":"string","description":"The code for the new or existing cell to be edited. Code should not be wrapped within tags"}}]},"language":{"type":"string","description":"The language of the cell. `markdown`, `python`, `javascript`, `julia`, etc."},"editType":{"type":"string","enum":["insert","delete","edit"],"description":"The operation peformed on the cell, whether `insert`, `delete` or `edit`.\nUse the `editType` field to specify the operation: `insert` to add a new cell, `edit` to modify an existing cell's content, and `delete` to remove a cell."}},"required":["filePath","editType","cellId"]}},{"name":"copilot_runNotebookCell","displayName":"Run Notebook Cell","toolReferenceName":"runNotebookCell","legacyToolReferenceFullNames":["runNotebooks/runCell"],"icon":"$(play)","modelDescription":"This is a tool for running a code cell in a notebook file directly in the notebook editor. The output from the execution will be returned. Code cells should be run as they are added or edited when working through a problem to bring the kernel state up to date and ensure the code executes successfully. Code cells are ready to run and don't require any pre-processing. If asked to run the first cell in a notebook, you should run the first code cell since markdown cells cannot be executed. NOTE: Avoid executing Markdown cells or providing Markdown cell IDs, as Markdown cells cannot be executed.","userDescription":"Trigger the execution of a cell in a notebook file","tags":["enable_other_tool_copilot_getNotebookSummary"],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"},"reason":{"type":"string","description":"An optional explanation of why the cell is being run. This will be shown to the user before the tool is run and is not necessary if it's self-explanatory."},"cellId":{"type":"string","description":"The ID for the code cell to execute. Avoid providing markdown cell IDs as nothing will be executed."},"continueOnError":{"type":"boolean","description":"Whether or not execution should continue for remaining cells if an error is encountered. Default to false unless instructed otherwise."}},"required":["filePath","cellId"]}},{"name":"copilot_getNotebookSummary","toolReferenceName":"getNotebookSummary","legacyToolReferenceFullNames":["runNotebooks/getNotebookSummary"],"displayName":"Get the structure of a notebook","modelDescription":"This is a tool returns the list of the Notebook cells along with the id, cell types, line ranges, language, execution information and output mime types for each cell. This is useful to get Cell Ids when executing a notebook or determine what cells have been executed and what order, or what cells have outputs. If required to read contents of a cell use this to determine the line range of a cells, and then use read_file tool to read a specific line range. Requery this tool if the contents of the notebook change.","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"}},"required":["filePath"]}},{"name":"copilot_readNotebookCellOutput","displayName":"Get Notebook Cell Output","toolReferenceName":"readNotebookCellOutput","legacyToolReferenceFullNames":["runNotebooks/readNotebookCellOutput"],"icon":"$(notebook-render-output)","modelDescription":"This tool will retrieve the output for a notebook cell from its most recent execution or restored from disk. The cell may have output even when it has not been run in the current kernel session. This tool has a higher token limit for output length than the runNotebookCell tool.","userDescription":"Read the output of a previously executed cell","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"},"cellId":{"type":"string","description":"The ID of the cell for which output should be retrieved."}},"required":["filePath","cellId"]}},{"name":"copilot_fetchWebPage","displayName":"Fetch Web Page","toolReferenceName":"fetch","legacyToolReferenceFullNames":["fetch"],"when":"!isWeb","icon":"$(globe)","userDescription":"Fetch the main content from a web page. You should include the URL of the page you want to fetch.","modelDescription":"Fetches the main content from a web page. This tool is useful for summarizing or analyzing the content of a webpage. You should use this tool when you think the user is looking for information from a specific webpage.","tags":[],"inputSchema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"},"description":"An array of URLs to fetch content from."},"query":{"type":"string","description":"The query to search for in the web page's content. This should be a clear and concise description of the content you want to find."}},"required":["urls","query"]}},{"name":"copilot_findTestFiles","displayName":"Find Test Files","icon":"$(beaker)","canBeReferencedInPrompt":false,"toolReferenceName":"findTestFiles","userDescription":"For a source code file, find the file that contains the tests. For a test file, find the file that contains the code under test","modelDescription":"For a source code file, find the file that contains the tests. For a test file find the file that contains the code under test.","tags":[],"inputSchema":{"type":"object","properties":{"filePaths":{"type":"array","items":{"type":"string"}}},"required":["filePaths"]}},{"name":"copilot_githubRepo","toolReferenceName":"githubRepo","legacyToolReferenceFullNames":["githubRepo"],"displayName":"Semantic Search GitHub Repository","modelDescription":"Searches a GitHub repository for relevant source code snippets. Only use this tool if the user is very clearly asking for code snippets from a specific GitHub repository. Do not use this tool for Github repos that the user has open in their workspace.","userDescription":"Semantic Search a GitHub repository for relevant source code snippets. You can specify a repository using `owner/repo`","icon":"$(repo)","when":"!config.github.copilot.chat.githubMcpServer.enabled","inputSchema":{"type":"object","properties":{"repo":{"type":"string","description":"The name of the Github repository to search for code in. Should must be formatted as '/'."},"query":{"type":"string","description":"The query to search for repo. Should contain all relevant context."}},"required":["repo","query"]}},{"name":"copilot_githubTextSearch","legacyToolReferenceFullNames":["githubTextSearch"],"toolReferenceName":"githubTextSearch","displayName":"GitHub Text Search","modelDescription":"Lexically searches a GitHub repository or organization for files containing specific keywords or code patterns. Use this when looking for exact strings, function names, or identifiers in a GitHub repo or org. Unlike the semantic search tool, this uses keyword matching rather than meaning-based search.","userDescription":"Text search a GitHub repository or organization for files containing specific keywords or code patterns.","icon":"$(search)","inputSchema":{"type":"object","properties":{"scope":{"type":"string","description":"The GitHub scope to search. Use 'owner/repo' to search a single repository, or an org name (no slash) to search across an entire organization."},"query":{"type":"string","description":"The keyword search query. Supports GitHub code search syntax such as 'language:typescript', 'extension:ts', 'path:src/', etc."},"maxResults":{"type":"number","description":"Optional. The maximum number of search results to return. Defaults to 100."}},"required":["scope","query"]}},{"name":"copilot_switchAgent","toolReferenceName":"switchAgent","displayName":"Switch Agent","userDescription":"Switch to a different agent mode. Currently only the Plan agent is supported.","modelDescription":"Switch to the Plan agent to align on approach before implementing. Plan will explore the codebase, gathers context, clarifies requirements with the user, and creates an actionable implementation plan.\n\nSWITCH TO PLAN when ANY of these apply:\n1. Adding new functionality - where should it go? What patterns to follow?\n2. Multiple valid approaches exist - choosing between technologies, patterns, or strategies\n3. Modifying existing behavior - unclear what should change or what side effects exist\n4. Architectural decisions required - choosing between design patterns or integration approaches\n5. Changes span multiple files - refactoring, migrations, or cross-cutting concerns\n6. Requirements are underspecified - need to explore before understanding scope\n\nEXAMPLES:\n✓ Switch to Plan:\n- \"Add authentication to the app\" → architectural decisions needed (session vs JWT, middleware)\n- \"Refactor this data flow\" → must understand component dependencies first\n- \"Migrate from X to Y\" → requires understanding current structure\n\n✗ Do NOT switch to Plan:\n- User attached a detailed spec, plan, or requirements doc → context already provided\n- You already started editing files in this conversation → too late to switch\n- Single obvious change like fixing a typo or renaming → just do it\n- User gave explicit step-by-step instructions → follow them directly","when":"config.github.copilot.chat.switchAgent.enabled","icon":"$(arrow-swap)","inputSchema":{"type":"object","properties":{"agentName":{"type":"string","description":"The name of the agent to switch to. Currently only 'Plan' is supported.","enum":["Plan"]}},"required":["agentName"]}},{"name":"copilot_memory","displayName":"Memory","toolReferenceName":"memory","userDescription":"Manage persistent memory across conversations","modelDescription":"Manage a persistent memory system with three scopes for storing notes and information across conversations.\n\nMemory is organized under /memories/ with three tiers:\n- `/memories/` — User memory: persistent notes that survive across all workspaces and conversations. Store preferences, patterns, and general insights here.\n- `/memories/session/` — Session memory: notes scoped to the current conversation. Store task-specific context and in-progress notes here. Cleared after the conversation ends.\n- `/memories/repo/` — Repository memory: repository-scoped notes stored locally in the workspace. Store codebase conventions, build commands, project structure facts, and verified practices here.\n\nIMPORTANT: Before creating new memory files, first view the /memories/ directory to understand what already exists. This helps avoid duplicates and maintain organized notes.\n\nCommands:\n- `view`: View contents of a file or list directory contents. Can be used on files or directories (e.g., \"/memories/\" to see all top-level items).\n- `create`: Create a new file at the specified path with the given content. Fails if the file already exists.\n- `str_replace`: Replace an exact string in a file with a new string. The old_str must appear exactly once in the file.\n- `insert`: Insert text at a specific line number in a file. Line 0 inserts at the beginning.\n- `delete`: Delete a file or directory (and all its contents).\n- `rename`: Rename or move a file or directory from path to new_path. Cannot rename across scopes.","inputSchema":{"type":"object","properties":{"command":{"type":"string","enum":["view","create","str_replace","insert","delete","rename"],"description":"The operation to perform on the memory file system."},"path":{"type":"string","description":"The absolute path to the file or directory inside /memories/, e.g. \"/memories/notes.md\". Used by all commands except `rename`."},"file_text":{"type":"string","description":"Required for `create`. The content of the file to create."},"old_str":{"type":"string","description":"Required for `str_replace`. The exact string in the file to replace. Must appear exactly once."},"new_str":{"type":"string","description":"Required for `str_replace`. The new string to replace old_str with."},"insert_line":{"type":"number","description":"Required for `insert`. The 0-based line number to insert text at. 0 inserts before the first line."},"insert_text":{"type":"string","description":"Required for `insert`. The text to insert at the specified line."},"view_range":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2,"description":"Optional for `view`. A two-element array [start_line, end_line] (1-indexed) to view a specific range of lines."},"old_path":{"type":"string","description":"Required for `rename`. The current path of the file or directory to rename."},"new_path":{"type":"string","description":"Required for `rename`. The new path for the file or directory."}},"required":["command"]}},{"name":"copilot_resolveMemoryFileUri","displayName":"Resolve Memory File URI","toolReferenceName":"resolveMemoryFileUri","userDescription":"Resolve a memory file path to its actual URI","modelDescription":"Resolve a memory file path (like /memories/session/plan.md or /memories/repo/notes.md) to its fully qualified URI. Use this when you need the actual URI for a memory file, for example to pass it to setArtifacts. The path must start with /memories/.","tags":[],"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"The memory file path to resolve (e.g. /memories/session/plan.md)."}},"required":["path"]}},{"name":"copilot_editFiles","modelDescription":"This is a placeholder tool, do not use","userDescription":"Edit files","icon":"$(pencil)","displayName":"Edit Files","toolReferenceName":"editFiles","legacyToolReferenceFullNames":["editFiles"]},{"name":"copilot_sessionStoreSql","displayName":"Session Store SQL","toolReferenceName":"sessionStoreSql","when":"github.copilot.sessionSearch.enabled","userDescription":"Query your Copilot session history using SQL","modelDescription":"Query the local session store containing history from past coding sessions. Uses SQLite syntax (NOT DuckDB or Postgres). SQL queries are read-only — only SELECT and WITH are allowed. Use `datetime('now', '-1 day')` for date math (NOT `now() - INTERVAL '1 day'`), FTS5 `MATCH` for text search.\n\nTables: `sessions`, `turns`, `session_files`, `session_refs`, `checkpoints`, `search_index`. For column details and query patterns, use the **chronicle** skill.\n\nActions: 'query' (execute SQL — supports JOINs, FTS5 MATCH, aggregations), 'reindex' (rebuild index from debug logs).","tags":[],"canBeReferencedInPrompt":false,"inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["query","reindex"],"description":"The action to perform. 'query' (default) executes a SQL query. 'reindex' rebuilds the local session index and syncs to cloud if enabled."},"query":{"type":"string","description":"A single read-only SQL query to execute. Required when action is 'query'. Supports SELECT, WITH, JOINs, aggregations, and FTS5 MATCH. Only one statement per call — do not combine multiple queries with semicolons."},"force":{"type":"boolean","description":"When true with action 'reindex', re-processes all sessions including already-indexed ones. Default false (skips already-indexed sessions)."},"description":{"type":"string","description":"A 2-5 word summary of what this call does (e.g. 'Recent sessions overview', 'Generate standup', 'Reindex sessions')."},"subcommand":{"type":"string","enum":["standup","tips","cost-tips","search","improve","reindex"],"description":"The chronicle subcommand that triggered this call (e.g. 'tips' for /chronicle tips). Used for telemetry attribution only — pass this whenever the call originates from a /chronicle slash command."}},"required":["description"]}}],"languageModelToolSets":[{"name":"edit","description":"Edit files in your workspace","icon":"$(pencil)","tools":["createDirectory","createFile","createJupyterNotebook","editFiles","editNotebook","rename"]},{"name":"execute","description":"","tools":["runNotebookCell","executionSubagent"]},{"name":"read","description":"Read files in your workspace","icon":"$(eye)","tools":["getNotebookSummary","problems","readFile","viewImage","readNotebookCellOutput","skill"]},{"name":"search","description":"Search files in your workspace","icon":"$(search)","tools":["changes","codebase","fileSearch","listDirectory","textSearch","searchSubagent","usages"]},{"name":"vscode","description":"","tools":["installExtension","memory","newWorkspace","resolveMemoryFileUri","runCommand","switchAgent","toolSearch","vscodeAPI"]},{"name":"web","description":"Fetch information from the web","icon":"$(globe)","tools":["fetch","githubRepo","githubTextSearch"]}],"chatParticipants":[{"id":"github.copilot.default","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["panel"],"modes":["ask"],"disambiguation":[{"category":"generate_code_sample","description":"The user wants to generate code snippets without referencing the contents of the current workspace. This category does not include generating entire projects.","examples":["Write an example of computing a SHA256 hash."]},{"category":"add_feature_to_file","description":"The user wants to change code in a file that is provided in their request, without referencing the contents of the current workspace. This category does not include generating entire projects.","examples":["Add a refresh button to the table widget."]},{"category":"question_about_specific_files","description":"The user has a question about a specific file or code snippet that they have provided as part of their query, and the question does not require additional workspace context to answer.","examples":["What does this file do?"]}],"commands":[{"name":"explain","description":"Explain how the code in your active editor works"},{"name":"review","description":"Review the selected code in your active editor","when":"github.copilot.advanced.review.intent"},{"name":"tests","description":"Generate unit tests for the selected code","disambiguation":[{"category":"create_tests","description":"The user wants to generate unit tests.","examples":["Generate tests for my selection using pytest."]}]},{"name":"fix","description":"Propose a fix for the problems in the selected code","sampleRequest":"There is a problem in this code. Rewrite the code to show it with the bug fixed."},{"name":"new","description":"Scaffold code for a new file or project in a workspace","sampleRequest":"Create a RESTful API server using typescript","isSticky":true,"disambiguation":[{"category":"create_new_workspace_or_extension","description":"The user wants to create a complete Visual Studio Code workspace from scratch, such as a new application or a Visual Studio Code extension. Use this category only if the question relates to generating or creating new workspaces in Visual Studio Code. Do not use this category for updating existing code or generating sample code snippets","examples":["Scaffold a Node server.","Create a sample project which uses the fileSystemProvider API.","react application"]}]},{"name":"newNotebook","description":"Create a new Jupyter Notebook","sampleRequest":"How do I create a notebook to load data from a csv file?","disambiguation":[{"category":"create_jupyter_notebook","description":"The user wants to create a new Jupyter notebook in Visual Studio Code.","examples":["Create a notebook to analyze this CSV file."]}]},{"name":"semanticSearch","description":"Find relevant code to your query","sampleRequest":"Where is the toolbar code?","when":"config.github.copilot.semanticSearch.enabled"},{"name":"setupTests","description":"Set up tests in your project (Experimental)","sampleRequest":"add playwright tests to my project","when":"config.github.copilot.chat.setupTests.enabled","disambiguation":[{"category":"set_up_tests","description":"The user wants to configure project test setup, framework, or test runner. The user does not want to fix their existing tests.","examples":["Set up tests for this project."]}]}]},{"id":"github.copilot.editingSession","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Edit files in your workspace","isDefault":true,"locations":["panel"],"modes":["edit"]},{"id":"github.copilot.editingSessionEditor","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Edit files in your workspace","isDefault":true,"locations":["editor"],"commands":[]},{"id":"github.copilot.editsAgent","name":"agent","fullName":"GitHub Copilot","description":"Edit files in your workspace in agent mode","locations":["panel"],"modes":["agent"],"isEngine":true,"isDefault":true,"isAgent":true,"when":"config.chat.agent.enabled","commands":[{"name":"error","description":"Make a model request which will result in an error","when":"github.copilot.chat.debug"},{"name":"compact","description":"Free up context by compacting the conversation history. Optionally include extra instructions for compaction."},{"name":"explain","description":"Explain how the code in your active editor works"},{"name":"review","description":"Review the selected code in your active editor","when":"github.copilot.advanced.review.intent"},{"name":"tests","description":"Generate unit tests for the selected code","disambiguation":[{"category":"create_tests","description":"The user wants to generate unit tests.","examples":["Generate tests for my selection using pytest."]}]},{"name":"fix","description":"Propose a fix for the problems in the selected code","sampleRequest":"There is a problem in this code. Rewrite the code to show it with the bug fixed."},{"name":"new","description":"Scaffold code for a new file or project in a workspace","sampleRequest":"Create a RESTful API server using typescript","isSticky":true,"disambiguation":[{"category":"create_new_workspace_or_extension","description":"The user wants to create a complete Visual Studio Code workspace from scratch, such as a new application or a Visual Studio Code extension. Use this category only if the question relates to generating or creating new workspaces in Visual Studio Code. Do not use this category for updating existing code or generating sample code snippets","examples":["Scaffold a Node server.","Create a sample project which uses the fileSystemProvider API.","react application"]}]},{"name":"newNotebook","description":"Create a new Jupyter Notebook","sampleRequest":"How do I create a notebook to load data from a csv file?","disambiguation":[{"category":"create_jupyter_notebook","description":"The user wants to create a new Jupyter notebook in Visual Studio Code.","examples":["Create a notebook to analyze this CSV file."]}]},{"name":"semanticSearch","description":"Find relevant code to your query","sampleRequest":"Where is the toolbar code?","when":"config.github.copilot.semanticSearch.enabled"},{"name":"setupTests","description":"Set up tests in your project (Experimental)","sampleRequest":"add playwright tests to my project","when":"config.github.copilot.chat.setupTests.enabled","disambiguation":[{"category":"set_up_tests","description":"The user wants to configure project test setup, framework, or test runner. The user does not want to fix their existing tests.","examples":["Set up tests for this project."]}]}]},{"id":"github.copilot.notebook","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["notebook"],"when":"!config.inlineChat.notebookAgent","commands":[{"name":"fix","description":"Propose a fix for the problems in the selected code"},{"name":"explain","description":"Explain how the code in your active editor works"}]},{"id":"github.copilot.notebookEditorAgent","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["notebook"],"when":"config.inlineChat.notebookAgent","commands":[{"name":"fix","description":"Propose a fix for the problems in the selected code"},{"name":"explain","description":"Explain how the code in your active editor works"}]},{"id":"github.copilot.vscode","name":"vscode","fullName":"VS Code","description":"Ask questions about VS Code","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"What is the command to open the integrated terminal?","locations":["panel"],"disambiguation":[{"category":"vscode_configuration_questions","description":"The user wants to learn about, use, or configure the Visual Studio Code. Use this category if the users question is specifically about commands, settings, keybindings, extensions and other features available in Visual Studio Code. Do not use this category to answer questions about generating code or creating new projects including Visual Studio Code extensions.","examples":["Switch to light mode.","Keyboard shortcut to toggle terminal visibility.","Settings to enable minimap.","Whats new in the latest release?"]},{"category":"configure_python_environment","description":"The user wants to set up their Python environment.","examples":["Create a virtual environment for my project."]}],"commands":[{"name":"search","description":"Generate query parameters for workspace search","sampleRequest":"Search for 'foo' in all files under my 'src' directory"}]},{"id":"github.copilot.terminal","name":"terminal","fullName":"Terminal","description":"Ask about commands","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"How do I view all files within a directory including sub-directories?","isDefault":true,"locations":["terminal"],"commands":[{"name":"explain","description":"Explain something in the terminal","sampleRequest":"Explain the last command"}]},{"id":"github.copilot.terminalPanel","name":"terminal","fullName":"Terminal","description":"Ask how to do something in the terminal","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"How do I view all files within a directory including sub-directories?","locations":["panel"],"commands":[{"name":"explain","description":"Explain something in the terminal","sampleRequest":"Explain the last command","disambiguation":[{"category":"terminal_state_questions","description":"The user wants to learn about specific state such as the selection, command, or failed command in the integrated terminal in Visual Studio Code.","examples":["Why did the latest terminal command fail?"]}]}]}],"languageModelChatProviders":[{"vendor":"copilot","displayName":"Copilot"},{"vendor":"copilotcli","displayName":"Copilot CLI","when":"false"},{"vendor":"anthropic","displayName":"Anthropic","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for Anthropic","title":"API Key"}},"required":["apiKey"]}},{"vendor":"xai","displayName":"xAI","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for xAI","title":"API Key"}},"required":["apiKey"]}},{"vendor":"gemini","displayName":"Google","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for Google Gemini","title":"API Key"}},"required":["apiKey"]}},{"vendor":"openrouter","displayName":"OpenRouter","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for OpenRouter","title":"API Key"}},"required":["apiKey"]}},{"vendor":"openai","displayName":"OpenAI","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for OpenAI","title":"API Key"},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this provider group. When `true`, OpenAI Responses requests from this group do not send `previous_response_id`."}},"required":["apiKey"]}},{"vendor":"ollama","displayName":"Ollama (Deprecated)","deprecation":{"link":"vscode:extension/Ollama.ollama"},"configuration":{"type":"object","properties":{"url":{"type":"string","description":"The endpoint URL for the Ollama server","default":"http://localhost:11434","title":"URL"}},"required":["url"]}},{"vendor":"customoai","when":"productQualityType != 'stable'","displayName":"OpenAI Compatible (Deprecated)","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for the models","title":"API Key","markdownDeprecationMessage":"**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API — selectable per model via the `apiType` property."},"models":{"type":"array","markdownDeprecationMessage":"**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API — selectable per model via the `apiType` property.","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the custom OpenAI model"},"url":{"type":"string","markdownDescription":"URL endpoint for the custom OpenAI-compatible model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths including `/responses` or `/chat/completions` are respected."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"editTools":{"type":"array","description":"List of edit tools supported by the model. If this is not configured, the editor will try multiple edit tools and pick the best one.\n\n- 'find-replace': Find and replace text in a document.\n- 'multi-find-replace': Find and replace text in a document.\n- 'apply-patch': A file-oriented diff format used by some OpenAI models\n- 'code-rewrite': A general but slower editing tool that allows the model to rewrite and code snippet and provide only the replacement to the editor.","items":{"type":"string","enum":["find-replace","multi-find-replace","apply-patch","code-rewrite"]}},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}},{"vendor":"customendpoint","displayName":"Custom Endpoint","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"minLength":1,"description":"API key for the models","title":"API Key"},"apiType":{"type":"string","enum":["chat-completions","responses","messages"],"enumItemLabels":["Chat Completions","Responses","Messages"],"enumDescriptions":["Chat Completions API","Responses API","Messages API"],"default":"chat-completions","title":"API Type","markdownDescription":"Default request/response format for models in this group. Individual models can override this with their own `apiType` property; when both are unset the type is inferred from the URL path."},"models":{"type":"array","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the model"},"url":{"type":"string","pattern":"^https?://.+","patternErrorMessage":"URL must start with http:// or https://","markdownDescription":"URL endpoint for the model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths are respected: `/chat/completions`, `/responses`, and `/v1/messages` (Anthropic-compatible). Use the `apiType` property to override the request/response format independently of the URL."},"apiType":{"type":"string","enum":["chat-completions","responses","messages"],"enumItemLabels":["Chat Completions","Responses","Messages"],"enumDescriptions":["Chat Completions API","Responses API","Messages API"],"title":"API Type","markdownDescription":"Request/response format used to talk to this endpoint:\n- `chat-completions`: Chat Completions API (default).\n- `responses`: Responses API.\n- `messages`: Messages API.\n\nWhen omitted, falls back to the group-level `apiType`, then to the URL path."},"adaptiveThinking":{"type":"boolean","default":false,"markdownDescription":"Whether the Messages API model supports adaptive thinking. When enabled, requests use `thinking.type: \"adaptive\"`."},"minThinkingBudget":{"type":"integer","minimum":1,"markdownDescription":"Minimum thinking-token budget supported by a non-adaptive Messages API model. `maxThinkingBudget` must also be set."},"maxThinkingBudget":{"type":"integer","minimum":1,"markdownDescription":"Maximum thinking-token budget supported by a non-adaptive Messages API model. `minThinkingBudget` must also be set."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"editTools":{"type":"array","description":"List of edit tools supported by the model. If this is not configured, the editor will try multiple edit tools and pick the best one.\n\n- 'find-replace': Find and replace text in a document.\n- 'multi-find-replace': Find and replace text in a document.\n- 'apply-patch': A file-oriented diff format used by some OpenAI models\n- 'code-rewrite': A general but slower editing tool that allows the model to rewrite and code snippet and provide only the replacement to the editor.","items":{"type":"string","enum":["find-replace","multi-find-replace","apply-patch","code-rewrite"]}},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}},"modelOptions":{"type":"object","markdownDescription":"Sampling parameters to send with requests to this model. These override Copilot's defaults but are overridden by explicit per-request values. Set a property to `null` to omit it and use the model server's default.","properties":{"temperature":{"type":["number","null"],"minimum":0,"markdownDescription":"Sampling temperature. Set to `null` to omit the parameter."},"top_p":{"type":["number","null"],"minimum":0,"maximum":1,"markdownDescription":"Nucleus sampling probability. Set to `null` to omit the parameter."}},"additionalProperties":false}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}},{"vendor":"azure","displayName":"Azure","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for the models. If not set then Entra ID (Azure AD) authentication with your Microsoft account credentials will be used.","title":"API Key"},"models":{"type":"array","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the custom OpenAI model"},"url":{"type":"string","markdownDescription":"URL endpoint for the custom OpenAI-compatible model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths including `/responses` or `/chat/completions` are respected."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}}],"interactiveSession":[{"label":"GitHub Copilot","id":"copilot","icon":"","when":"!github.copilot.interactiveSession.disabled"}],"mcpServerDefinitionProviders":[{"id":"github","label":"GitHub"}],"viewsWelcome":[{"view":"debug","when":"github.copilot-chat.activated","contents":"Debug using a [terminal command](command:github.copilot.chat.startCopilotDebugCommand) or in an [interactive chat](command:workbench.action.chat.open?%7B%22query%22%3A%22%40vscode%20%2FstartDebugging%20%22%2C%22isPartialQuery%22%3Atrue%7D)."}],"chatViewsWelcome":[{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your Copilot subscription has expired.\n\n[Review Copilot Settings](https://github.com/settings/copilot?editor=vscode)","when":"github.copilot.interactiveSession.individual.expired && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Contact your GitHub organization administrator to enable Copilot.","when":"github.copilot.interactiveSession.enterprise.disabled && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub Copilot servers could not be reached. Please check your internet connection and try again.\n\n[Retry Connection](command:github.copilot.refreshToken)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.offline && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your GitHub token is invalid. Please sign in again to refresh your authentication.\n\n[Sign In](command:workbench.action.chat.triggerSetupForceSignIn)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.invalidToken && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your account has exceeded GitHub's API rate limit. Please wait a few minutes and try again.\n\n[Retry](command:github.copilot.refreshToken)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.rateLimited && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub login failed. Please sign in to your GitHub account to use Copilot.\n\n[Sign In](command:workbench.action.chat.triggerSetupForceSignIn)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.gitHubLoginFailed && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"There seems to be a problem with your account. Please contact GitHub support.\n\n[Contact Support](https://support.github.com/?editor=vscode)","when":"github.copilot.interactiveSession.contactSupport && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub Copilot Chat is currently disabled for your account by an organization administrator. Contact an organization administrator to enable chat.\n\n[Learn More](https://docs.github.com/en/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/managing-policies-for-copilot-in-your-organization)","when":"github.copilot.interactiveSession.chatDisabled && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"The Pre-Release version of the GitHub Copilot Chat extension is not currently supported in the stable version of VS Code. Please switch to the release version for GitHub Copilot Chat or try VS Code Insiders.\n\n[Switch to Release Version and Reload](command:runCommands?%7B%22commands%22%3A%5B%7B%22command%22%3A%22workbench.extensions.action.switchToRelease%22%2C%22args%22%3A%5B%22GitHub.copilot-chat%22%5D%7D%2C%22workbench.action.reloadWindow%22%5D%7D)\n\n[Switch to VS Code Insiders](https://aka.ms/vscode-insiders)","when":"github.copilot.interactiveSession.switchToReleaseChannel"}],"commands":[{"command":"github.copilot.chat.triggerPermissiveSignIn","title":"Login to GitHub with Full Permissions"},{"command":"github.copilot.cli.sessions.delete","title":"Delete...","icon":"$(close)","category":"Copilot CLI"},{"command":"agents.github.copilot.cli.deleteSessions","title":"Delete...","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.resumeInTerminal","title":"Resume in Terminal","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.rename","title":"Rename...","icon":"$(edit)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.setTitle","title":"Set Title","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openRepository","title":"Open Repository","icon":"$(folder-opened)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","title":"Open Session in New Window","icon":"$(folder-opened)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","title":"Open Session in Terminal","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","title":"Copy Session Branch Name","icon":"$(copy)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.commitToWorktree","title":"Commit File to Worktree","icon":"$(git-commit)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.commitToRepository","title":"Commit File to Repository","icon":"$(git-commit)","category":"Copilot CLI"},{"command":"github.copilot.cli.newSession","title":"New Copilot CLI Session","icon":"$(terminal)","category":"Chat"},{"command":"github.copilot.cli.newSessionToSide","title":"New Copilot CLI Session to the Side","icon":"$(terminal)","category":"Chat"},{"command":"github.copilot.cli.openInCopilotCLI","title":"Open in GitHub Copilot CLI","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.chat.compact","title":"Compact Conversation"},{"command":"github.copilot.chat.explain","title":"Explain","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.explain.palette","title":"Explain","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.chat.review","title":"Review","enablement":"config.github.copilot.chat.reviewSelection.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.apply","title":"Apply","icon":"$(sparkle)","enablement":"commentThread =~ /hasSuggestion/","category":"Chat"},{"command":"github.copilot.chat.review.applyAndNext","title":"Apply and Go to Next","icon":"$(sparkle)","enablement":"commentThread =~ /hasSuggestion/","category":"Chat"},{"command":"github.copilot.chat.review.discard","title":"Discard","icon":"$(close)","category":"Chat"},{"command":"github.copilot.chat.review.discardAndNext","title":"Discard and Go to Next","icon":"$(close)","category":"Chat"},{"command":"github.copilot.chat.review.discardAll","title":"Discard All","icon":"$(close-all)","category":"Chat"},{"command":"github.copilot.chat.review.stagedChanges","title":"Code Review - Staged Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.unstagedChanges","title":"Code Review - Unstaged Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.changes","title":"Code Review - Uncommitted Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.stagedFileChange","title":"Review Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.unstagedFileChange","title":"Review Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.codeReview.run","title":"Run Code Review","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.previous","title":"Previous Suggestion","icon":"$(arrow-up)","category":"Chat"},{"command":"github.copilot.chat.review.next","title":"Next Suggestion","icon":"$(arrow-down)","category":"Chat"},{"command":"github.copilot.chat.review.continueInInlineChat","title":"Discard and Copy to Inline Chat","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.chat.review.continueInChat","title":"View in Chat Panel","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.chat.review.markHelpful","title":"Helpful","icon":"$(thumbsup)","enablement":"!(commentThread =~ /markedAsHelpful/)","category":"Chat"},{"command":"github.copilot.chat.openUserPreferences","title":"Open User Preferences","category":"Chat","enablement":"config.github.copilot.chat.enableUserPreferences"},{"command":"github.copilot.chat.review.markUnhelpful","title":"Unhelpful","icon":"$(thumbsdown)","enablement":"!(commentThread =~ /markedAsUnhelpful/)","category":"Chat"},{"command":"github.copilot.chat.generate","title":"Generate This","icon":"$(sparkle)","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.chat.fix","title":"Fix","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.interactiveSession.feedback","title":"Send Chat Feedback","enablement":"github.copilot-chat.activated && !github.copilot.interactiveSession.disabled","icon":"$(feedback)","category":"Chat"},{"command":"github.copilot.debug.workbenchState","title":"Log Workbench State","category":"Developer"},{"command":"github.copilot.debug.togglePowerSaveBlocker","title":"Toggle Power Save Blocker","category":"Developer"},{"command":"github.copilot.debug.showChatLogView","title":"Show Chat Debug View","category":"Developer"},{"command":"github.copilot.debug.showOutputChannel","title":"Show Output Channel","category":"Developer"},{"command":"github.copilot.debug.showContextInspectorView","title":"Inspect Language Context","icon":"$(inspect)","category":"Developer"},{"command":"github.copilot.debug.validateNesRename","title":"Validate NES Rename","category":"Developer"},{"command":"github.copilot.debug.resetVirtualToolGroups","title":"Reset Virtual Tool Groups","icon":"$(inspect)","category":"Developer"},{"command":"github.copilot.debug.extensionState","title":"Log Extension State","category":"Developer"},{"command":"github.copilot.chat.tools.memory.showMemories","title":"Show Memory Files","category":"Chat"},{"command":"github.copilot.chat.tools.memory.clearMemories","title":"Clear All Memory Files","category":"Chat"},{"command":"github.copilot.terminal.explainTerminalLastCommand","title":"Explain Last Terminal Command","category":"Chat"},{"command":"github.copilot.git.generateCommitMessage","title":"Generate Commit Message","icon":"$(sparkle)","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.git.resolveMergeConflicts","title":"Resolve Conflicts with AI","icon":"$(chat-sparkle)","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.devcontainer.generateDevContainerConfig","title":"Generate Dev Container Configuration","category":"Chat"},{"command":"github.copilot.tests.fixTestFailure","icon":"$(sparkle)","title":"Fix Test Failure","category":"Chat"},{"command":"github.copilot.tests.fixTestFailure.fromInline","icon":"$(sparkle)","title":"Fix Test Failure"},{"command":"github.copilot.chat.attachFile","title":"Add File to Chat","category":"Chat"},{"command":"github.copilot.chat.attachSelection","title":"Add Selection to Chat","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.debug.collectDiagnostics","title":"Chat Diagnostics","category":"Developer"},{"command":"github.copilot.debug.inlineEdit.clearCache","title":"Clear Inline Suggestion Cache","category":"Developer"},{"command":"github.copilot.debug.inlineEdit.reportNotebookNESIssue","title":"Report Notebook Inline Suggestion Issue","enablement":"config.github.copilot.chat.advanced.notebook.alternativeNESFormat.enabled || github.copilot.chat.enableEnhancedNotebookNES","category":"Developer"},{"command":"github.copilot.debug.generateSTest","title":"Generate STest From Last Chat Request","enablement":"github.copilot.debugReportFeedback","category":"Developer"},{"command":"github.copilot.open.walkthrough","title":"Open Walkthrough","category":"Chat"},{"command":"github.copilot.debug.generateInlineEditTests","title":"Generate Inline Edit Tests","category":"Chat","enablement":"resourceScheme == 'ccreq'"},{"command":"github.copilot.buildRemoteWorkspaceIndex","title":"Build Codebase Semantic Index","category":"Chat","enablement":"github.copilot-chat.activated"},{"command":"github.copilot.deleteExternalIngestWorkspaceIndex","title":"Delete External Ingest Codebase Index","category":"Developer","enablement":"github.copilot-chat.activated && !github.copilot.blackbirdExternalIndexingDisabled"},{"command":"github.copilot.report","title":"Report Issue","category":"Chat"},{"command":"github.copilot.chat.rerunWithCopilotDebug","title":"Debug Last Terminal Command","category":"Chat"},{"command":"github.copilot.chat.startCopilotDebugCommand","title":"Start Copilot Debug"},{"command":"github.copilot.chat.clearTemporalContext","title":"Clear Temporal Context","category":"Developer"},{"command":"github.copilot.search.markHelpful","title":"Helpful","icon":"$(thumbsup)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.search.markUnhelpful","title":"Unhelpful","icon":"$(thumbsdown)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.search.feedback","title":"Feedback","icon":"$(feedback)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.chat.debug.showElements","title":"Show Rendered Elements"},{"command":"github.copilot.chat.debug.hideElements","title":"Hide Rendered Elements"},{"command":"github.copilot.chat.debug.showTools","title":"Show Tools"},{"command":"github.copilot.chat.debug.hideTools","title":"Hide Tools"},{"command":"github.copilot.chat.debug.showNesRequests","title":"Show NES Requests"},{"command":"github.copilot.chat.debug.hideNesRequests","title":"Hide NES Requests"},{"command":"github.copilot.chat.debug.showGhostRequests","title":"Show Ghost Requests"},{"command":"github.copilot.chat.debug.hideGhostRequests","title":"Hide Ghost Requests"},{"command":"github.copilot.chat.debug.showRawRequestBody","title":"Show Raw Request Body"},{"command":"github.copilot.chat.debug.exportLogItem","title":"Export as...","icon":"$(export)"},{"command":"github.copilot.chat.debug.exportPromptArchive","title":"Export All as Archive...","icon":"$(archive)"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","title":"Export All as JSON...","icon":"$(export)"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","title":"Export All Prompt Logs as JSON...","icon":"$(export)"},{"command":"github.copilot.chat.otel.exportAgentTracesDB","title":"Export Agent Traces DB","category":"Chat","enablement":"config.github.copilot.chat.otel.dbSpanExporter.enabled"},{"command":"github.copilot.chat.otel.statusActive","title":"OpenTelemetry","category":"Chat","icon":"$(broadcast)"},{"command":"github.copilot.sessionSync.deleteSessions","title":"Delete Session Sync Data","category":"Chat","enablement":"github.copilot.sessionSearch.enabled && config.chat.sessionSync.enabled"},{"command":"github.copilot.chronicle.reindex","title":"Reindex Sessions","category":"Chat","enablement":"github.copilot.sessionSearch.enabled"},{"command":"github.copilot.nes.captureExpected.start","title":"Record Expected Edit (NES)","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.confirm","title":"Confirm and Save Expected Edit Capture","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.abort","title":"Cancel Expected Edit Capture","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.submit","title":"Submit NES Captures","category":"Copilot"},{"command":"github.copilot.debug.collectWorkspaceIndexDiagnostics","title":"Collect Workspace Index Diagnostics","category":"Developer"},{"command":"github.copilot.chat.mcp.setup.check","title":"MCP Check: is supported"},{"command":"github.copilot.chat.mcp.setup.validatePackage","title":"MCP Check: validate package"},{"command":"github.copilot.chat.mcp.setup.flow","title":"MCP Check: do prompts"},{"command":"github.copilot.chat.generateAltText","title":"Generate/Refine Alt Text"},{"command":"github.copilot.chat.notebook.enableFollowCellExecution","title":"Enable Follow Cell Execution from Chat","shortTitle":"Follow","icon":"$(pinned)"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","title":"Disable Follow Cell Execution from Chat","shortTitle":"Unfollow","icon":"$(pinned-dirty)"},{"command":"github.copilot.cloud.resetWorkspaceConfirmations","title":"Reset Cloud Agent Workspace Confirmations"},{"command":"github.copilot.cloud.sessions.openInBrowser","title":"Open in Browser","icon":"$(link-external)"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","title":"Close Pull Request"},{"command":"github.copilot.cloud.sessions.installPRExtension","title":"Install GitHub Pull Request Extension","icon":"$(extensions)"},{"command":"github.copilot.chat.openSuggestionsPanel","title":"Open Completions Panel","enablement":"github.copilot.extensionUnification.activated && !isWeb","category":"GitHub Copilot"},{"command":"github.copilot.chat.toggleStatusMenu","title":"Open Status Menu","enablement":"github.copilot.extensionUnification.activated","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.disable","title":"Disable Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated && config.editor.inlineSuggest.enabled && github.copilot.completions.enabled","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.enable","title":"Enable Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated && !(config.editor.inlineSuggest.enabled && github.copilot.completions.enabled)","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.toggle","title":"Toggle (Enable/Disable) Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated","category":"GitHub Copilot"},{"command":"github.copilot.chat.openModelPicker","title":"Change Completions Model","category":"GitHub Copilot","enablement":"github.copilot.extensionUnification.activated && !isWeb && github.copilot.completions.hasMultipleModels"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","title":"Apply Changes to Workspace","enablement":"!chatSessionRequestInProgress","category":"GitHub Copilot"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","title":"Apply","enablement":"!chatSessionRequestInProgress","icon":"$(git-stash-pop)","category":"GitHub Copilot"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","title":"Merge Changes","enablement":"!chatSessionRequestInProgress","icon":"$(git-merge)","category":"GitHub Copilot"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","title":"Merge Changes & Sync","enablement":"!chatSessionRequestInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.commit","title":"Commit Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-commit)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.commitAndSync","title":"Commit and Sync Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.sync","title":"Sync Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","title":"Create PR","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-pull-request-create)","category":"GitHub Copilot"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","title":"Create Draft PR","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-pull-request-draft)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.discardChanges","title":"Discard Changes","enablement":"!chatSessionRequestInProgress","icon":"$(discard)","category":"GitHub Copilot"},{"command":"github.copilot.chat.copilotCLI.addFileReference","title":"Add File to Copilot CLI","enablement":"github.copilot.chat.copilotCLI.hasSession","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.addSelection","title":"Add Selection to Copilot CLI","enablement":"github.copilot.chat.copilotCLI.hasSession","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.acceptDiff","title":"Accept Changes","enablement":"github.copilot.chat.copilotCLI.hasActiveDiff","icon":"$(check)","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.rejectDiff","title":"Reject Changes","enablement":"github.copilot.chat.copilotCLI.hasActiveDiff","icon":"$(close)","category":"Copilot CLI"},{"command":"github.copilot.chat.checkoutPullRequestReroute","title":"Checkout","icon":"$(git-pull-request)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","title":"Create Pull Request","icon":"$(git-pull-request-create)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","title":"Open Pull Request","icon":"$(git-pull-request)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.openRepository","title":"Browse repositories...","icon":"$(repo)","category":"GitHub Copilot"},{"command":"github.copilot.chat.cloudSessions.clearCaches","title":"Clear Cloud Agent Caches","category":"GitHub Copilot"},{"command":"github.copilot.sessions.refreshChanges","title":"Refresh","icon":"$(refresh)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.initializeRepository","title":"Initialize Repository","enablement":"!chatSessionRequestInProgress","icon":"$(repo)","category":"GitHub Copilot"}],"configuration":[{"title":"GitHub Copilot Chat","id":"stable","properties":{"github.copilot.chat.backgroundAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Copilot CLI. When disabled, the Copilot CLI will not be available in 'Continue In' context menus."},"github.copilot.chat.cloudAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Cloud Agent. When disabled, the Cloud Agent will not be available in 'Continue In' context menus."},"github.copilot.chat.localIndex.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable local session tracking. When enabled, session data is tracked locally for /chronicle commands.","tags":["onExp"]},"github.copilot.chat.codeGeneration.useInstructionFiles":{"type":"boolean","default":true,"markdownDescription":"Controls whether code instructions from `.github/copilot-instructions.md` are added to Copilot requests.\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance. [Learn more](https://aka.ms/github-copilot-custom-instructions) about customizing Copilot."},"github.copilot.editor.enableCodeActions":{"type":"boolean","default":true,"description":"Controls if Copilot commands are shown as Code Actions when available"},"github.copilot.renameSuggestions.triggerAutomatically":{"type":"boolean","default":true,"description":"Controls whether Copilot generates suggestions for renaming"},"github.copilot.chat.localeOverride":{"type":"string","enum":["auto","en","fr","it","de","es","ru","zh-CN","zh-TW","ja","ko","cs","pt-br","tr","pl"],"enumDescriptions":["Use VS Code's configured display language","English","français","italiano","Deutsch","español","русский","中文(简体)","中文(繁體)","日本語","한국어","čeština","português","Türkçe","polski"],"default":"auto","markdownDescription":"Specify a locale that Copilot should respond in, e.g. `en` or `fr`. By default, Copilot will respond using VS Code's configured display language locale."},"github.copilot.chat.terminalChatLocation":{"type":"string","default":"chatView","markdownDescription":"Controls where chat queries from the terminal should be opened.","markdownEnumDescriptions":["Open the chat view.","Open quick chat.","Open terminal inline chat"],"enum":["chatView","quickChat","terminal"]},"github.copilot.chat.scopeSelection":{"type":"boolean","default":false,"markdownDescription":"Whether to prompt the user to select a specific symbol scope if the user uses `/explain` and the active editor has no selection."},"github.copilot.chat.useProjectTemplates":{"type":"boolean","default":true,"markdownDescription":"Use relevant GitHub projects as starter projects when using `/new`"},"github.copilot.nextEditSuggestions.enabled":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to enable next edit suggestions (NES).\n\nNES can propose a next edit based on your recent changes. [Learn more](https://aka.ms/vscode-nes) about next edit suggestions.","scope":"language-overridable"},"github.copilot.completions.chat.enabled":{"type":"boolean","default":false,"markdownDescription":"Whether to enable inline completions in chat."},"github.copilot.nextEditSuggestions.extendedRange":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to allow next edit suggestions (NES) to modify code farther away from the cursor position."},"github.copilot.nextEditSuggestions.fixes":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to offer fixes for diagnostics via next edit suggestions (NES).","scope":"language-overridable"},"github.copilot.nextEditSuggestions.allowWhitespaceOnlyChanges":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to allow whitespace-only changes be proposed by next edit suggestions (NES).","scope":"language-overridable"},"github.copilot.chat.agent.autoFix":{"type":"boolean","default":false,"description":"Automatically fix diagnostics for edited files.","tags":["onExp"]},"github.copilot.chat.rateLimitAutoSwitchToAuto":{"type":"boolean","default":false,"markdownDescription":"Automatically switch to the Auto model and retry when you hit a per-model rate limit.","tags":["onExp"]},"github.copilot.chat.customInstructionsInSystemMessage":{"type":"boolean","default":true,"description":"When enabled, custom instructions and mode instructions will be appended to the system message instead of a user message."},"github.copilot.chat.organizationCustomAgents.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will load custom agents defined by your GitHub Organization."},"github.copilot.chat.organizationInstructions.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will load custom instructions defined by your GitHub Organization."},"github.copilot.chat.additionalReadAccessPaths":{"type":"array","default":[],"items":{"type":"string"},"markdownDescription":"A list of absolute folder paths outside of the workspace that Copilot Chat is allowed to read from without requiring confirmation. Edit operations remain restricted to the workspace.","scope":"window"},"github.copilot.chat.agent.currentEditorContext.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will include the name of the current active editor in the context for agent mode."},"github.copilot.enable":{"type":"object","scope":"window","default":{"*":true,"plaintext":false,"markdown":false,"scminput":false},"additionalProperties":{"type":"boolean"},"markdownDescription":"Enable or disable auto triggering of Copilot completions for specified [languages](https://code.visualstudio.com/docs/languages/identifiers). You can still trigger suggestions manually using `Alt + \\`","agentsWindow":{"default":{"markdown":true,"plaintext":true}}},"github.copilot.selectedCompletionModel":{"type":"string","default":"","markdownDescription":"The currently selected completion model ID. To select from a list of available models, use the __\"Change Completions Model\"__ command or open the model picker (from the Copilot menu in the VS Code title bar, select __\"Configure Code Completions\"__ then __\"Change Completions Model\"__. The value must be a valid model ID. An empty value indicates that the default model will be used."},"github.copilot.chat.reviewAgent.enabled":{"type":"boolean","default":true,"description":"Enables the code review agent."},"github.copilot.chat.reviewSelection.enabled":{"type":"boolean","default":true,"description":"Enables code review on current selection."},"github.copilot.chat.reviewSelection.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that provide code review for the current selection. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-review-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-review-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that provide code review for the current selection. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use underscore for field names."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Use underscore for field names."},{"text":"Resolve all TODO tasks."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that provide code review for the current selection.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's effectiveness.","examples":[[{"file":".copilot-review-instructions.md"},{"text":"Resolve all TODO tasks."}]]},"github.copilot.chat.anthropic.useMessagesApi":{"type":"boolean","default":true,"markdownDescription":"Use the Messages API instead of the Chat Completions API when supported.","tags":["onExp"]},"github.copilot.chat.imageUpload.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the use of image upload URLs in chat requests instead of raw base64 strings."}}},{"id":"preview","properties":{"github.copilot.chat.copilotDebugCommand.enabled":{"type":"boolean","default":true,"tags":["preview"],"description":"Whether the `copilot-debug` command is enabled in the terminal."},"github.copilot.chat.codesearch.enabled":{"type":"boolean","default":false,"tags":["preview"],"markdownDescription":"Whether to enable agentic codesearch when using `#codebase`."},"github.copilot.chat.tools.viewImage.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the view image tool, which allows the agent to view image files such as png, jpg, jpeg, gif, and webp.","tags":["preview","onExp"]}}},{"id":"experimental","properties":{"github.copilot.chat.githubMcpServer.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable built-in support for the GitHub MCP Server.","tags":["experimental"],"agentsWindow":{"default":true}},"github.copilot.chat.githubMcpServer.toolsets":{"type":"array","default":["default"],"markdownDescription":"Specify toolsets to use from the GitHub MCP Server. [Learn more](https://aka.ms/vscode-gh-mcp-toolsets).","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.githubMcpServer.readonly":{"type":"boolean","default":false,"markdownDescription":"Enable read-only mode for the GitHub MCP Server. When enabled, only read tools are available. [Learn more](https://aka.ms/vscode-gh-mcp-readonly).","tags":["experimental"]},"github.copilot.chat.githubMcpServer.lockdown":{"type":"boolean","default":false,"markdownDescription":"Enable lockdown mode for the GitHub MCP Server. When enabled, hides public issue details created by users without push access. [Learn more](https://aka.ms/vscode-gh-mcp-lockdown).","tags":["experimental"]},"github.copilot.chat.githubMcpServer.channel":{"type":"string","default":"stable","enum":["stable","insiders"],"enumDescriptions":["Use the stable version of the GitHub MCP Server.","Connect to the Insiders version of the GitHub MCP Server with experimental features."],"markdownDescription":"Select the channel for the GitHub MCP Server. When set to Insiders, enables access to experimental features that may change or be removed based on community feedback. [Learn more](https://aka.ms/vscode-gh-mcp-channel).","tags":["experimental"]},"github.copilot.chat.switchAgent.enabled":{"type":"boolean","default":false,"markdownDescription":"Allow agent to switch to the Plan agent for research, exploration, and planning tasks.","tags":["experimental","onExp"]},"github.copilot.chat.codeGeneration.instructions":{"markdownDeprecationMessage":"Use instructions files instead. See https://aka.ms/vscode-ghcp-custom-instructions for more information.","type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that generate code. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-codeGeneration-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-codeGeneration-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that generate code. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use underscore for field names."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Use underscore for field names."},{"text":"Always add a comment: 'Generated by Copilot'."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate code.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-codeGeneration-instructions.md"},{"text":"Always add a comment: 'Generated by Copilot'."}]],"tags":["experimental"]},"github.copilot.chat.testGeneration.instructions":{"markdownDeprecationMessage":"Use instructions files instead. See https://aka.ms/vscode-ghcp-custom-instructions for more information.","type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that generate tests. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-test-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-test-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that generate tests. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use suite and test instead of describe and it."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Always try uniting related tests in a suite."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate tests.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-test-instructions.md"},{"text":"Always try uniting related tests in a suite."}]],"tags":["experimental"]},"github.copilot.chat.commitMessageGeneration.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file with instructions that will be added to Copilot requests that generate commit messages.","properties":{"file":{"type":"string","examples":[".copilot-commit-message-instructions.md"]}},"examples":[{"file":".copilot-commit-message-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"Text instructions that will be added to Copilot requests that generate commit messages.","properties":{"text":{"type":"string","examples":["Use conventional commit message format."]}},"required":["text"],"examples":[{"text":"Use conventional commit message format."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate commit messages.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use conventional commit message format.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-commit-message-instructions.md"},{"text":"Use conventional commit message format."}]],"tags":["experimental"]},"github.copilot.chat.pullRequestDescriptionGeneration.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file with instructions that will be added to Copilot requests that generate pull request titles and descriptions.","properties":{"file":{"type":"string","examples":[".copilot-pull-request-description-instructions.md"]}},"examples":[{"file":".copilot-pull-request-description-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"Text instructions that will be added to Copilot requests that generate pull request titles and descriptions.","properties":{"text":{"type":"string","examples":["Include every commit message in the pull request description."]}},"required":["text"],"examples":[{"text":"Include every commit message in the pull request description."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate pull request titles and descriptions.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Always include a list of key changes.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-pull-request-description-instructions.md"},{"text":"Use conventional commit message format."}]],"tags":["experimental"]},"github.copilot.chat.setupTests.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the `/setupTests` intent and prompting in `/tests` generation.","tags":["experimental"]},"github.copilot.chat.languageContext.typescript.enabled":{"type":"boolean","default":true,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for inline suggestions","agentsWindow":{"default":true}},"github.copilot.chat.languageContext.typescript7.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental"],"markdownDescription":"Enables the TypeScript language context provider for inline suggestions when using TS7 language services","agentsWindow":{"default":false}},"github.copilot.chat.languageContext.typescript.items":{"type":"string","enum":["minimal","double","fillHalf","fill"],"default":"double","scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Controls which kind of items are included in the TypeScript language context provider."},"github.copilot.chat.languageContext.typescript.includeDocumentation":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Controls whether to include documentation comments in the generated code snippets."},"github.copilot.chat.languageContext.typescript.cacheTimeout":{"type":"number","default":500,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"The cache population timeout for the TypeScript language context provider in milliseconds. The default is 500 milliseconds."},"github.copilot.chat.languageContext.fix.typescript.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for /fix commands"},"github.copilot.chat.languageContext.inline.typescript.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for inline chats (both generate and edit)"},"github.copilot.chat.newWorkspaceCreation.enabled":{"type":"boolean","default":true,"tags":["experimental"],"description":"Whether to enable new agentic workspace creation."},"github.copilot.chat.newWorkspace.useContext7":{"type":"boolean","default":false,"tags":["experimental"],"markdownDescription":"Whether to use the [Context7](command:github.copilot.mcp.viewContext7) tools to scaffold project for new workspace creation."},"github.copilot.chat.notebook.followCellExecution.enabled":{"type":"boolean","default":false,"tags":["experimental"],"description":"Controls whether the currently executing cell is revealed into the viewport upon execution from Copilot."},"github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Controls whether to use an enhanced approach for generating next edit suggestions in notebook cells."},"github.copilot.chat.summarizeAgentConversationHistory.enabled":{"type":"boolean","default":true,"tags":["experimental"],"description":"Whether to auto-compact agent conversation history once the context window is filled."},"github.copilot.chat.virtualTools.threshold":{"type":"number","minimum":0,"maximum":128,"default":128,"tags":["experimental"],"markdownDescription":"This setting defines the tool count over which virtual tools should be used. Virtual tools group similar sets of tools together and they allow the model to activate them on-demand. Certain tool groups will optimistically be pre-activated. We are actively developing this feature and you experience degraded tool calling once the threshold is hit.\n\nMay be set to `0` to disable virtual tools."},"github.copilot.chat.alternateGptPrompt.enabled":{"type":"boolean","default":false,"tags":["experimental"],"description":"Enables an experimental alternate prompt for GPT models instead of the default prompt."},"github.copilot.chat.alternateGeminiModelFPrompt.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Enables an experimental alternate prompt for Gemini Model F instead of the default prompt."},"github.copilot.chat.gemini35FlashReducedToolUsePrompt.enabled":{"type":"boolean","default":true,"tags":["experimental","onExp"],"description":"Enables an experimental prompt for Gemini 3.5 Flash that instructs the model to minimize tool calls to reduce token usage."},"github.copilot.chat.geminiFlashPromptAdditions.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Enables experimental additional prompt guidance for Gemini Flash 3.6 and 3.7 models."},"github.copilot.chat.anthropic.contextEditing.mode":{"type":"string","default":"off","markdownDescription":"Select the context editing mode for Anthropic models. Automatically manages conversation context as it grows, helping optimize costs and stay within context window limits.\n\n- `off`: Context editing is disabled.\n- `clear-thinking`: Clears thinking blocks while preserving tool uses.\n- `clear-tooluse`: Clears tool uses while preserving thinking blocks.\n- `clear-both`: Clears both thinking blocks and tool uses.\n\n**Note**: This is an experimental feature. Context editing may cause additional cache rewrites. Enable with caution.","tags":["experimental","onExp"],"enum":["off","clear-thinking","clear-tooluse","clear-both"]},"github.copilot.chat.responsesApiContextManagement.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables context management for the Responses API. Requires `#github.copilot.chat.useResponsesApi#`.","tags":["experimental","onExp"]},"github.copilot.chat.responsesApi.promptCacheKey.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables prompt cache key being set for the Responses API.","tags":["experimental","onExp"]},"github.copilot.chat.responsesApi.promptCacheBreakpoint.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables explicit prompt cache breakpoint markers for the Responses API.","tags":["experimental","onExp"]},"github.copilot.chat.updated53CodexPrompt.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the updated prompt for gpt-5.3-codex model.","tags":["experimental","onExp"]},"github.copilot.chat.claudeOpus5Prompt.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the updated system prompt tuned for the Claude Opus 5 model.","tags":["experimental","onExp"]},"github.copilot.chat.claudeSonnet5Prompt.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the updated system prompt tuned for the Claude Sonnet 5 model.","tags":["experimental","onExp"]},"github.copilot.chat.gpt55GetChangedFilesTool.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the Get Changed Files tool for gpt-5.5 models.","tags":["experimental","onExp"]},"github.copilot.chat.gpt56Verbosity.enabled":{"type":"boolean","default":true,"markdownDescription":"Sets the response verbosity to low for gpt-5.6 models.","tags":["experimental","onExp"]},"github.copilot.chat.gemini3GetChangedFilesTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the Get Changed Files tool for gemini-3 models.","tags":["experimental","onExp"]},"github.copilot.chat.gemini3LowReasoningEffort.enabled":{"type":"boolean","default":false,"markdownDescription":"Sets the reasoning effort to low for gemini-3 models.","tags":["experimental","onExp"]},"github.copilot.chat.gpt55ReadFileTool.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the Read File tool for gpt-5.5 models.","tags":["experimental","onExp"]},"github.copilot.chat.anthropic.tools.websearch.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable Anthropic's native web search tool for BYOK Claude models. When enabled, allows Claude to search the web for current information. \n\n**Note**: This is an experimental feature only available for BYOK Anthropic Claude models.","tags":["experimental","onExp"]},"github.copilot.chat.anthropic.tools.websearch.maxUses":{"type":"number","default":5,"markdownDescription":"Maximum number of web searches allowed per request. Valid range is 1 to 20. Prevents excessive API calls within a single interaction. If Claude exceeds this limit, the response returns an error.","minimum":1,"maximum":20,"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.allowedDomains":{"type":"array","default":[],"markdownDescription":"List of domains to restrict web search results to (e.g., `[\"example.com\", \"docs.example.com\"]`). Domains should not include the HTTP/HTTPS scheme. Subdomains are automatically included. Cannot be used together with `#github.copilot.chat.anthropic.tools.websearch.blockedDomains#`; configuring both will cause web search requests to fail.","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.blockedDomains":{"type":"array","default":[],"markdownDescription":"List of domains to exclude from web search results (e.g., `[\"untrustedsource.com\"]`). Domains should not include the HTTP/HTTPS scheme. Subdomains are automatically excluded. Cannot be used together with `#github.copilot.chat.anthropic.tools.websearch.allowedDomains#`; configuring both will cause web search requests to fail.","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.userLocation":{"type":["object","null"],"default":null,"markdownDescription":"User location for personalizing web search results based on geographic context. All fields (city, region, country, timezone) are optional. Example: `{\"city\": \"San Francisco\", \"region\": \"California\", \"country\": \"US\", \"timezone\": \"America/Los_Angeles\"}`","properties":{"city":{"type":"string","description":"City name (e.g., 'San Francisco')"},"region":{"type":"string","description":"State or region (e.g., 'California')"},"country":{"type":"string","description":"ISO country code (e.g., 'US')"},"timezone":{"type":"string","description":"IANA timezone identifier (e.g., 'America/Los_Angeles')"}},"tags":["experimental"]},"github.copilot.chat.completionsFetcher":{"type":["string","null"],"markdownDescription":"Sets the fetcher used for the inline completions.","tags":["experimental","onExp"],"enum":["electron-fetch","node-fetch"]},"github.copilot.chat.nesFetcher":{"type":["string","null"],"markdownDescription":"Sets the fetcher used for the next edit suggestions.","tags":["experimental","onExp"],"enum":["electron-fetch","node-fetch"]},"github.copilot.chat.planAgent.additionalTools":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","markdownDescription":"Additional tools to enable for the Plan agent, on top of built-in tools. Use fully-qualified tool names (e.g., `github/issue_read`, `mcp_server/tool_name`).","tags":["experimental"]},"github.copilot.chat.implementAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used when starting implementation from the Plan agent's handoff. Use the format `Model Name (vendor)` (e.g., `GPT-5 (copilot)`). Leave empty to use the default model.","tags":["experimental"]},"github.copilot.chat.askAgent.additionalTools":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","markdownDescription":"Additional tools to enable for the Ask agent, on top of built-in read-only tools. Use fully-qualified tool names (e.g., `github/issue_read`, `mcp_server/tool_name`).","tags":["experimental"]},"github.copilot.chat.askAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used by the Ask agent. Leave empty to use the default model.","tags":["experimental"]},"github.copilot.chat.exploreAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Explore (Code Research) subagent.","tags":["experimental","onExp"]},"github.copilot.chat.exploreAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used by the Explore subagent. Defaults to a fast, small model. Leave empty to use the built-in fallback list.","tags":["experimental"]},"github.copilot.chat.tools.grepSearch.outputFormat":{"type":"string","default":"grep","enum":["grep","tag"],"markdownDescription":"The output format for the grep search tool. Can be either 'grep' or 'tag'. The default is 'grep'.","tags":["experimental","onExp"]},"github.copilot.chat.tools.grepSearch.defaultMaxResults":{"type":"number","default":100,"markdownDescription":"The default maximum number of results to return from the grep search tool. The default is 100.","tags":["experimental","onExp"]},"github.copilot.chat.tools.grepSearch.maxResultsCap":{"type":"number","default":200,"markdownDescription":"The maximum number of results that can be returned from the grep search tool. The default is 200.","tags":["experimental","onExp"]}}},{"id":"advanced","properties":{"github.copilot.chat.chatCompletionsTokenParameter":{"type":"string","enum":["max_completion_tokens","max_tokens"],"enumDescriptions":["Send `max_completion_tokens`.","Send the legacy `max_tokens` parameter for compatibility."],"default":"max_tokens","markdownDescription":"Controls the output token limit parameter sent to custom Chat Completions APIs. Use `max_completion_tokens` for endpoints that do not support `max_tokens`.","tags":["advanced","onExp"]},"github.copilot.chat.inlineEdits.xtabProvider.modelConfiguration":{"type":["object","null"],"default":null,"markdownDescription":"Advanced model configuration for the next edit suggestions xtab provider.\n\n**Note**: This is an advanced setting.","tags":["advanced","experimental"]},"github.copilot.chat.reasoningEffortOverride":{"type":["string","null"],"default":null,"markdownDescription":"Overrides the reasoning/thinking effort sent to model APIs. The configured value must match a reasoning-effort value supported by the selected model or endpoint (for example, `low`, `medium`, `high`, or other model-specific values). Used by evals.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced"]},"github.copilot.chat.autoModeTierOverride":{"type":["string","null"],"default":null,"markdownDescription":"Overrides the routing tier that the `Auto` model requests, ignoring both the tier picked in the model picker and the tier inline chat defaults to. Accepts `eco`, `balanced`, `max`, or `fast`. Used by evals.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced"]},"github.copilot.chat.anthropic.promptCaching.extendedTtl":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Use the extended (1 hour) prompt cache TTL on tools and system blocks for the Anthropic Messages API. Applied to Claude Opus 4.5/4.6/4.7 and Sonnet 4.5/4.6 variants; other models keep the default 5 minute TTL even when this setting is enabled.\n\n**Note**: This is an experimental feature. Only the main agent conversation is eligible — inline chat, terminal chat, notebook chat, and subagent requests are excluded."},"github.copilot.chat.anthropic.promptCaching.extendedTtlMessages":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Also extend the 1 hour prompt cache TTL to message-level breakpoints. Requires `chat.anthropic.promptCaching.extendedTtl` to be enabled; has no effect on its own.\n\n**Note**: This is an experimental feature."},"github.copilot.chat.modelCapabilityOverrides":{"type":"object","default":{},"markdownDescription":"Per-model capability overrides keyed by model id, intended for evaluating preview and tenanted models against an existing model's capability profile. For each model id, declare an aliased `family`. Setting `family` to a known production family (e.g. `\"claude-opus-4.7\"`) makes the model receive that family's full capability profile — Anthropic family detection, latest Opus prompt, multi-replace tools, tool search, context editing, extended cache TTL — without a code change.\n\n**Note**: This is an advanced setting for evaluation use; it is not intended for regular end-user configuration.","additionalProperties":{"type":"object","properties":{"family":{"type":"string","description":"Alias the model's family for capability routing (e.g. 'claude-opus-4.7')."}},"additionalProperties":false},"tags":["advanced"]},"github.copilot.chat.installExtensionSkill.enabled":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Whether to enable the install extension skill for Copilot."},"github.copilot.chat.debug.promptOverrideString":{"type":["string","null"],"default":null,"markdownDescription":"YAML string that overrides the system prompt and/or tool descriptions sent to the model. When both this setting and `github.copilot.chat.debug.promptOverrideFile` are configured, this setting takes precedence.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced","experimental"]},"github.copilot.chat.debug.promptOverrideFile":{"type":["string","null"],"default":null,"markdownDescription":"Path to a YAML file that overrides the system prompt and/or tool descriptions sent to the model.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced","experimental"]},"github.copilot.chat.edits.gemini3MultiReplaceString":{"type":"boolean","default":false,"markdownDescription":"Enable the modern `multi_replace_string_in_file` edit tool when generating edits with Gemini 3 models.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.edits.batchReplaceStringDescriptions":{"type":"boolean","default":false,"markdownDescription":"Update tool descriptions to promote `multi_replace_string_in_file` as the primary multi-edit tool.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.expanded":{"type":"boolean","default":false,"markdownDescription":"Use the expanded format for project labels in prompts.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.chat":{"type":"boolean","default":false,"markdownDescription":"Add project labels in chat requests.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.inline":{"type":"boolean","default":false,"markdownDescription":"Add project labels in inline edit requests.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.maxLocalIndexSize":{"type":"number","default":100000,"markdownDescription":"Maximum size of the local workspace index.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.enableCodeSearch":{"type":"boolean","default":true,"markdownDescription":"Enable code search in workspace context.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.preferredEmbeddingsModel":{"type":"string","default":"","markdownDescription":"Preferred embeddings model for semantic search.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.feedback.onChange":{"type":"boolean","default":false,"markdownDescription":"Enable feedback collection on configuration changes.","tags":["advanced","experimental"]},"github.copilot.chat.review.intent":{"type":"boolean","default":false,"markdownDescription":"Enable intent detection for code review.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.summaryExperimentEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable the notebook summary experiment.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.variableFilteringEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable filtering variables by cell document symbols.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.alternativeFormat":{"type":"string","default":"xml","enum":["xml","markdown"],"markdownDescription":"Alternative document format for notebooks.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.notebook.alternativeNESFormat.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable alternative format for Next Edit Suggestions in notebooks.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.debugTerminalCommandPatterns":{"type":"array","default":[],"items":{"type":"string"},"markdownDescription":"A list of commands for which the \"Debug Command\" quick fix action should be shown in the debug terminal.","tags":["advanced","experimental"]},"github.copilot.chat.localWorkspaceRecording.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable local workspace recording for analysis.","tags":["advanced","experimental"]},"github.copilot.chat.editRecording.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable edit recording for analysis.","tags":["advanced","experimental"]},"github.copilot.chat.inlineChat.reasoningEffort":{"type":"string","default":"low","enum":["none","minimal","low","medium","high"],"markdownDescription":"Controls the reasoning effort level for inline chat requests. Lower values result in faster responses with fewer reasoning tokens. Supported values depend on the model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineChat.enableThinking":{"type":"boolean","default":false,"markdownDescription":"Controls whether thinking/reasoning is enabled for inline chat requests. When disabled, reasoning summaries are suppressed for faster responses.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.debug.requestLogger.maxEntries":{"type":"number","default":100,"markdownDescription":"Maximum number of entries to keep in the request logger for debugging purposes.","tags":["advanced","experimental"]},"github.copilot.chat.inlineEdits.diagnosticsContextProvider.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable diagnostics context provider for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.chatSessionContextProvider.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable chat session context provider for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.codesearch.agent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable code search capabilities in agent mode.","tags":["advanced","experimental"]},"github.copilot.chat.agent.temperature":{"type":["number","null"],"markdownDescription":"Temperature setting for agent mode requests.","tags":["advanced","experimental"]},"github.copilot.chat.agent.omitFileAttachmentContents":{"type":"boolean","default":false,"markdownDescription":"Omit summarized file contents from file attachments in agent mode, to encourage the agent to properly read and explore.","tags":["advanced","experimental"]},"github.copilot.chat.agent.backgroundTodoAgent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable background todo agent that automatically maintains a todo list during agent sessions.\n\n**Note**: This is an advanced experimental setting.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.longToolCallCachePreservation.enabled":{"type":"boolean","default":false,"markdownDescription":"When enabled, periodic keep-alive probes are sent during long-running tool calls to keep the server-side prompt cache warm.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.longToolCallCachePreservation.maxProbes":{"type":"number","default":1,"markdownDescription":"Maximum number of keep-alive probes to send during long-running tool calls before giving up.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.largeToolResultsToDisk.enabled":{"type":"boolean","default":true,"markdownDescription":"When enabled, large tool results are written to disk instead of being included directly in the context, helping manage context window usage.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.largeToolResultsToDisk.thresholdBytes":{"type":"number","default":8192,"markdownDescription":"The size threshold in bytes above which tool results are written to disk. Only applies when largeToolResultsToDisk.enabled is true.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.instantApply.shortContextModelName":{"type":"string","default":"gpt-4o-instant-apply-full-ft-v66-short","markdownDescription":"Model name for short context instant apply.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.instantApply.shortContextLimit":{"type":"number","default":8000,"markdownDescription":"Token limit for short context instant apply.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.enableUserPreferences":{"type":"boolean","default":false,"markdownDescription":"Enable remembering user preferences in agent mode.","tags":["advanced","experimental"]},"github.copilot.chat.skillTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the skill tool in Copilot Chat. When enabled, skills are invoked via a dedicated skill tool instead of readFile.","tags":["advanced","experimental"]},"github.copilot.chat.getChangedFilesTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the Get Changed Files tool in Copilot Chat. When enabled, the agent can retrieve git diffs of current changes via a dedicated tool.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the Execution Subagent tool in Copilot Chat. The Execution Subagent is designed to run terminal commands to accomplish an execution-based task. It is powered by Google's Gemini-3-Flash model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.model":{"type":"string","default":"gemini-3-flash","markdownDescription":"The model to use for the Execution Subagent tool in Copilot Chat. When useAgenticProxy is enabled, defaults to 'exec-subagent-router-a'. Otherwise defaults to gemini-3-flash.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.useAgenticProxy":{"type":"boolean","default":false,"markdownDescription":"Use the agentic proxy endpoint for the execution subagent.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.toolCallLimit":{"type":"number","default":10,"markdownDescription":"Maximum number of tool calls the Execution Subagent can make during execution.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.summarizeAgentConversationHistoryThreshold":{"type":["number","null"],"markdownDescription":"Threshold at which agent conversation history is compacted. Specify either a ratio of the model's context window (a value greater than `0` and at most `1`, e.g. `0.8` to compact at 80%) or an absolute token count (a value of `100` or greater, e.g. `60000`). Leave unset to use the model's full context window.","tags":["advanced","experimental"]},"github.copilot.chat.agentHistorySummarizationMode":{"type":["string","null"],"markdownDescription":"Mode for agent history summarization.","tags":["advanced","experimental"]},"github.copilot.chat.useResponsesApiTruncation":{"type":"boolean","default":false,"markdownDescription":"Use Responses API for truncation.","tags":["advanced","experimental"]},"github.copilot.chat.omitBaseAgentInstructions":{"type":"boolean","default":false,"markdownDescription":"Omit base agent instructions from prompts.","tags":["advanced","experimental"]},"github.copilot.chat.promptFileContextProvider.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable prompt file context provider.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.tools.defaultToolsGrouped":{"type":"boolean","default":false,"markdownDescription":"Group default tools in prompts.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.gpt5AlternativePatch":{"type":"boolean","default":false,"markdownDescription":"Enable GPT-5 alternative patch format.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.triggerOnEditorChangeAfterSeconds":{"type":["number","null"],"default":10,"markdownDescription":"Trigger inline edits after editor has been idle for this many seconds.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.nextCursorPrediction.displayLine":{"type":"boolean","default":true,"markdownDescription":"Display predicted cursor line for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.nextCursorPrediction.currentFileMaxTokens":{"type":"number","default":3000,"markdownDescription":"Maximum tokens for current file in next cursor prediction.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.renameSymbolSuggestions":{"type":"boolean","default":true,"markdownDescription":"Enable rename symbol suggestions in inline edits.","tags":["advanced","experimental","onExp"]},"github.copilot.nextEditSuggestions.preferredModel":{"type":"string","default":"none","markdownDescription":"Preferred model for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.nextEditSuggestions.eagerness":{"type":"string","default":"auto","enum":["auto","low","medium","high"],"enumItemLabels":["Auto","Low","Medium","High"],"enumDescriptions":["Automatically determine the eagerness level.","Show fewer suggestions with longer delays.","Balanced suggestion frequency and delay.","Show more suggestions with minimal delay."],"markdownDescription":"Controls how eagerly next edit suggestions are shown. Higher values show more suggestions with less delay.","tags":["advanced","experimental"]},"github.copilot.chat.cli.mcp.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable Model Context Protocol (MCP) server for Copilot CLI.","tags":["advanced","experimental"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.sandbox.enabled":{"type":"string","enum":["off","on","allowNetwork"],"enumDescriptions":["Disable sandboxing for Copilot CLI tools.","Enable sandboxing for Copilot CLI tools.","Enable sandboxing for Copilot CLI tools and allow all network domains."],"default":"off","markdownDescription":"Run Copilot CLI tools (such as the terminal) inside a sandbox to limit what they can access on your system. The sandbox only applies to requests that run with default permissions — it is not used when bypassing approvals — and is not supported on Windows yet.","tags":["advanced","experimental"]},"github.copilot.chat.cli.branchSupport.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable branch support for Copilot CLI.","tags":["advanced"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.planExitMode.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable Plan Mode exit handling in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.autoModel.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Auto model option in Copilot CLI, which automatically selects the best model for each request. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.autoMode.tiers.enabled":{"type":"boolean","default":false,"markdownDescription":"Choose a routing tier for the Auto model, biasing model selection toward cost, capability, or speed. When disabled, the service picks the routing profile.","tags":["advanced","onExp"]},"github.copilot.chat.agent.modelDetails.enabled":{"type":"boolean","default":true,"markdownDescription":"Show model details (model name and request multiplier) on Copilot CLI agent chat responses. Requires VS Code reload to update already loaded sessions.","tags":["advanced"]},"github.copilot.chat.cli.planCommand.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the /plan command in Copilot CLI to create implementation plans before coding.","tags":["advanced"]},"github.copilot.chat.cli.lazyLoadSessionItem.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable lazy loading of session items in Copilot CLI. Requires VS Code reload.","tags":["advanced"],"agentsWindow":{"default":false}},"github.copilot.chat.cli.aiGenerateBranchNames.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable AI-generated branch names in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.forkSessions.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable forking sessions in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.isolationOption.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the isolation mode option for Copilot CLI. When enabled, users can choose between Worktree and Workspace modes.","tags":["advanced"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.autoCommit.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable automatic commit for Copilot CLI. When enabled, changes made by Copilot CLI will be automatically committed to the repository at the end of each turn.","tags":["advanced","experimental"],"agentsWindow":{"default":false}},"github.copilot.chat.cli.sessionController.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the new session controller API for Copilot CLI. Requires VS Code reload.","tags":["advanced"],"agentsWindow":{"default":false,"readOnly":true}},"github.copilot.chat.cli.thinkingEffort.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable thinking effort for Language Models in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.sessionControllerForSessionsApp.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the new session controller API for Sessions App. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.cli.terminalLinks.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable advanced clickable file links in Copilot CLI terminals. Resolves relative paths against session state directories. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.cli.remote.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the /remote command for Copilot CLI sessions, allowing you to view and steer from GitHub.com and the GitHub mobile app.","tags":["advanced"],"agentsWindow":{"default":false}},"github.copilot.chat.searchSubagent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the search subagent tool for iterative code exploration in the workspace.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.useAgenticProxy":{"type":"boolean","default":false,"markdownDescription":"Use the agentic proxy for the search subagent tool.","tags":["advanced"]},"github.copilot.chat.searchSubagent.model":{"type":"string","default":"","markdownDescription":"Model to use for the search subagent. When useAgenticProxy is enabled, defaults to 'vscode-agentic-search-router-a'. Otherwise defaults to the main agent model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.toolCallLimit":{"type":"number","default":4,"markdownDescription":"Maximum number of tool calls the search subagent can make during exploration.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.thoroughnessEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable the thoroughness parameter on the search subagent tool. When enabled, the caller can pass 'normal' or 'deep' to adjust the number of allowed tool-call turns (1× or 2× the base toolCallLimit respectively).","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.enabled":{"type":"boolean","default":false,"markdownDescription":"Deprecated: use `github.copilot.chat.agentDebugLog.fileLogging.enabled` instead.","deprecationMessage":"This setting has been merged into `github.copilot.chat.agentDebugLog.fileLogging.enabled`. Please use this setting instead.","tags":["advanced","experimental"]},"github.copilot.chat.agentDebugLog.fileLogging.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable agent debug logging: write chat debug events (tool calls, LLM requests, token usage, errors) to JSONL files for the debug panel and troubleshoot skill. Requires window reload to take effect.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.fileLogging.flushIntervalMs":{"type":"number","default":4000,"minimum":2000,"markdownDescription":"How often (in milliseconds) buffered debug log entries are flushed to disk. Lower values provide more up-to-date logs at the cost of more frequent disk writes.","tags":["advanced","experimental"]},"github.copilot.chat.agentDebugLog.fileLogging.maxRetainedSessionLogs":{"type":"number","default":50,"minimum":1,"markdownDescription":"Maximum number of chat debug session log directories to retain on disk. Each chat session produces one directory. Older session logs are automatically deleted when this limit is exceeded.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.fileLogging.maxSessionLogSizeMB":{"type":"number","default":100,"minimum":1,"markdownDescription":"Maximum size in megabytes for a single chat debug session log file. When the log exceeds this size, older entries are truncated to retain the most recent data. Defaults to 100 MB.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.otel.enabled":{"type":"boolean","default":false,"scope":"application","policyReference":{"name":"CopilotOtelEnabled"},"markdownDescription":"Enable OpenTelemetry trace/metric/log emission for Copilot Chat operations. Precedence: enterprise policy > env var `COPILOT_OTEL_ENABLED` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.exporterType":{"type":"string","enum":["otlp-grpc","otlp-http","console","file"],"default":"otlp-http","scope":"application","policyReference":{"name":"CopilotOtelProtocol"},"markdownDescription":"OTel exporter type for Copilot Chat telemetry. Configurable in user settings or managed by enterprise policy (policy takes precedence). Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.protocol":{"type":"string","enum":["","http/json","http/protobuf","grpc"],"default":"","scope":"application","policyReference":{"name":"CopilotOtelOtlpProtocol"},"markdownDescription":"OTLP wire protocol for Copilot Chat OTel data, mirroring `OTEL_EXPORTER_OTLP_PROTOCOL`. `http/protobuf` selects the protobuf-over-HTTP exporter; the default (empty) uses `http/json`. Precedence: enterprise policy > env var > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.otlpEndpoint":{"type":"string","default":"http://localhost:4318","scope":"application","policyReference":{"name":"CopilotOtelEndpoint"},"markdownDescription":"OTLP collector endpoint URL for Copilot Chat OTel data. Precedence: enterprise policy > env var `OTEL_EXPORTER_OTLP_ENDPOINT` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.captureContent":{"type":"boolean","default":false,"scope":"application","policyReference":{"name":"CopilotOtelCaptureContent"},"markdownDescription":"Capture input/output messages, system instructions, and tool definitions in OTel telemetry. **Contains potentially sensitive data.** Precedence: enterprise policy > env var `COPILOT_OTEL_CAPTURE_CONTENT` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.serviceName":{"type":"string","default":"","scope":"application","policyReference":{"name":"CopilotOtelServiceName"},"markdownDescription":"OTel `service.name` resource attribute for Copilot Chat OTel data. Configurable in user settings only. Env var `OTEL_SERVICE_NAME` takes precedence over the setting; enterprise policy takes precedence over both. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.resourceAttributes":{"type":"object","additionalProperties":{"type":"string"},"default":{},"scope":"application","policyReference":{"name":"CopilotOtelResourceAttributes"},"markdownDescription":"Additional OTel resource attributes for Copilot Chat OTel data, as a `{ \"key\": \"value\" }` map. Configurable in user settings only. Merged per-key with `OTEL_RESOURCE_ATTRIBUTES` env (env wins over the setting); enterprise policy wins over both. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.headers":{"type":"object","additionalProperties":{"type":"string"},"default":{},"scope":"application","policyReference":{"name":"CopilotOtelHeaders"},"markdownDescription":"Extra OTLP exporter headers (e.g. auth tokens) for Copilot Chat OTel data, as a `{ \"key\": \"value\" }` map. Applied directly to the OTLP exporter, not via environment variables. Configurable in user settings only. Merged per-key with `OTEL_EXPORTER_OTLP_HEADERS` env (env wins over the setting); enterprise policy wins over both. **Contains potentially sensitive credentials.** Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.maxAttributeSizeChars":{"type":"integer","default":0,"minimum":0,"scope":"application","markdownDescription":"Maximum size **in characters** for free-form OTel content attributes (prompts, responses, tool arguments/results, hook input/output). `0` (the default) disables truncation so backends without per-attribute size limits receive full JSON payloads. Set to a positive value when your OTel backend caps attribute size — consult your backend's documentation for its per-attribute limit. Truncated values are suffixed with `...[truncated, original N chars]`. Configurable in user settings only. Env var `COPILOT_OTEL_MAX_ATTRIBUTE_SIZE_CHARS` takes precedence. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.outfile":{"type":"string","default":"","scope":"application","policyReference":{"name":"CopilotOtelOutfile"},"markdownDescription":"File path for file-based OTel exporter output (JSON-lines). When set, overrides exporter type to `file`. Configurable in user settings or managed by enterprise policy (policy takes precedence). Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.dbSpanExporter.enabled":{"type":"boolean","default":false,"scope":"application","markdownDescription":"Enable SQLite DB span exporter. Persists OTel spans to a local SQLite database. Automatically enables OTel when set to true. Configurable in user settings only. Requires window reload.","tags":["advanced"]},"github.copilot.chat.workspace.codeSearchExternalIngest.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable external ingest for semantic codebase search in this workspace. This setting can be used to enable/disable external ingest, but your Copilot Enterprise or Copilot subscription policies ultimately control availability. [Learn more about external ingest policies](https://aka.ms/vscode-external-ingest-policy).","tags":["advanced","onExp"]}}}],"submenus":[{"id":"copilot/reviewComment/additionalActions/applyAndNext","label":"Apply and Go to Next"},{"id":"copilot/reviewComment/additionalActions/discardAndNext","label":"Discard and Go to Next"},{"id":"copilot/reviewComment/additionalActions/discard","label":"Discard"},{"id":"github.copilot.chat.debug.filter","label":"Filter","icon":"$(filter)"},{"id":"github.copilot.chat.debug.exportAllPromptLogsAsJson","label":"Export All Logs as JSON","icon":"$(file-export)"}],"menus":{"editor/title":[{"command":"github.copilot.debug.generateInlineEditTests","when":"resourceScheme == 'ccreq'"},{"command":"github.copilot.chat.notebook.enableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && !github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && !config.notebook.globalToolbar","group":"navigation@10"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && !config.notebook.globalToolbar","group":"navigation@10"},{"command":"github.copilot.chat.copilotCLI.acceptDiff","group":"navigation@1","when":"github.copilot.chat.copilotCLI.hasActiveDiff"},{"command":"github.copilot.chat.copilotCLI.rejectDiff","group":"navigation@2","when":"github.copilot.chat.copilotCLI.hasActiveDiff"}],"editor/title/context":[{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"}],"explorer/context":[{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !explorerResourceIsFolder"}],"editor/context":[{"command":"github.copilot.chat.fix","when":"!github.copilot.interactiveSession.disabled && chatSetupCompleted && !editorReadonly && editorSelectionHasDiagnostics","group":"1_chat@4"},{"command":"github.copilot.chat.explain","when":"!github.copilot.interactiveSession.disabled && chatSetupCompleted","group":"1_chat@5"},{"command":"github.copilot.chat.review","when":"config.github.copilot.chat.reviewSelection.enabled && !github.copilot.interactiveSession.disabled && chatSetupCompleted && resourceScheme != 'vscode-chat-code-block'","group":"1_chat@6"},{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"},{"command":"github.copilot.chat.copilotCLI.addSelection","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && editorHasSelection && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"}],"chat/editor/inlineGutter":[{"command":"github.copilot.chat.explain","when":"!github.copilot.interactiveSession.disabled && editor.hasSelection && !inlineChatFileBelongsToChat","group":"2_chat@2"},{"command":"github.copilot.chat.review","when":"!github.copilot.interactiveSession.disabled && editor.hasSelection && config.github.copilot.chat.reviewSelection.enabled && !inlineChatFileBelongsToChat","group":"2_chat@3"}],"chat/input/editing/sessionToolbar":[{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","when":"chatSessionType == copilotcli && workbenchState != empty && !isSessionsWindow","group":"navigation@0"},{"command":"github.copilot.chat.checkoutPullRequestReroute","when":"chatSessionType == copilot-cloud-agent && chatSessionPullRequest != 'none' && !github.vscode-pull-request-github.activated && gitOpenRepositoryCount != 0","group":"navigation@0"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","when":"chatSessionType == copilot-cloud-agent && github.copilot.chat.cloudTaskCanCreatePullRequest && !isSessionsWindow","group":"navigation@0"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","when":"chatSessionType == copilot-cloud-agent && github.copilot.chat.cloudTaskCanOpenPullRequest && !isSessionsWindow","group":"navigation@0"}],"agents/changes/actions/primary":[{"command":"github.copilot.sessions.initializeRepository","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == workspace && !sessions.hasGitRepository && !sessions.isAgentHostSession","group":"0_init@1"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && !sessions.isMergeBaseBranchProtected && !sessions.hasPullRequest && (sessions.hasUncommittedChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"1_merge@1"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && !sessions.isMergeBaseBranchProtected && !sessions.hasPullRequest && (sessions.hasUncommittedChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"1_merge@2"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && sessions.hasGitHubRemote && !sessions.hasPullRequest && sessions.hasBranchChanges && !sessions.isAgentHostSession","group":"2_pull_request@1"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && sessions.hasGitHubRemote && !sessions.hasPullRequest && sessions.hasBranchChanges && !sessions.isAgentHostSession","group":"2_pull_request@2"},{"command":"github.copilot.sessions.commit","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUncommittedChanges && !sessions.isAgentHostSession","group":"3_commit@1"},{"command":"github.copilot.sessions.commitAndSync","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUncommittedChanges && !sessions.isAgentHostSession","group":"3_commit@2"},{"command":"github.copilot.sessions.sync","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUpstream && !sessions.hasUncommittedChanges && (sessions.hasIncomingChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"4_sync@1"}],"agents/change/inline":[{"command":"github.copilot.sessions.discardChanges","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && !sessionIsArchived && !sessions.isAgentHostSession","group":"navigation@2"}],"chat/contextUsage/actions":[{"command":"github.copilot.chat.compact","when":"!chatIsAgentHostSession"}],"chat/input/status":[{"command":"github.copilot.chat.otel.statusActive","when":"github.copilot.otel.enabledExplicitly && isSessionsWindow","group":"otel@1"}],"chat/newSession":[{"command":"github.copilot.cli.newSession","group":"4_recommendations@0"}],"testing/item/result":[{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"testResultState == failed && !testResultOutdated","group":"inline@2"}],"testing/item/context":[{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"testResultState == failed && !testResultOutdated","group":"inline@2"}],"commandPalette":[{"command":"github.copilot.cli.openInCopilotCLI","when":"false"},{"command":"github.copilot.debug.extensionState","when":"false"},{"command":"github.copilot.cli.sessions.commitToWorktree","when":"false"},{"command":"github.copilot.cli.sessions.commitToRepository","when":"false"},{"command":"github.copilot.chat.triggerPermissiveSignIn","when":"false"},{"command":"github.copilot.chat.otel.statusActive","when":"false"},{"command":"github.copilot.interactiveSession.feedback","when":"github.copilot-chat.activated && !github.copilot.interactiveSession.disabled"},{"command":"github.copilot.debug.workbenchState","when":"true"},{"command":"github.copilot.chat.rerunWithCopilotDebug","when":"false"},{"command":"github.copilot.chat.startCopilotDebugCommand","when":"false"},{"command":"github.copilot.git.generateCommitMessage","when":"false"},{"command":"github.copilot.git.resolveMergeConflicts","when":"false"},{"command":"github.copilot.chat.explain","when":"false"},{"command":"github.copilot.chat.review","when":"!github.copilot.interactiveSession.disabled"},{"command":"github.copilot.chat.review.apply","when":"false"},{"command":"github.copilot.chat.review.applyAndNext","when":"false"},{"command":"github.copilot.chat.review.discard","when":"false"},{"command":"github.copilot.chat.review.discardAndNext","when":"false"},{"command":"github.copilot.chat.review.discardAll","when":"false"},{"command":"github.copilot.chat.review.stagedChanges","when":"false"},{"command":"github.copilot.chat.review.unstagedChanges","when":"false"},{"command":"github.copilot.chat.review.changes","when":"false"},{"command":"github.copilot.chat.review.stagedFileChange","when":"false"},{"command":"github.copilot.chat.review.unstagedFileChange","when":"false"},{"command":"github.copilot.chat.review.previous","when":"false"},{"command":"github.copilot.chat.review.next","when":"false"},{"command":"github.copilot.chat.review.continueInInlineChat","when":"false"},{"command":"github.copilot.chat.review.continueInChat","when":"false"},{"command":"github.copilot.chat.review.markHelpful","when":"false"},{"command":"github.copilot.chat.review.markUnhelpful","when":"false"},{"command":"github.copilot.devcontainer.generateDevContainerConfig","when":"false"},{"command":"github.copilot.tests.fixTestFailure","when":"false"},{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"false"},{"command":"github.copilot.search.markHelpful","when":"false"},{"command":"github.copilot.search.markUnhelpful","when":"false"},{"command":"github.copilot.search.feedback","when":"false"},{"command":"github.copilot.chat.debug.showElements","when":"false"},{"command":"github.copilot.chat.debug.hideElements","when":"false"},{"command":"github.copilot.chat.debug.showTools","when":"false"},{"command":"github.copilot.chat.debug.hideTools","when":"false"},{"command":"github.copilot.chat.debug.showNesRequests","when":"false"},{"command":"github.copilot.chat.debug.hideNesRequests","when":"false"},{"command":"github.copilot.chat.debug.showGhostRequests","when":"false"},{"command":"github.copilot.chat.debug.hideGhostRequests","when":"false"},{"command":"github.copilot.chat.debug.exportLogItem","when":"false"},{"command":"github.copilot.chat.debug.exportPromptArchive","when":"false"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","when":"false"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","when":"false"},{"command":"github.copilot.chat.mcp.setup.check","when":"false"},{"command":"github.copilot.chat.mcp.setup.validatePackage","when":"false"},{"command":"github.copilot.chat.mcp.setup.flow","when":"false"},{"command":"github.copilot.chat.debug.showRawRequestBody","when":"false"},{"command":"github.copilot.debug.showOutputChannel","when":"false"},{"command":"github.copilot.cli.sessions.delete","when":"false"},{"command":"github.copilot.cli.sessions.resumeInTerminal","when":"false"},{"command":"github.copilot.cli.sessions.rename","when":"false"},{"command":"github.copilot.cli.sessions.setTitle","when":"false"},{"command":"github.copilot.cli.sessions.openRepository","when":"false"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","when":"false"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","when":"false"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","when":"false"},{"command":"github.copilot.cloud.sessions.openInBrowser","when":"false"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","when":"false"},{"command":"github.copilot.cloud.sessions.installPRExtension","when":"false"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"false"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","when":"false"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","when":"false"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","when":"false"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","when":"false"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","when":"false"},{"command":"github.copilot.chat.checkoutPullRequestReroute","when":"false"},{"command":"github.copilot.chat.cloudSessions.openRepository","when":"false"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","when":"false"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","when":"false"},{"command":"github.copilot.nes.captureExpected.start","when":"github.copilot.inlineEditsEnabled"},{"command":"github.copilot.nes.captureExpected.submit","when":"github.copilot.inlineEditsEnabled"},{"command":"github.copilot.sessions.commit","when":"false"},{"command":"github.copilot.sessions.commitAndSync","when":"false"},{"command":"github.copilot.sessions.sync","when":"false"},{"command":"github.copilot.sessions.discardChanges","when":"false"},{"command":"github.copilot.sessions.refreshChanges","when":"false"},{"command":"github.copilot.sessions.initializeRepository","when":"false"}],"view/title":[{"submenu":"github.copilot.chat.debug.filter","when":"view == copilot-chat","group":"navigation"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","when":"view == copilot-chat","group":"export@1"},{"command":"workbench.action.chat.openAgentDebugPanel","when":"view == copilot-chat","group":"3_show@0"},{"command":"github.copilot.debug.showOutputChannel","when":"view == copilot-chat","group":"3_show@1"},{"command":"github.copilot.debug.showChatLogView","when":"view == workbench.panel.chat.view.copilot","group":"3_show"}],"view/item/context":[{"command":"github.copilot.chat.debug.showRawRequestBody","when":"view == copilot-chat && viewItem == request","group":"export@0"},{"command":"github.copilot.chat.debug.exportLogItem","when":"view == copilot-chat && (viewItem == toolcall || viewItem == request)","group":"export@1"},{"command":"github.copilot.chat.debug.exportPromptArchive","when":"view == copilot-chat && viewItem == chatprompt","group":"export@2"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","when":"view == copilot-chat && viewItem == chatprompt","group":"export@3"}],"searchPanel/aiResults/commands":[{"command":"github.copilot.search.markHelpful","group":"inline@0","when":"aiResultsTitle && aiResultsRequested"},{"command":"github.copilot.search.markUnhelpful","group":"inline@1","when":"aiResultsTitle && aiResultsRequested"},{"command":"github.copilot.search.feedback","group":"inline@2","when":"aiResultsTitle && aiResultsRequested && github.copilot.debugReportFeedback"}],"comments/comment/title":[{"command":"github.copilot.chat.review.markHelpful","group":"inline@0","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.markUnhelpful","group":"inline@1","when":"commentController == github-copilot-review"}],"commentsView/commentThread/context":[{"command":"github.copilot.chat.review.apply","group":"context@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discard","group":"context@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discardAll","group":"context@3","when":"commentController == github-copilot-review"}],"comments/commentThread/additionalActions":[{"submenu":"copilot/reviewComment/additionalActions/applyAndNext","group":"inline@1","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments > 1"},{"command":"github.copilot.chat.review.apply","group":"inline@1","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments == 1"},{"submenu":"copilot/reviewComment/additionalActions/discardAndNext","group":"inline@2","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments > 1"},{"submenu":"copilot/reviewComment/additionalActions/discard","group":"inline@2","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments == 1"}],"copilot/reviewComment/additionalActions/applyAndNext":[{"command":"github.copilot.chat.review.applyAndNext","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.apply","group":"inline@2","when":"commentController == github-copilot-review"}],"copilot/reviewComment/additionalActions/discardAndNext":[{"command":"github.copilot.chat.review.discardAndNext","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discard","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInInlineChat","group":"inline@3","when":"commentController == github-copilot-review"}],"copilot/reviewComment/additionalActions/discard":[{"command":"github.copilot.chat.review.discard","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInInlineChat","group":"inline@3","when":"commentController == github-copilot-review"}],"comments/commentThread/title":[{"command":"github.copilot.chat.review.previous","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.next","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInChat","group":"inline@3","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discardAll","group":"inline@4","when":"commentController == github-copilot-review"}],"scm/title":[{"command":"github.copilot.chat.review.changes","group":"navigation","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmProviderRootUri in github.copilot.chat.reviewDiff.enabledRootUris"}],"scm/sourceControl":[{"command":"github.copilot.cli.openInCopilotCLI","group":"3_worktree@1","when":"scmProvider == git"}],"scm/resourceGroup/context":[{"command":"github.copilot.chat.review.stagedChanges","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == index","group":"inline@-3"},{"command":"github.copilot.chat.review.unstagedChanges","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == workingTree","group":"inline@-3"}],"scm/resourceState/context":[{"command":"github.copilot.git.resolveMergeConflicts","when":"scmProvider == git && scmResourceGroup == merge && git.activeResourceHasMergeConflicts","group":"z_chat@1"},{"command":"github.copilot.chat.review.stagedFileChange","group":"3_copilot","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == index"},{"command":"github.copilot.chat.review.unstagedFileChange","group":"3_copilot","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == workingTree"}],"scm/inputBox":[{"command":"github.copilot.git.generateCommitMessage","when":"scmProvider == git && chatSetupCompleted"}],"testing/message/context":[{"command":"github.copilot.tests.fixTestFailure","when":"testing.testItemHasUri","group":"inline@1"}],"issue/reporter":[{"command":"github.copilot.report"}],"github.copilot.chat.debug.filter":[{"command":"github.copilot.chat.debug.showElements","when":"github.copilot.chat.debug.elementsHidden","group":"commands@0"},{"command":"github.copilot.chat.debug.hideElements","when":"!github.copilot.chat.debug.elementsHidden","group":"commands@0"},{"command":"github.copilot.chat.debug.showTools","when":"github.copilot.chat.debug.toolsHidden","group":"commands@1"},{"command":"github.copilot.chat.debug.hideTools","when":"!github.copilot.chat.debug.toolsHidden","group":"commands@1"},{"command":"github.copilot.chat.debug.showNesRequests","when":"github.copilot.chat.debug.nesRequestsHidden","group":"commands@2"},{"command":"github.copilot.chat.debug.hideNesRequests","when":"!github.copilot.chat.debug.nesRequestsHidden","group":"commands@2"},{"command":"github.copilot.chat.debug.showGhostRequests","when":"github.copilot.chat.debug.ghostRequestsHidden","group":"commands@3"},{"command":"github.copilot.chat.debug.hideGhostRequests","when":"!github.copilot.chat.debug.ghostRequestsHidden","group":"commands@3"}],"notebook/toolbar":[{"command":"github.copilot.chat.notebook.enableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && !github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && config.notebook.globalToolbar","group":"navigation/execute@15"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && config.notebook.globalToolbar","group":"navigation/execute@15"}],"editor/content":[{"command":"github.copilot.git.resolveMergeConflicts","group":"z_chat@1","when":"config.git.enabled && !git.missing && !isInDiffEditor && !isMergeEditor && resource in git.mergeChanges && git.activeResourceHasMergeConflicts && chatSetupCompleted"}],"multiDiffEditor/content":[{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"resourceScheme == copilotcli-worktree-changes && workbenchState != empty && !isSessionsWindow"}],"chat/chatSessions":[{"command":"github.copilot.cli.sessions.delete","when":"chatSessionType == copilotcli","group":"1_edit@10"},{"command":"github.copilot.cli.sessions.rename","when":"chatSessionType == copilotcli","group":"1_edit@4"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","when":"chatSessionType == copilotcli && !isSessionsWindow","group":"2_open@1"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","when":"chatSessionType == copilotcli","group":"2_open@2"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","when":"chatSessionType == copilotcli","group":"2_open@3"},{"command":"github.copilot.cli.sessions.resumeInTerminal","when":"chatSessionType == copilotcli","group":"2_open@4"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"chatSessionType == copilotcli && workbenchState != empty && !isSessionsWindow","group":"3_apply@0"},{"command":"github.copilot.cloud.sessions.openInBrowser","when":"chatSessionType == copilot-cloud-agent","group":"navigation@10"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","when":"chatSessionType == copilot-cloud-agent","group":"1_edit@10"}],"chatSessions/item/context":[{"command":"github.copilot.cli.sessions.rename","when":"sessionType == copilotcli && sessionProviderId == default-copilot","group":"1_edit@4"}],"chat/multiDiff/context":[{"command":"github.copilot.cloud.sessions.installPRExtension","when":"chatSessionType == copilot-cloud-agent && !github.copilot.prExtensionInstalled","group":"inline@1"}],"chat/input/editing/sessionTitleToolbar":[{"command":"github.copilot.sessions.refreshChanges","when":"sessionType == copilotcli && isSessionsWindow && !sessions.isAgentHostSession","group":"9_refresh@1"}]},"icons":{"copilot-logo":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0041"}},"copilot-warning":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0042"}},"copilot-notconnected":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0043"}}},"iconFonts":[{"id":"copilot-font","src":[{"path":"assets/copilot.woff","format":"woff"}]}],"terminalQuickFixes":[{"id":"copilot-chat.fixWithCopilot","commandLineMatcher":".+","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":".+","offset":0},"kind":"explain"},{"id":"copilot-chat.generateCommitMessage","commandLineMatcher":"git add .+","commandExitResult":"success","kind":"explain","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":".+","offset":0}},{"id":"copilot-chat.terminalToDebugging","commandLineMatcher":".+","kind":"explain","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":"","offset":0}},{"id":"copilot-chat.terminalToDebuggingSuccess","commandLineMatcher":".+","kind":"explain","commandExitResult":"success","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":"","offset":0}}],"languages":[{"id":"ignore","filenamePatterns":[".copilotignore"],"aliases":[]},{"id":"markdown","extensions":[".copilotmd"]}],"views":{"copilot-chat":[{"id":"copilot-chat","name":"Chat Debug","icon":"assets/debug-icon.svg","when":"github.copilot.chat.showLogView"}],"context-inspector":[{"id":"context-inspector","name":"Language Context Inspector","icon":"$(inspect)","when":"github.copilot.chat.showContextInspectorView"}]},"viewsContainers":{"activitybar":[{"id":"copilot-chat","title":"Chat Debug","icon":"assets/debug-icon.svg"},{"id":"context-inspector","title":"Language Context Inspector","icon":"$(inspect)"}]},"configurationDefaults":{"workbench.editorAssociations":{"*.copilotmd":"vscode.markdown.preview.editor"}},"keybindings":[{"command":"github.copilot.chat.copilotCLI.addFileReference","key":"ctrl+shift+.","mac":"cmd+shift+.","when":"github.copilot.chat.copilotCLI.hasSession && editorTextFocus"},{"command":"github.copilot.chat.rerunWithCopilotDebug","key":"ctrl+alt+.","mac":"cmd+alt+.","when":"github.copilot-chat.activated && terminalShellIntegrationEnabled && terminalFocus && !terminalAltBufferActive"},{"command":"github.copilot.nes.captureExpected.confirm","key":"ctrl+enter","mac":"cmd+enter","when":"copilotNesCaptureMode && editorTextFocus"},{"command":"github.copilot.nes.captureExpected.abort","key":"escape","when":"copilotNesCaptureMode && editorTextFocus"}],"walkthroughs":[{"id":"copilotWelcome","title":"GitHub Copilot","description":"Your AI pair programmer to write code faster and smarter","when":"!isWeb","steps":[{"id":"copilot.setup.signIn","title":"Sign in to use Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.\n\n[Use Copilot for Free](command:workbench.action.chat.triggerSetupForceSignIn)","when":"chatEntitlementSignedOut && !view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && !github.copilot.interactiveSession.individual.disabled && !github.copilot.interactiveSession.individual.expired && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signInNoAction","title":"Sign in to use Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.","when":"chatEntitlementSignedOut && view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && !github.copilot.interactiveSession.individual.disabled && !github.copilot.interactiveSession.individual.expired && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signUp","title":"Get started with Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.\n\n[Use Copilot for Free](command:workbench.action.chat.triggerSetupForceSignIn)","when":"chatPlanCanSignUp && !view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && (github.copilot.interactiveSession.individual.disabled || github.copilot.interactiveSession.individual.expired) && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signUpNoAction","title":"Get started with Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.","when":"chatPlanCanSignUp && view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && (github.copilot.interactiveSession.individual.disabled || github.copilot.interactiveSession.individual.expired) && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.panelChat","title":"Chat about your code","description":"Ask Copilot programming questions or get help with your code using **@workspace**.\n Type **@** to see all available chat participants that you can chat with directly, each with their own expertise.\n[Chat with Copilot](command:workbench.action.chat.open?%7B%22mode%22%3A%22ask%22%7D)","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.edits","title":"Make changes using natural language","description":"Use **Copilot Edits** to select files you want to work with and describe changes you want to make. Copilot applies them directly to your files.\n[Edit with Copilot](command:workbench.action.chat.open?%7B%22mode%22%3A%22edit%22%7D)","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-hclight.mp4"},"altText":"The video shows the user dragging and dropping files into the Copilot Edits input box located in the secondary sidebar. Copilot then updates the file according to the user’s request"}},{"id":"copilot.firstSuggest","title":"AI-suggested inline suggestions","description":"As you type in the editor, Copilot suggests code to help you complete what you started.","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-hclight.mp4"},"altText":"The video shows different Copilot inline suggestions, where Copilot suggests code to help the user complete their code"}},{"id":"copilot.inlineChatNotMac","title":"Use natural language in your files","description":"Sometimes, it's easier to describe the code you want to write directly within a file.\nPlace your cursor or make a selection and use **``Ctrl+I``** to open **Inline Chat**.","when":"!isMac && (!chatEntitlementSignedOut || chatIsEnabled )","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hclight.mp4"},"altText":"Inline Chat view in the editor. The video shows the user invoking the inline chat widget and asking Copilot to make a change in the file using natural language. Copilot then makes the requested change"}},{"id":"copilot.inlineChatMac","title":"Use natural language in your files","description":"Sometimes, it's easier to describe the code you want to write directly within a file.\nPlace your cursor or make a selection and use **``Cmd+I``** to open **Inline Chat**.","when":"isMac && (!chatEntitlementSignedOut || chatIsEnabled )","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hclight.mp4"},"altText":"The video shows the user invoking the inline chat widget and asking Copilot to make a change in the file using natural language. Copilot then makes the requested change"}},{"id":"copilot.sparkle","title":"Look out for smart actions","description":"Copilot enhances your coding experience with AI-powered smart actions throughout the VS Code interface.\nLook for $(sparkle) icons, such as in the [Source Control view](command:workbench.view.scm), where Copilot generates commit messages and PR descriptions based on code changes.\n\n[Discover Tips and Tricks](https://code.visualstudio.com/docs/copilot/copilot-vscode-features)","when":"!chatEntitlementSignedOut || chatIsEnabled","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-hclight.mp4"},"altText":"The video shows the sparkle icon in the source control input box being clicked, triggering GitHub Copilot to generate a commit message automatically"}}]}],"jsonValidation":[{"fileMatch":"settings.json","url":"ccsettings://root/schema.json"}],"typescriptServerPlugins":[{"name":"@vscode/copilot-typescript-server-plugin","enableForWorkspaceTypeScriptVersions":true}],"chatSessions":[{"type":"copilotcli","name":"cli","displayName":"Copilot CLI","icon":"$(copilot)","welcomeTitle":"Copilot CLI","welcomeMessage":"Run tasks in the background with the Copilot CLI","inputPlaceholder":"Run tasks in the background with the Copilot CLI, type `#` for adding context","order":1,"canDelegate":true,"description":"Delegate tasks to a background agent running locally on your machine. The agent iterates via chat and works asynchronously in a Git worktree to implement changes isolated from your main workspace using the GitHub Copilot CLI.","when":"config.github.copilot.chat.backgroundAgent.enabled","supportsAutoModel":true,"requiresCopilotSignIn":true,"capabilities":{"supportsFileAttachments":true,"supportsProblemAttachments":true,"supportsToolAttachments":false,"supportsImageAttachments":true,"supportsSymbolAttachments":true,"supportsSearchResultAttachments":true,"supportsSourceControlAttachments":true,"supportsPromptAttachments":true,"supportsHandOffs":true},"commands":[{"name":"delegate","description":"Delegate chat session to cloud agent and create associated PR","when":"config.github.copilot.chat.cloudAgent.enabled"},{"name":"compact","description":"Free up context by compacting the conversation history"},{"name":"plan","description":"Create an implementation plan before coding","when":"config.github.copilot.chat.cli.planCommand.enabled"},{"name":"fleet","description":"Enable fleet mode for parallel subagent execution","when":"false"},{"name":"remote","description":"Show remote control status, or use /remote on and /remote off","when":"config.github.copilot.chat.cli.remote.enabled"}],"customAgentTarget":"github-copilot","requiresCustomModels":true,"autoAttachReferences":true,"useRequestToPopulateBuiltInPickers":true},{"type":"copilot-cloud-agent","alternativeIds":["copilot-swe-agent"],"name":"cloud","displayName":"Cloud","icon":"$(cloud)","welcomeTitle":"Cloud Agent","welcomeMessage":"Delegate tasks to the cloud","inputPlaceholder":"Delegate tasks to the cloud, type `#` for adding context","order":2,"canDelegate":true,"description":"Delegate tasks to the GitHub Copilot coding agent. The agent iterates via chat and works asynchronously in the cloud to implement changes and pull requests as needed.","when":"config.github.copilot.chat.cloudAgent.enabled","supportsAutoModel":false,"requiresCopilotSignIn":true,"capabilities":{"supportsFileAttachments":true},"autoAttachReferences":true}],"chatAgents":[],"chatPromptFiles":[{"path":"./assets/prompts/plan.prompt.md","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-standup.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-tips.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-cost-tips.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-improve.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-reindex.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-search.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]}],"chatSkills":[{"path":"./assets/prompts/skills/project-setup-info-local/SKILL.md","when":"!config.github.copilot.chat.newWorkspace.useContext7","sessionTypes":["local"]},{"path":"./assets/prompts/skills/project-setup-info-context7/SKILL.md","when":"config.github.copilot.chat.newWorkspace.useContext7","sessionTypes":["local"]},{"path":"./assets/prompts/skills/install-vscode-extension/SKILL.md","when":"config.github.copilot.chat.installExtensionSkill.enabled && config.github.copilot.chat.newWorkspaceCreation.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/skills/get-search-view-results/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/troubleshoot/SKILL.md","sessionTypes":["local","copilotcli"]},{"path":"./assets/prompts/skills/agent-customization/SKILL.md","sessionTypes":["local","copilotcli"]},{"path":"./assets/prompts/skills/init/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-prompt/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-instructions/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-skill/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-agent/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-hook/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/chronicle/SKILL.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]}],"terminal":{"profiles":[{"icon":"copilot","id":"copilot-cli","title":"GitHub Copilot CLI","titleTemplate":"${sequence}"}]}},"prettier":{"useTabs":true,"tabWidth":4,"singleQuote":true},"scripts":{"postinstall":"tsx ./script/postinstall.ts","build":"node .esbuild.mts --sourcemaps","compile":"node .esbuild.mts --dev","watch":"npm-run-all -lp watch:esbuild watch:typecheck","watch:esbuild":"node .esbuild.mts --watch --dev","watch:typecheck":"tsc --noEmit --watch --preserveWatchOutput --project tsconfig.json","watch:typecheck-extension":"tsc --noEmit --watch --project tsconfig.json","watch:typecheck-extension-web":"tsc --noEmit --watch --project tsconfig.worker.json","watch:typecheck-simulation-workbench":"tsc --noEmit --watch --project test/simulation/workbench/tsconfig.json","typecheck":"tsc --noEmit --project tsconfig.json && tsc --noEmit --project test/simulation/workbench/tsconfig.json && tsc --noEmit --project tsconfig.worker.json && tsc --noEmit --project src/extension/completions-core/vscode-node/extension/src/copilotPanel/webView/tsconfig.json","lint":"npx eslint . --max-warnings=0","lint-staged":"npx eslint --max-warnings=0","tsfmt":"npx tsfmt -r --verify","test":"npm-run-all test:*","test:extension":"vscode-test","test:sanity":"vscode-test --sanity","test:unit":"vitest --run --pool=forks","vitest":"vitest","bench":"vitest bench","get_env":"tsx script/setup/getEnv.mts","get_token":"tsx script/setup/getToken.mts","prettier":"prettier --list-different --write --cache .","simulate":"node dist/simulationMain.js","simulate-require-cache":"node dist/simulationMain.js --require-cache","simulate-ci":"node dist/simulationMain.js --ci --require-cache","simulate-update-baseline":"node dist/simulationMain.js --update-baseline","simulate-gc":"node dist/simulationMain.js --require-cache --gc","setup":"npm run get_env && npm run get_token","setup:dotnet":"run-script-os","setup:dotnet:darwin:linux":"curl -O https://raw.githubusercontent.com/dotnet/install-scripts/main/src/dotnet-install.sh && chmod u+x dotnet-install.sh && ./dotnet-install.sh --channel 10.0 && rm dotnet-install.sh","setup:dotnet:win32":"powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"Invoke-WebRequest -Uri https://raw.githubusercontent.com/dotnet/install-scripts/main/src/dotnet-install.ps1 -OutFile dotnet-install.ps1; ./dotnet-install.ps1 -channel 10.0; Remove-Item dotnet-install.ps1\"","analyze-edits":"tsx script/analyzeEdits.ts","extract-chat-lib":"tsx script/build/extractChatLib.ts","create_venv":"tsx script/setup/createVenv.mts","package":"vsce package","web":"vscode-test-web --headless --extensionDevelopmentPath=. .","test:prompt":"mocha \"src/extension/completions-core/vscode-node/prompt/**/test/**/*.test.{ts,tsx}\"","test:completions-core":"tsx src/extension/completions-core/vscode-node/extension/test/runTest.ts"},"devDependencies":{"@azure/identity":"4.9.1","@azure/keyvault-secrets":"^4.10.0","@azure/msal-node":"^3.6.3","@c4312/scip":"^0.1.0","@fluentui/react-components":"^9.66.6","@fluentui/react-icons":"^2.0.305","@hediet/node-reload":"^0.8.0","@octokit/types":"^14.1.0","@stylistic/eslint-plugin":"^3.0.1","@types/eslint":"^9.0.0","@types/express":"^5.0.6","@types/google-protobuf":"^3.15.12","@types/js-yaml":"^4.0.9","@types/markdown-it":"^14.0.0","@types/minimist":"^1.2.5","@types/mocha":"^10.0.10","@types/node":"^22.16.3","@types/picomatch":"^4.0.0","@types/react":"17.0.44","@types/react-dom":"^18.2.17","@types/sinon":"^17.0.4","@types/source-map-support":"^0.5.10","@types/tar":"^6.1.13","@types/vinyl":"^2.0.12","@types/vscode-webview":"^1.57.5","@types/ws":"^8.5.3","@types/yargs":"^17.0.24","@typescript-eslint/eslint-plugin":"^8.35.0","@typescript-eslint/parser":"^8.32.0","@typescript-eslint/typescript-estree":"^8.26.1","@typescript/native":"npm:typescript@7.1.0-dev.20260818.1","@vitest/coverage-v8":"^4.1.8","@vitest/snapshot":"^1.5.0","@vscode/debugadapter":"^1.68.0","@vscode/debugprotocol":"^1.68.0","@vscode/dts":"^0.4.1","@vscode/lsif-language-service":"^0.1.0-pre.4","@vscode/test-cli":"^0.0.11","@vscode/test-electron":"^2.5.2","@vscode/test-web":"^0.0.81","@vscode/vsce":"3.6.0","copyfiles":"^2.4.1","csv-parse":"^6.0.0","dotenv":"^17.2.0","electron":"^42.5.0","esbuild":"0.28.1","fastq":"^1.19.1","glob":"^11.1.0","js-yaml":"^4.3.0","minimist":"^1.2.8","mobx":"^6.13.7","mobx-react-lite":"^4.1.0","mocha":"^11.7.1","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","monaco-editor":"0.44.0","npm-run-all":"^4.1.5","open":"^10.1.2","openai":"^6.7.0","outdent":"^0.8.0","picomatch":"^4.0.4","playwright":"^1.61.1","prettier":"^3.6.2","react":"^17.0.2","react-dom":"17.0.2","rimraf":"^6.0.1","run-script-os":"^1.1.6","shiki":"~1.15.0","sinon":"^21.0.0","source-map-support":"^0.5.21","tar":"^7.5.16","ts-dedent":"^2.2.0","tsx":"^4.22.4","typescript":"npm:@typescript/typescript6@^6.0.2","vite-plugin-wasm":"^3.6.0","vitest":"^4.1.8","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12","vscode-languageserver-types":"^3.17.5","yaml":"^2.8.0","yargs":"^17.7.2","zod":"3.25.76"},"dependencies":{"@anthropic-ai/sdk":"^0.82.0","@github/blackbird-external-ingest-utils":"^0.3.0","@github/copilot":"^1.0.73","@google/genai":"1.30.0","@humanwhocodes/gitignore-to-minimatch":"1.0.2","@microsoft/tiktokenizer":"^1.0.10","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.212.0","@opentelemetry/exporter-logs-otlp-grpc":"^0.219.0","@opentelemetry/exporter-logs-otlp-http":"^0.219.0","@opentelemetry/exporter-logs-otlp-proto":"^0.219.0","@opentelemetry/exporter-metrics-otlp-grpc":"^0.219.0","@opentelemetry/exporter-metrics-otlp-http":"^0.219.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.219.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.219.0","@opentelemetry/exporter-trace-otlp-http":"^0.219.0","@opentelemetry/exporter-trace-otlp-proto":"^0.219.0","@opentelemetry/resources":"^2.5.1","@opentelemetry/sdk-logs":"^0.212.0","@opentelemetry/sdk-metrics":"^2.5.1","@opentelemetry/sdk-trace-node":"^2.5.1","@opentelemetry/semantic-conventions":"^1.39.0","@sinclair/typebox":"^0.34.41","@vscode/copilot-api":"^0.5.2","@vscode/extension-telemetry":"^1.5.1","@vscode/l10n":"^0.0.18","@vscode/prompt-tsx":"^0.4.0-alpha.8","@vscode/tree-sitter-wasm":"0.0.5-php.2","@vscode/webview-ui-toolkit":"^1.3.1","@xterm/headless":"^5.5.0","ajv":"^8.18.0","applicationinsights":"^2.9.7","best-effort-json-parser":"^1.2.1","diff":"^8.0.3","express":"^5.2.1","ignore":"^7.0.5","isbinaryfile":"^5.0.4","jsonc-parser":"^3.3.1","lru-cache":"^11.1.0","markdown-it":"^14.2.0","minimatch":"^10.2.1","undici":"^7.24.1","vscode-tas-client":"^0.3.1","web-tree-sitter":"^0.23.0"},"overrides":{"string_decoder":"npm:string_decoder@1.2.0","yauzl":"^3.3.1","zod":"3.25.76"},"vscodeCommit":"94c8e2adc50e26ef70af85a0de3a9efed757acaa","allowScripts":{"esbuild@0.28.1":true,"keytar@7.9.0":true,"@playwright/browser-chromium@1.61.1":true,"@vscode/vsce-sign@2.1.0":true,"protobufjs":false,"fsevents@2.3.3":true,"fsevents@2.3.2":true},"isPreRelease":false,"originalEnabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","chatDebug","chatHooks","extensionsAny","newSymbolNamesProvider","interactive","codeActionAI","activeComment","commentReveal","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","documentFiltersExclusive","embeddings","findTextInFiles","findTextInFiles2","languageModelToolSupportsModel","findFiles2","textSearchProvider","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","chatParticipantAdditions","defaultChatParticipant","contribSourceControlInputBoxMenu","authLearnMore","testObserver","aiTextSearchProvider","chatParticipantPrivate","chatProvider","contribDebugCreateConfiguration","chatReferenceDiagnostic","textSearchProvider2","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelPricing","inlineCompletionsAdditions","chatStatusItem","chatInputNotification","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","languageModelThinkingPart","chatSessionsProvider","devDeviceId","contribEditorContentMenu","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","environmentPower","terminalTitle","toolInvocationApproveCombination","chatSessionCustomizationProvider"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/copilot","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":true},{"type":0,"identifier":{"id":"vscode.cpp"},"manifest":{"name":"cpp","displayName":"C/C++ Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in C/C++ files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"c","extensions":[".c",".i"],"aliases":["C","c"],"configuration":"./language-configuration.json"},{"id":"cpp","extensions":[".cpp",".cppm",".cc",".ccm",".cxx",".cxxm",".c++",".c++m",".hpp",".hh",".hxx",".h++",".h",".ii",".ino",".inl",".ipp",".ixx",".mpp",".mxx",".tpp",".txx",".hpp.in",".h.in"],"aliases":["C++","Cpp","cpp"],"configuration":"./language-configuration.json"},{"id":"cuda-cpp","extensions":[".cu",".cuh"],"aliases":["CUDA C++"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"c","scopeName":"source.c","path":"./syntaxes/c.tmLanguage.json"},{"language":"cpp","scopeName":"source.cpp.embedded.macro","path":"./syntaxes/cpp.embedded.macro.tmLanguage.json"},{"language":"cpp","scopeName":"source.cpp","path":"./syntaxes/cpp.tmLanguage.json"},{"scopeName":"source.c.platform","path":"./syntaxes/platform.tmLanguage.json"},{"language":"cuda-cpp","scopeName":"source.cuda-cpp","path":"./syntaxes/cuda-cpp.tmLanguage.json"}],"problemPatterns":[{"name":"nvcc-location","regexp":"^(.*)\\((\\d+)\\):\\s+(warning|error):\\s+(.*)","kind":"location","file":1,"location":2,"severity":3,"message":4}],"problemMatchers":[{"name":"nvcc","owner":"cuda-cpp","fileLocation":["relative","${workspaceFolder}"],"pattern":"$nvcc-location"}],"snippets":[{"language":"c","path":"./snippets/c.code-snippets"},{"language":"cpp","path":"./snippets/cpp.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/cpp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.csharp"},"manifest":{"name":"csharp","displayName":"C# Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in C# files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dotnet/csharp-tmLanguage grammars/csharp.tmLanguage ./syntaxes/csharp.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"configurationDefaults":{"[csharp]":{"editor.maxTokenizationLineLength":2500}},"languages":[{"id":"csharp","extensions":[".cs",".csx",".cake"],"aliases":["C#","csharp"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"csharp","scopeName":"source.cs","path":"./syntaxes/csharp.tmLanguage.json","tokenTypes":{"meta.interpolation":"other"},"unbalancedBracketScopes":["keyword.operator.relational.cs","keyword.operator.arrow.cs","punctuation.accessor.pointer.cs","keyword.operator.bitwise.shift.cs","keyword.operator.assignment.compound.bitwise.cs"]}],"snippets":[{"language":"csharp","path":"./snippets/csharp.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/csharp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.css"},"manifest":{"name":"css","displayName":"CSS Language Basics","description":"Provides syntax highlighting and bracket matching for CSS, LESS and SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin microsoft/vscode-css grammars/css.cson ./syntaxes/css.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"css","aliases":["CSS","css"],"extensions":[".css"],"mimetypes":["text/css"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"css","scopeName":"source.css","path":"./syntaxes/css.tmLanguage.json","tokenTypes":{"meta.function.url string.quoted":"other"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/css","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.css-language-features"},"manifest":{"name":"css-language-features","displayName":"CSS Language Features","description":"Provides rich language support for CSS, LESS and SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.77.0"},"icon":"icons/css.png","activationEvents":["onLanguage:css","onLanguage:less","onLanguage:scss"],"main":"./client/dist/node/cssClientMain","browser":"./client/dist/browser/cssClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"categories":["Programming Languages"],"contributes":{"configuration":[{"order":22,"id":"css","title":"CSS","properties":{"css.customData":{"type":"array","markdownDescription":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-css-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its CSS support for CSS custom properties (variables), at-rules, pseudo-classes, and pseudo-elements you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","default":[],"items":{"type":"string"},"scope":"resource"},"css.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"css.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"css.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"css.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in CSS hovers."},"css.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in CSS hovers."},"css.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"css.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"css.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"css.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"css.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"css.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"css.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"css.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"css.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"css.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"css.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"css.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"css.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"css.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"css.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"css.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"css.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"css.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"css.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"css.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"css.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the CSS language server."},"css.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default CSS formatter."},"css.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"css.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"css.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"css.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"css.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"css.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#css.format.preserveNewLines#` is enabled."}}},{"id":"scss","order":24,"title":"SCSS (Sass)","properties":{"scss.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"scss.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"scss.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"scss.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in SCSS hovers."},"scss.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in SCSS hovers."},"scss.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"scss.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"scss.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"scss.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"scss.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"scss.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"scss.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"scss.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"scss.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"scss.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"scss.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"scss.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"scss.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"scss.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"scss.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"scss.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"scss.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"scss.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"scss.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"scss.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"scss.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default SCSS formatter."},"scss.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"scss.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"scss.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"scss.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"scss.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"scss.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#scss.format.preserveNewLines#` is enabled."}}},{"id":"less","order":23,"type":"object","title":"LESS","properties":{"less.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"less.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"less.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"less.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in LESS hovers."},"less.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in LESS hovers."},"less.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"less.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"less.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"less.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"less.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"less.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"less.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"less.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"less.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"less.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"less.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"less.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"less.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"less.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"less.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"less.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"less.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"less.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"less.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"less.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"less.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default LESS formatter."},"less.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"less.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"less.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"less.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"less.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"less.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#less.format.preserveNewLines#` is enabled."}}}],"configurationDefaults":{"[css]":{"editor.suggest.insertMode":"replace"},"[scss]":{"editor.suggest.insertMode":"replace"},"[less]":{"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.css-data.json","url":"https://raw.githubusercontent.com/microsoft/vscode-css-languageservice/master/docs/customData.schema.json"},{"fileMatch":"package.json","url":"./schemas/package.schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/css-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.dart"},"manifest":{"name":"dart","displayName":"Dart Language Basics","description":"Provides syntax highlighting & bracket matching in Dart files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dart-lang/dart-syntax-highlight grammars/dart.json ./syntaxes/dart.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dart","extensions":[".dart"],"aliases":["Dart"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dart","scopeName":"source.dart","path":"./syntaxes/dart.tmLanguage.json"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/dart","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.debug-auto-launch"},"manifest":{"name":"debug-auto-launch","displayName":"Node Debug Auto-attach","description":"Helper for auto-attach feature when node-debug extensions are not active.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.5.0"},"icon":"media/icon.png","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onStartupFinished"],"main":"./dist/extension","contributes":{"commands":[{"command":"extension.node-debug.toggleAutoAttach","title":"Toggle Auto Attach","category":"Debug"}]},"prettier":{"printWidth":100,"trailingComma":"all","singleQuote":true,"arrowParens":"avoid"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/debug-auto-launch","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.debug-server-ready"},"manifest":{"name":"debug-server-ready","displayName":"Server Ready Action","description":"Open URI in browser if server under debugging is ready.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.32.0"},"icon":"media/icon.png","activationEvents":["onDebugResolve"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["terminalDataWriteEvent"],"main":"./dist/extension","contributes":{"debuggers":[{"type":"*","configurationAttributes":{"launch":{"properties":{"serverReadyAction":{"oneOf":[{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"openExternally","killOnServerStop":false},"properties":{"action":{"type":"string","enum":["openExternally","openIntegratedBrowser"],"enumDescriptions":["Open URI externally with the default application.","Open URI in the integrated browser."],"markdownDescription":"What to do with the URI when the server is ready.","default":"openExternally"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"uriFormat":{"type":"string","markdownDescription":"A format string used when constructing the URI from a port number. The first '%s' is substituted with the port number.","default":"http://localhost:%s"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"debugWithEdge","pattern":"listening on port ([0-9]+)","uriFormat":"http://localhost:%s","webRoot":"${workspaceFolder}","killOnServerStop":false},"properties":{"action":{"type":"string","enum":["debugWithChrome","debugWithEdge"],"enumDescriptions":["Start debugging with the 'Debugger for Chrome'."],"markdownDescription":"What to do with the URI when the server is ready.","default":"debugWithEdge"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"uriFormat":{"type":"string","markdownDescription":"A format string used when constructing the URI from a port number. The first '%s' is substituted with the port number.","default":"http://localhost:%s"},"webRoot":{"type":"string","markdownDescription":"Value passed to the debug configuration for the 'Debugger for Chrome'.","default":"${workspaceFolder}"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"startDebugging","name":"","killOnServerStop":false},"required":["name"],"properties":{"action":{"type":"string","enum":["startDebugging"],"enumDescriptions":["Run another launch configuration."],"markdownDescription":"What to do with the URI when the server is ready.","default":"startDebugging"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"name":{"type":"string","markdownDescription":"Name of the launch configuration to run.","default":"Launch Browser"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"startDebugging","config":{"type":"node","request":"launch"},"killOnServerStop":false},"required":["config"],"properties":{"action":{"type":"string","enum":["startDebugging"],"enumDescriptions":["Run another launch configuration."],"markdownDescription":"What to do with the URI when the server is ready.","default":"startDebugging"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"config":{"type":"object","markdownDescription":"The debug configuration to run.","default":{}},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}}]}}}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalDataWriteEvent"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/debug-server-ready","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.diff"},"manifest":{"name":"diff","displayName":"Diff Language Basics","description":"Provides syntax highlighting & bracket matching in Diff files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/diff.tmbundle Syntaxes/Diff.plist ./syntaxes/diff.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"diff","aliases":["Diff","diff"],"extensions":[".diff",".patch",".rej"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"diff","scopeName":"source.diff","path":"./syntaxes/diff.tmLanguage.json"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/diff","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.docker"},"manifest":{"name":"docker","displayName":"Docker Language Basics","description":"Provides syntax highlighting and bracket matching in Docker files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dockerfile","extensions":[".dockerfile",".containerfile"],"filenames":["Dockerfile","Containerfile"],"filenamePatterns":["Dockerfile.*","Containerfile.*"],"aliases":["Docker","Dockerfile","Containerfile"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dockerfile","scopeName":"source.dockerfile","path":"./syntaxes/docker.tmLanguage.json"}],"configurationDefaults":{"[dockerfile]":{"editor.quickSuggestions":{"strings":true}}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/docker","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.dotenv"},"manifest":{"name":"dotenv","displayName":"Dotenv Language Basics","description":"Provides syntax highlighting and bracket matching in dotenv files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dotenv-org/dotenv-vscode syntaxes/dotenv.tmLanguage.json ./syntaxes/dotenv.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dotenv","extensions":[".env"],"filenames":[".env",".flaskenv","user-dirs.dirs"],"filenamePatterns":[".env.*"],"aliases":["Dotenv"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dotenv","scopeName":"source.dotenv","path":"./syntaxes/dotenv.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/dotenv","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.emmet"},"manifest":{"name":"emmet","displayName":"Emmet","description":"Emmet support for VS Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.13.0"},"icon":"images/icon.png","categories":["Other"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"activationEvents":["onCommand:emmet.expandAbbreviation","onLanguage"],"main":"./dist/node/emmetNodeMain","browser":"./dist/browser/emmetBrowserMain","contributes":{"configuration":{"type":"object","title":"Emmet","properties":{"emmet.showExpandedAbbreviation":{"type":["string"],"enum":["never","always","inMarkupAndStylesheetFilesOnly"],"default":"always","markdownDescription":"Shows expanded Emmet abbreviations as suggestions.\nThe option `\"inMarkupAndStylesheetFilesOnly\"` applies to html, haml, jade, slim, xml, xsl, css, scss, sass, less and stylus.\nThe option `\"always\"` applies to all parts of the file regardless of markup/css."},"emmet.showAbbreviationSuggestions":{"type":"boolean","default":true,"scope":"language-overridable","markdownDescription":"Shows possible Emmet abbreviations as suggestions. Not applicable in stylesheets or when emmet.showExpandedAbbreviation is set to `\"never\"`."},"emmet.includeLanguages":{"type":"object","additionalProperties":{"type":"string"},"default":{},"markdownDescription":"Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and Emmet supported language.\n For example: `{\"vue-html\": \"html\", \"javascript\": \"javascriptreact\"}`"},"emmet.variables":{"type":"object","properties":{"lang":{"type":"string","default":"en"},"charset":{"type":"string","default":"UTF-8"}},"additionalProperties":{"type":"string"},"default":{},"markdownDescription":"Variables to be used in Emmet snippets."},"emmet.syntaxProfiles":{"type":"object","default":{},"markdownDescription":"Define profile for specified syntax or use your own profile with specific rules."},"emmet.excludeLanguages":{"type":"array","items":{"type":"string"},"default":["markdown"],"markdownDescription":"An array of languages where Emmet abbreviations should not be expanded."},"emmet.extensionsPath":{"type":"array","items":{"type":"string","markdownDescription":"A path containing Emmet syntaxProfiles and/or snippets."},"default":[],"scope":"machine-overridable","markdownDescription":"An array of paths, where each path can contain Emmet syntaxProfiles and/or snippet files.\nIn case of conflicts, the profiles/snippets of later paths will override those of earlier paths.\nSee https://code.visualstudio.com/docs/editor/emmet for more information and an example snippet file."},"emmet.triggerExpansionOnTab":{"type":"boolean","default":false,"scope":"language-overridable","markdownDescription":"When enabled, Emmet abbreviations are expanded when pressing TAB, even when completions do not show up. When disabled, completions that show up can still be accepted by pressing TAB."},"emmet.useInlineCompletions":{"type":"boolean","default":false,"markdownDescription":"If `true`, Emmet will use inline completions to suggest expansions. To prevent the non-inline completion item provider from showing up as often while this setting is `true`, turn `#editor.quickSuggestions#` to `inline` or `off` for the `other` item."},"emmet.preferences":{"type":"object","default":{},"markdownDescription":"Preferences used to modify behavior of some actions and resolvers of Emmet.","properties":{"css.intUnit":{"type":"string","default":"px","markdownDescription":"Default unit for integer values."},"css.floatUnit":{"type":"string","default":"em","markdownDescription":"Default unit for float values."},"css.propertyEnd":{"type":"string","default":";","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations."},"sass.propertyEnd":{"type":"string","default":"","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations in Sass files."},"stylus.propertyEnd":{"type":"string","default":"","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations in Stylus files."},"css.valueSeparator":{"type":"string","default":": ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations."},"sass.valueSeparator":{"type":"string","default":": ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations in Sass files."},"stylus.valueSeparator":{"type":"string","default":" ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations in Stylus files."},"bem.elementSeparator":{"type":"string","default":"__","markdownDescription":"Element separator used for classes when using the BEM filter."},"bem.modifierSeparator":{"type":"string","default":"_","markdownDescription":"Modifier separator used for classes when using the BEM filter."},"filter.commentBefore":{"type":"string","default":"","markdownDescription":"A definition of comment that should be placed before matched element when comment filter is applied."},"filter.commentAfter":{"type":"string","default":"\n","markdownDescription":"A definition of comment that should be placed after matched element when comment filter is applied."},"filter.commentTrigger":{"type":"array","default":["id","class"],"markdownDescription":"A comma-separated list of attribute names that should exist in the abbreviation for the comment filter to be applied."},"format.noIndentTags":{"type":"array","default":["html"],"markdownDescription":"An array of tag names that should never get inner indentation."},"format.forceIndentationForTags":{"type":"array","default":["body"],"markdownDescription":"An array of tag names that should always get inner indentation."},"profile.allowCompactBoolean":{"type":"boolean","default":false,"markdownDescription":"If `true`, compact notation of boolean attributes are produced."},"css.webkitProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `webkit` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `webkit` prefix."},"css.mozProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `moz` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `moz` prefix."},"css.oProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `o` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `o` prefix."},"css.msProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `ms` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `ms` prefix."},"css.fuzzySearchMinScore":{"type":"number","default":0.3,"markdownDescription":"The minimum score (from 0 to 1) that fuzzy-matched abbreviation should achieve. Lower values may produce many false-positive matches, higher values may reduce possible matches."},"output.inlineBreak":{"type":"number","default":0,"markdownDescription":"The number of sibling inline elements needed for line breaks to be placed between those elements. If `0`, inline elements are always expanded onto a single line."},"output.reverseAttributes":{"type":"boolean","default":false,"markdownDescription":"If `true`, reverses attribute merging directions when resolving snippets."},"output.selfClosingStyle":{"type":"string","enum":["html","xhtml","xml"],"default":"html","markdownDescription":"Style of self-closing tags: html (`
`), xml (`
`) or xhtml (`
`)."},"css.color.short":{"type":"boolean","default":true,"markdownDescription":"If `true`, color values like `#f` will be expanded to `#fff` instead of `#ffffff`."}}},"emmet.showSuggestionsAsSnippets":{"type":"boolean","default":false,"markdownDescription":"If `true`, then Emmet suggestions will show up as snippets allowing you to order them as per `#editor.snippetSuggestions#` setting."},"emmet.optimizeStylesheetParsing":{"type":"boolean","default":true,"markdownDescription":"When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in CSS/SCSS/Less files is parsed."}}},"commands":[{"command":"editor.emmet.action.wrapWithAbbreviation","title":"Wrap with Abbreviation","category":"Emmet"},{"command":"editor.emmet.action.removeTag","title":"Remove Tag","category":"Emmet"},{"command":"editor.emmet.action.updateTag","title":"Update Tag","category":"Emmet"},{"command":"editor.emmet.action.matchTag","title":"Go to Matching Pair","category":"Emmet"},{"command":"editor.emmet.action.balanceIn","title":"Balance (inward)","category":"Emmet"},{"command":"editor.emmet.action.balanceOut","title":"Balance (outward)","category":"Emmet"},{"command":"editor.emmet.action.prevEditPoint","title":"Go to Previous Edit Point","category":"Emmet"},{"command":"editor.emmet.action.nextEditPoint","title":"Go to Next Edit Point","category":"Emmet"},{"command":"editor.emmet.action.mergeLines","title":"Merge Lines","category":"Emmet"},{"command":"editor.emmet.action.selectPrevItem","title":"Select Previous Item","category":"Emmet"},{"command":"editor.emmet.action.selectNextItem","title":"Select Next Item","category":"Emmet"},{"command":"editor.emmet.action.splitJoinTag","title":"Split/Join Tag","category":"Emmet"},{"command":"editor.emmet.action.toggleComment","title":"Toggle Comment","category":"Emmet"},{"command":"editor.emmet.action.evaluateMathExpression","title":"Evaluate Math Expression","category":"Emmet"},{"command":"editor.emmet.action.updateImageSize","title":"Update Image Size","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByOneTenth","title":"Increment by 0.1","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByOne","title":"Increment by 1","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByTen","title":"Increment by 10","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByOneTenth","title":"Decrement by 0.1","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByOne","title":"Decrement by 1","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByTen","title":"Decrement by 10","category":"Emmet"},{"command":"editor.emmet.action.reflectCSSValue","title":"Reflect CSS Value","category":"Emmet"},{"command":"workbench.action.showEmmetCommands","title":"Show Emmet Commands","category":""}],"menus":{"commandPalette":[{"command":"editor.emmet.action.wrapWithAbbreviation","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.removeTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.updateTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.matchTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.balanceIn","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.balanceOut","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.prevEditPoint","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.nextEditPoint","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.mergeLines","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.selectPrevItem","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.selectNextItem","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.splitJoinTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.toggleComment","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.evaluateMathExpression","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.updateImageSize","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByOneTenth","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByOne","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByTen","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByOneTenth","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByOne","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByTen","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.reflectCSSValue","when":"activeEditor && !activeEditorIsReadonly"}]}},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/emmet","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.extension-editing"},"manifest":{"name":"extension-editing","displayName":"Extension Authoring","description":"Provides linting capabilities for authoring extensions.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.4.0"},"icon":"images/icon.png","activationEvents":["onLanguage:json","onLanguage:markdown"],"main":"./dist/extensionEditingMain","browser":"./dist/browser/extensionEditingBrowserMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"jsonValidation":[{"fileMatch":"package.json","url":"vscode://schemas/vscode-extensions"},{"fileMatch":"*language-configuration.json","url":"vscode://schemas/language-configuration"},{"fileMatch":["*icon-theme.json","!*product-icon-theme.json"],"url":"vscode://schemas/icon-theme"},{"fileMatch":"*product-icon-theme.json","url":"vscode://schemas/product-icon-theme"},{"fileMatch":"*color-theme.json","url":"vscode://schemas/color-theme"}],"languages":[{"id":"ignore","filenames":[".vscodeignore"]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/extension-editing","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.fsharp"},"manifest":{"name":"fsharp","displayName":"F# Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in F# files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin ionide/ionide-fsgrammar grammars/fsharp.json ./syntaxes/fsharp.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"fsharp","extensions":[".fs",".fsi",".fsx",".fsscript"],"aliases":["F#","FSharp","fsharp"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"fsharp","scopeName":"source.fsharp","path":"./syntaxes/fsharp.tmLanguage.json"}],"snippets":[{"language":"fsharp","path":"./snippets/fsharp.code-snippets"}],"configurationDefaults":{"[fsharp]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/fsharp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.git"},"manifest":{"name":"git","displayName":"Git","description":"Git SCM Integration","publisher":"vscode","license":"MIT","version":"10.0.0","engines":{"vscode":"^1.5.0"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","canonicalUriProvider","contribEditSessions","contribEditorContentMenu","contribMergeEditorMenus","contribMultiDiffEditorMenus","contribDiffEditorGutterToolBarMenus","contribSourceControlArtifactGroupMenu","contribSourceControlArtifactMenu","contribSourceControlHistoryItemMenu","contribSourceControlHistoryTitleMenu","contribSourceControlInputBoxMenu","contribSourceControlTitleMenu","contribViewsWelcome","editSessionIdentityProvider","envIsConnectionMetered","findFiles2","quickDiffProvider","quickPickSortByLabel","scmActionButton","scmArtifactProvider","scmHistoryProvider","scmMultiDiffEditor","scmProviderOptions","scmSelectedProvider","scmTextDocument","scmValidation","statusBarItemTooltip","taskRunOptions","tabInputMultiDiff","tabInputTextMerge","textEditorDiffInformation","timeline","workspaceTrust"],"categories":["Other"],"activationEvents":["*","onEditSession:file","onFileSystem:git","onFileSystem:git-show"],"extensionDependencies":["vscode.git-base"],"main":"./dist/main","icon":"resources/icons/git.png","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":false}},"contributes":{"commands":[{"command":"git.continueInLocalClone","title":"Clone Repository Locally and Open on Desktop...","category":"Git","icon":"$(repo-clone)","enablement":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && remoteName"},{"command":"git.clone","title":"Clone","category":"Git","enablement":"!operationInProgress"},{"command":"git.cloneRecursive","title":"Clone (Recursive)","category":"Git","enablement":"!operationInProgress"},{"command":"git.init","title":"Initialize Repository","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.openRepository","title":"Open Repository","category":"Git","enablement":"!operationInProgress"},{"command":"git.reopenClosedRepositories","title":"Reopen Closed Repositories...","icon":"$(repo)","category":"Git","enablement":"!operationInProgress && git.closedRepositoryCount != 0"},{"command":"git.close","title":"Close Repository","category":"Git","enablement":"!operationInProgress"},{"command":"git.closeOtherRepositories","title":"Close Other Repositories","category":"Git","enablement":"!operationInProgress"},{"command":"git.openWorktree","title":"Open Worktree in Current Window","category":"Git","enablement":"!operationInProgress"},{"command":"git.openWorktreeInNewWindow","title":"Open Worktree in New Window","category":"Git","enablement":"!operationInProgress"},{"command":"git.refresh","title":"Refresh","category":"Git","icon":"$(refresh)","enablement":"!operationInProgress"},{"command":"git.compareWithWorkspace","title":"Compare with Workspace","category":"Git"},{"command":"git.openChange","title":"Open Changes","category":"Git","icon":"$(compare-changes)"},{"command":"git.openAllChanges","title":"Open All Changes","category":"Git"},{"command":"git.openFile","title":"Open File","category":"Git","icon":"$(go-to-file)"},{"command":"git.openFile2","title":"Open File","category":"Git","icon":"$(go-to-file)"},{"command":"git.openHEADFile","title":"Open File (HEAD)","category":"Git"},{"command":"git.stage","title":"Stage Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAll","title":"Stage All Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllTracked","title":"Stage All Tracked Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllUntracked","title":"Stage All Untracked Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllMerge","title":"Stage All Merge Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageSelectedRanges","title":"Stage Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.diff.stageHunk","title":"Stage Block","category":"Git","icon":"$(plus)"},{"command":"git.diff.stageSelection","title":"Stage Selection","category":"Git","icon":"$(plus)"},{"command":"git.revertSelectedRanges","title":"Revert Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.stageChange","title":"Stage Change","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageFile","title":"Stage Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.revertChange","title":"Revert Change","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.unstage","title":"Unstage Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageAll","title":"Unstage All Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageSelectedRanges","title":"Unstage Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.unstageChange","title":"Unstage Change","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageFile","title":"Unstage Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.clean","title":"Discard Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAll","title":"Discard All Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAllTracked","title":"Discard All Tracked Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAllUntracked","title":"Discard All Untracked Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.rename","title":"Rename","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.delete","title":"Delete","category":"Git","icon":"$(trash)","enablement":"!operationInProgress"},{"command":"git.commit","title":"Commit","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitAmend","title":"Commit (Amend)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitSigned","title":"Commit (Signed Off)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitStaged","title":"Commit Staged","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitEmpty","title":"Commit Empty","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedSigned","title":"Commit Staged (Signed Off)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedAmend","title":"Commit Staged (Amend)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAll","title":"Commit All","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllSigned","title":"Commit All (Signed Off)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllAmend","title":"Commit All (Amend)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitNoVerify","title":"Commit (No Verify)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitStagedNoVerify","title":"Commit Staged (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitEmptyNoVerify","title":"Commit Empty (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedSignedNoVerify","title":"Commit Staged (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAmendNoVerify","title":"Commit (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitSignedNoVerify","title":"Commit (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedAmendNoVerify","title":"Commit Staged (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllNoVerify","title":"Commit All (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllSignedNoVerify","title":"Commit All (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllAmendNoVerify","title":"Commit All (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitMessageAccept","title":"Commit","category":"Git"},{"command":"git.commitMessageDiscard","title":"Cancel","icon":"$(close)","category":"Git"},{"command":"git.restoreCommitTemplate","title":"Restore Commit Template","category":"Git","enablement":"!operationInProgress"},{"command":"git.undoCommit","title":"Undo Last Commit","category":"Git","enablement":"!operationInProgress"},{"command":"git.checkout","title":"Checkout to...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.checkout","title":"Checkout","category":"Git","enablement":"!operationInProgress"},{"command":"git.checkoutDetached","title":"Checkout to (Detached)...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.checkoutDetached","title":"Checkout (Detached)","category":"Git","enablement":"!operationInProgress"},{"command":"git.branch","title":"Create Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.branchFrom","title":"Create Branch From...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteBranch","title":"Delete Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.deleteBranch","title":"Delete Branch","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteRemoteBranch","title":"Delete Remote Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.renameBranch","title":"Rename Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.merge","title":"Merge...","category":"Git","enablement":"!operationInProgress"},{"command":"git.mergeAbort","title":"Abort Merge","category":"Git","enablement":"gitMergeInProgress"},{"command":"git.rebase","title":"Rebase Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.createTag","title":"Create Tag...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteTag","title":"Delete Tag...","category":"Git","enablement":"!operationInProgress"},{"command":"git.migrateWorktreeChanges","title":"Migrate Worktree Changes...","category":"Git","enablement":"!operationInProgress"},{"command":"git.createWorktree","title":"Create Worktree...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteWorktree","title":"Delete Worktree...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteWorktree2","title":"Delete Worktree","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.deleteTag","title":"Delete Tag","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteRemoteTag","title":"Delete Remote Tag...","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetch","title":"Fetch","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchPrune","title":"Fetch (Prune)","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchAll","title":"Fetch From All Remotes","icon":"$(git-fetch)","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchRef","title":"Fetch","icon":"$(git-fetch)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pull","title":"Pull","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullRebase","title":"Pull (Rebase)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullFrom","title":"Pull from...","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullRef","title":"Pull","icon":"$(repo-pull)","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefInFilter && scmCurrentHistoryItemRefHasRemote"},{"command":"git.push","title":"Push","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushForce","title":"Push (Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushTo","title":"Push to...","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushToForce","title":"Push to... (Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushTags","title":"Push Tags","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushWithTags","title":"Push (Follow Tags)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushWithTagsForce","title":"Push (Follow Tags, Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushRef","title":"Push","icon":"$(repo-push)","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefInFilter && scmCurrentHistoryItemRefHasRemote"},{"command":"git.cherryPick","title":"Cherry Pick...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.cherryPick","title":"Cherry Pick","category":"Git","enablement":"!operationInProgress"},{"command":"git.cherryPickAbort","title":"Abort Cherry Pick","category":"Git","enablement":"!operationInProgress"},{"command":"git.addRemote","title":"Add Remote...","category":"Git","enablement":"!operationInProgress"},{"command":"git.removeRemote","title":"Remove Remote","category":"Git","enablement":"!operationInProgress"},{"command":"git.sync","title":"Sync","category":"Git","enablement":"!operationInProgress"},{"command":"git.syncRebase","title":"Sync (Rebase)","category":"Git","enablement":"!operationInProgress"},{"command":"git.publish","title":"Publish Branch...","category":"Git","icon":"$(cloud-upload)","enablement":"!operationInProgress"},{"command":"git.showOutput","title":"Show Git Output","category":"Git"},{"command":"git.ignore","title":"Add to .gitignore","category":"Git","enablement":"!operationInProgress"},{"command":"git.revealInExplorer","title":"Reveal in Explorer View","category":"Git"},{"command":"git.revealFileInOS.linux","title":"Open Containing Folder","category":"Git"},{"command":"git.revealFileInOS.mac","title":"Reveal in Finder","category":"Git"},{"command":"git.revealFileInOS.windows","title":"Reveal in File Explorer","category":"Git"},{"command":"git.stashIncludeUntracked","title":"Stash (Include Untracked)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stash","title":"Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashStaged","title":"Stash Staged","category":"Git","enablement":"!operationInProgress && gitVersion2.35"},{"command":"git.stashPop","title":"Pop Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashPopLatest","title":"Pop Latest Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashPopEditor","title":"Pop Stash","icon":"$(git-stash-pop)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApply","title":"Apply Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApplyLatest","title":"Apply Latest Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApplyEditor","title":"Apply Stash","icon":"$(git-stash-apply)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDrop","title":"Drop Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDropAll","title":"Drop All Stashes...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDropEditor","title":"Drop Stash","icon":"$(trash)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashView","title":"View Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.timeline.openDiff","title":"Open Changes","icon":"$(compare-changes)","category":"Git"},{"command":"git.timeline.copyCommitId","title":"Copy Commit Hash","category":"Git"},{"command":"git.timeline.copyCommitMessage","title":"Copy Commit Message","category":"Git"},{"command":"git.timeline.selectForCompare","title":"Select for Compare","category":"Git"},{"command":"git.timeline.compareWithSelected","title":"Compare with Selected","category":"Git"},{"command":"git.timeline.viewCommit","title":"Open Commit","icon":"$(diff-multiple)","category":"Git"},{"command":"git.rebaseAbort","title":"Abort Rebase","category":"Git","enablement":"gitRebaseInProgress"},{"command":"git.closeAllDiffEditors","title":"Close All Diff Editors","category":"Git","enablement":"!operationInProgress"},{"command":"git.closeAllUnmodifiedEditors","title":"Close All Unmodified Editors","category":"Git","enablement":"!operationInProgress"},{"command":"git.api.getRepositories","title":"Get Repositories","category":"Git API"},{"command":"git.api.getRepositoryState","title":"Get Repository State","category":"Git API"},{"command":"git.api.getRemoteSources","title":"Get Remote Sources","category":"Git API"},{"command":"git.acceptMerge","title":"Complete Merge","category":"Git","enablement":"isMergeEditor && mergeEditorResultUri in git.mergeChanges"},{"command":"git.openMergeEditor","title":"Resolve in Merge Editor","category":"Git"},{"command":"git.runGitMerge","title":"Compute Conflicts With Git","category":"Git","enablement":"isMergeEditor"},{"command":"git.runGitMergeDiff3","title":"Compute Conflicts With Git (Diff3)","category":"Git","enablement":"isMergeEditor"},{"command":"git.manageUnsafeRepositories","title":"Manage Unsafe Repositories","category":"Git"},{"command":"git.openRepositoriesInParentFolders","title":"Open Repositories In Parent Folders","category":"Git"},{"command":"git.viewChanges","title":"Open Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewStagedChanges","title":"Open Staged Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewUntrackedChanges","title":"Open Untracked Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewCommit","title":"Open Commit","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.copyCommitId","title":"Copy Commit Hash","category":"Git"},{"command":"git.copyCommitMessage","title":"Copy Commit Message","category":"Git"},{"command":"git.blame.toggleEditorDecoration","title":"Toggle Git Blame Editor Decoration","category":"Git"},{"command":"git.blame.toggleStatusBarItem","title":"Toggle Git Blame Status Bar Item","category":"Git"},{"command":"git.graph.compareRef","title":"Compare with...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.compareWithRemote","title":"Compare with Remote","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefHasRemote"},{"command":"git.graph.compareWithMergeBase","title":"Compare with Merge Base","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefHasBase"},{"command":"git.repositories.checkout","title":"Checkout","icon":"$(target)","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.checkoutDetached","title":"Checkout (Detached)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.compareRef","title":"Compare with...","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createBranch","title":"Create Branch...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createTag","title":"Create Tag...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.merge","title":"Merge","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.rebase","title":"Rebase","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.deleteBranch","title":"Delete","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.deleteTag","title":"Delete","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.createFrom","title":"Create from...","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashView","title":"View Stash","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashApply","title":"Apply Stash","icon":"$(git-stash-apply)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashPop","title":"Pop Stash","icon":"$(git-stash-pop)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashDrop","title":"Drop Stash","icon":"$(trash)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createWorktree","title":"Create Worktree...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.openWorktree","title":"Open","icon":"$(folder-opened)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.openWorktreeInNewWindow","title":"Open in New Window","icon":"$(folder-opened)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.deleteWorktree","title":"Delete","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.worktreeCopyBranchName","title":"Copy Branch Name","category":"Git"},{"command":"git.repositories.worktreeCopyCommitHash","title":"Copy Commit Hash","category":"Git"},{"command":"git.repositories.worktreeCopyPath","title":"Copy Worktree Path","category":"Git"},{"command":"git.repositories.copyCommitHash","title":"Copy Commit Hash","category":"Git"},{"command":"git.repositories.copyBranchName","title":"Copy Branch Name","category":"Git"},{"command":"git.repositories.copyTagName","title":"Copy Tag Name","category":"Git"},{"command":"git.repositories.copyStashName","title":"Copy Stash Name","category":"Git"},{"command":"git.repositories.stashCopyBranchName","title":"Copy Branch Name","category":"Git"}],"continueEditSession":[{"command":"git.continueInLocalClone","qualifiedName":"Continue Working in New Local Clone","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && remoteName","remoteGroup":"remote_42_git_0_local@0"}],"keybindings":[{"command":"git.stageSelectedRanges","key":"ctrl+k ctrl+alt+s","mac":"cmd+k cmd+alt+s","when":"editorTextFocus && resourceScheme == file"},{"command":"git.unstageSelectedRanges","key":"ctrl+k ctrl+n","mac":"cmd+k cmd+n","when":"editorTextFocus && isInDiffEditor && isInDiffRightEditor && resourceScheme == git"},{"command":"git.revertSelectedRanges","key":"ctrl+k ctrl+r","mac":"cmd+k cmd+r","when":"editorTextFocus && resourceScheme == file"}],"menus":{"commandPalette":[{"command":"git.continueInLocalClone","when":"false"},{"command":"git.clone","when":"config.git.enabled && !git.missing"},{"command":"git.cloneRecursive","when":"config.git.enabled && !git.missing"},{"command":"git.init","when":"config.git.enabled && !git.missing && remoteName != 'codespaces'"},{"command":"git.openRepository","when":"config.git.enabled && !git.missing"},{"command":"git.close","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.closeOtherRepositories","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.openWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.openWorktreeInNewWindow","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.refresh","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.openFile","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceHasChanges"},{"command":"git.openHEADFile","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceHasChanges"},{"command":"git.openChange","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stage","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllTracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllMerge","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.stageChange","when":"false"},{"command":"git.revertSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.revertChange","when":"false"},{"command":"git.openFile2","when":"false"},{"command":"git.unstage","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.unstageAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.unstageSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == git"},{"command":"git.unstageChange","when":"false"},{"command":"git.clean","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAllTracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAllUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.rename","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceRepository"},{"command":"git.delete","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.commit","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStaged","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitEmpty","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAllSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAllAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.rebaseAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitRebaseInProgress"},{"command":"git.commitNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitEmptyNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.restoreCommitTemplate","when":"false"},{"command":"git.commitMessageAccept","when":"false"},{"command":"git.commitMessageDiscard","when":"false"},{"command":"git.revealInExplorer","when":"false"},{"command":"git.revealFileInOS.linux","when":"false"},{"command":"git.revealFileInOS.mac","when":"false"},{"command":"git.revealFileInOS.windows","when":"false"},{"command":"git.undoCommit","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.checkout","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.branch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.branchFrom","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteRemoteBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.renameBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cherryPick","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cherryPickAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitCherryPickInProgress"},{"command":"git.pull","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pullFrom","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pullRebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.merge","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.mergeAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitMergeInProgress"},{"command":"git.rebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.createTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.migrateWorktreeChanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.createWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.openWorktree","when":"false"},{"command":"git.openWorktreeInNewWindow","when":"false"},{"command":"git.deleteWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteWorktree2","when":"false"},{"command":"git.deleteRemoteTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetchPrune","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetchAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.push","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushTo","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushToForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushWithTags","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushWithTagsForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushTags","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.addRemote","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.removeRemote","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.sync","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.syncRebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.publish","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.showOutput","when":"config.git.enabled"},{"command":"git.ignore","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceRepository"},{"command":"git.stashIncludeUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stash","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashStaged","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitVersion2.35"},{"command":"git.stashPop","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashPopLatest","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashPopEditor","when":"false"},{"command":"git.stashApply","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashApplyLatest","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashApplyEditor","when":"false"},{"command":"git.stashDrop","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashDropAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashDropEditor","when":"false"},{"command":"git.timeline.openDiff","when":"false"},{"command":"git.timeline.copyCommitId","when":"false"},{"command":"git.timeline.copyCommitMessage","when":"false"},{"command":"git.timeline.selectForCompare","when":"false"},{"command":"git.timeline.compareWithSelected","when":"false"},{"command":"git.timeline.viewCommit","when":"false"},{"command":"git.closeAllDiffEditors","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.api.getRepositories","when":"false"},{"command":"git.api.getRepositoryState","when":"false"},{"command":"git.api.getRemoteSources","when":"false"},{"command":"git.openMergeEditor","when":"false"},{"command":"git.manageUnsafeRepositories","when":"config.git.enabled && !git.missing && git.unsafeRepositoryCount != 0"},{"command":"git.openRepositoriesInParentFolders","when":"config.git.enabled && !git.missing && git.parentRepositoryCount != 0"},{"command":"git.stashView","when":"config.git.enabled && !git.missing"},{"command":"git.viewChanges","when":"config.git.enabled && !git.missing"},{"command":"git.viewStagedChanges","when":"config.git.enabled && !git.missing"},{"command":"git.viewUntrackedChanges","when":"config.git.enabled && !git.missing && config.git.untrackedChanges == separate"},{"command":"git.viewCommit","when":"false"},{"command":"git.stageFile","when":"false"},{"command":"git.unstageFile","when":"false"},{"command":"git.fetchRef","when":"false"},{"command":"git.pullRef","when":"false"},{"command":"git.pushRef","when":"false"},{"command":"git.copyCommitId","when":"false"},{"command":"git.copyCommitMessage","when":"false"},{"command":"git.graph.checkout","when":"false"},{"command":"git.graph.checkoutDetached","when":"false"},{"command":"git.graph.deleteBranch","when":"false"},{"command":"git.graph.compareRef","when":"false"},{"command":"git.graph.deleteTag","when":"false"},{"command":"git.graph.cherryPick","when":"false"},{"command":"git.graph.compareWithMergeBase","when":"false"},{"command":"git.graph.compareWithRemote","when":"false"},{"command":"git.diff.stageHunk","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"},{"command":"git.diff.stageSelection","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"},{"command":"git.repositories.checkout","when":"false"},{"command":"git.repositories.checkoutDetached","when":"false"},{"command":"git.repositories.compareRef","when":"false"},{"command":"git.repositories.createBranch","when":"false"},{"command":"git.repositories.createTag","when":"false"},{"command":"git.repositories.merge","when":"false"},{"command":"git.repositories.rebase","when":"false"},{"command":"git.repositories.deleteBranch","when":"false"},{"command":"git.repositories.deleteTag","when":"false"},{"command":"git.repositories.createFrom","when":"false"},{"command":"git.repositories.stashView","when":"false"},{"command":"git.repositories.stashApply","when":"false"},{"command":"git.repositories.stashPop","when":"false"},{"command":"git.repositories.stashDrop","when":"false"},{"command":"git.repositories.createWorktree","when":"false"},{"command":"git.repositories.openWorktree","when":"false"},{"command":"git.repositories.openWorktreeInNewWindow","when":"false"},{"command":"git.repositories.deleteWorktree","when":"false"},{"command":"git.repositories.worktreeCopyBranchName","when":"false"},{"command":"git.repositories.worktreeCopyCommitHash","when":"false"},{"command":"git.repositories.worktreeCopyPath","when":"false"},{"command":"git.repositories.copyCommitHash","when":"false"},{"command":"git.repositories.copyBranchName","when":"false"},{"command":"git.repositories.copyTagName","when":"false"},{"command":"git.repositories.copyStashName","when":"false"},{"command":"git.repositories.stashCopyBranchName","when":"false"}],"scm/title":[{"command":"git.commit","group":"navigation","when":"scmProvider == git"},{"command":"git.refresh","group":"navigation","when":"scmProvider == git"},{"command":"git.pull","group":"1_header@1","when":"scmProvider == git"},{"command":"git.push","group":"1_header@2","when":"scmProvider == git"},{"command":"git.clone","group":"1_header@3","when":"scmProvider == git"},{"command":"git.checkout","group":"1_header@4","when":"scmProvider == git"},{"command":"git.fetch","group":"1_header@5","when":"scmProvider == git"},{"submenu":"git.commit","group":"2_main@1","when":"scmProvider == git"},{"submenu":"git.changes","group":"2_main@2","when":"scmProvider == git"},{"submenu":"git.pullpush","group":"2_main@3","when":"scmProvider == git"},{"submenu":"git.branch","group":"2_main@4","when":"scmProvider == git"},{"submenu":"git.remotes","group":"2_main@5","when":"scmProvider == git"},{"submenu":"git.stash","group":"2_main@6","when":"scmProvider == git"},{"submenu":"git.tags","group":"2_main@7","when":"scmProvider == git"},{"submenu":"git.worktrees","group":"2_main@8","when":"scmProvider == git"},{"command":"git.showOutput","group":"3_footer","when":"scmProvider == git"}],"scm/repositories/title":[{"command":"git.reopenClosedRepositories","group":"navigation@1","when":"git.closedRepositoryCount > 0"}],"scm/repository":[{"command":"git.pull","group":"1_header@1","when":"scmProvider == git"},{"command":"git.push","group":"1_header@2","when":"scmProvider == git"},{"command":"git.clone","group":"1_header@3","when":"scmProvider == git"},{"command":"git.checkout","group":"1_header@4","when":"scmProvider == git"},{"command":"git.fetch","group":"1_header@5","when":"scmProvider == git"},{"submenu":"git.commit","group":"2_main@1","when":"scmProvider == git"},{"submenu":"git.changes","group":"2_main@2","when":"scmProvider == git"},{"submenu":"git.pullpush","group":"2_main@3","when":"scmProvider == git"},{"submenu":"git.branch","group":"2_main@4","when":"scmProvider == git"},{"submenu":"git.remotes","group":"2_main@5","when":"scmProvider == git"},{"submenu":"git.stash","group":"2_main@6","when":"scmProvider == git"},{"submenu":"git.tags","group":"2_main@7","when":"scmProvider == git"},{"submenu":"git.worktrees","group":"2_main@8","when":"scmProvider == git"},{"command":"git.showOutput","group":"3_footer","when":"scmProvider == git"}],"scm/sourceControl":[{"command":"git.close","group":"navigation@1","when":"scmProvider == git"},{"command":"git.closeOtherRepositories","group":"navigation@2","when":"scmProvider == git && gitOpenRepositoryCount > 1"},{"command":"git.openWorktree","group":"1_worktree@1","when":"scmProvider == git && scmProviderContext == worktree"},{"command":"git.openWorktreeInNewWindow","group":"1_worktree@2","when":"scmProvider == git && scmProviderContext == worktree"},{"command":"git.deleteWorktree2","group":"2_worktree@1","when":"scmProvider == git && scmProviderContext == worktree"}],"scm/artifactGroup/context":[{"command":"git.repositories.createBranch","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == branches"},{"command":"git.repositories.createTag","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == tags"},{"submenu":"git.repositories.stash","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == stashes"},{"command":"git.repositories.createWorktree","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == worktrees"}],"scm/artifact/context":[{"command":"git.repositories.checkout","group":"inline@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.stashApply","alt":"git.repositories.stashPop","group":"inline@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashView","group":"1_view@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashApply","group":"2_apply@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashPop","group":"2_apply@2","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashDrop","group":"3_drop@3","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashCopyBranchName","group":"4_copy@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.copyStashName","group":"4_copy@2","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.checkout","group":"1_checkout@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.checkoutDetached","group":"1_checkout@2","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.merge","group":"2_modify@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.rebase","group":"2_modify@2","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.createFrom","group":"3_modify@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.deleteBranch","group":"3_modify@2","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.deleteTag","group":"3_modify@1","when":"scmProvider == git && scmArtifactGroupId == tags"},{"command":"git.repositories.compareRef","group":"4_compare@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.copyCommitHash","group":"5_copy@2","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.copyBranchName","group":"5_copy@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.copyTagName","group":"5_copy@2","when":"scmProvider == git && scmArtifactGroupId == tags"},{"command":"git.repositories.openWorktreeInNewWindow","group":"inline@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.openWorktree","group":"1_open@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.openWorktreeInNewWindow","group":"1_open@2","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.deleteWorktree","group":"2_modify@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyCommitHash","group":"3_copy@2","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyBranchName","group":"3_copy@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyPath","group":"3_copy@3","when":"scmProvider == git && scmArtifactGroupId == worktrees"}],"scm/resourceGroup/context":[{"command":"git.stageAllMerge","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.stageAllMerge","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.unstageAll","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstageAll","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.viewStagedChanges","when":"scmProvider == git && scmResourceGroup == index","group":"inline@1"},{"command":"git.viewChanges","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@1"},{"command":"git.cleanAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"1_modification"},{"command":"git.stageAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"1_modification"},{"command":"git.cleanAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"inline@2"},{"command":"git.stageAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"inline@2"},{"command":"git.cleanAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"1_modification"},{"command":"git.stageAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"1_modification"},{"command":"git.cleanAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"inline@2"},{"command":"git.stageAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"inline@2"},{"command":"git.cleanAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.stageAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.viewUntrackedChanges","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@1"},{"command":"git.cleanAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.stageAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"}],"scm/resourceFolder/context":[{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification@3"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification@3"}],"scm/resourceState/context":[{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == merge","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == merge","group":"2_view@2"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == merge && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == merge && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == index","group":"2_view@2"},{"command":"git.compareWithWorkspace","when":"scmProvider == git && scmResourceGroup == index && scmResourceState == worktree","group":"worktree_diff"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == index && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == index && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.compareWithWorkspace","when":"scmProvider == git && scmResourceGroup == workingTree && scmResourceState == worktree","group":"worktree_diff"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification@3"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == workingTree","group":"2_view@2"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked && !gitFreshRepository","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked && !gitFreshRepository","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == untracked && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == untracked && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification@3"}],"scm/history/title":[{"command":"git.fetchAll","group":"navigation@900","when":"scmProvider == git"},{"command":"git.pullRef","group":"navigation@901","when":"scmProvider == git"},{"command":"git.pushRef","when":"scmProvider == git && scmCurrentHistoryItemRefHasRemote","group":"navigation@902"},{"command":"git.publish","when":"scmProvider == git && !scmCurrentHistoryItemRefHasRemote","group":"navigation@903"}],"scm/historyItem/context":[{"command":"git.graph.checkoutDetached","when":"scmProvider == git","group":"1_checkout@2"},{"command":"git.branch","when":"scmProvider == git","group":"2_branch@2"},{"command":"git.createTag","when":"scmProvider == git","group":"3_tag@1"},{"command":"git.graph.cherryPick","when":"scmProvider == git","group":"4_modify@1"},{"command":"git.graph.compareWithRemote","when":"scmProvider == git","group":"5_compare@1"},{"command":"git.graph.compareWithMergeBase","when":"scmProvider == git","group":"5_compare@2"},{"command":"git.graph.compareRef","when":"scmProvider == git","group":"5_compare@3"},{"command":"git.copyCommitId","when":"scmProvider == git && !listMultiSelection","group":"9_copy@1"},{"command":"git.copyCommitMessage","when":"scmProvider == git && !listMultiSelection","group":"9_copy@2"}],"scm/historyItemRef/context":[{"command":"git.graph.checkout","when":"scmProvider == git","group":"1_checkout@1"},{"command":"git.graph.deleteBranch","when":"scmProvider == git && scmHistoryItemRef =~ /^refs\\/heads\\/|^refs\\/remotes\\//","group":"2_branch@2"},{"command":"git.graph.deleteTag","when":"scmProvider == git && scmHistoryItemRef =~ /^refs\\/tags\\//","group":"3_tag@2"}],"editor/title":[{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme =~ /^git$|^file$/"},{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInNotebookTextDiffEditor && resourceScheme =~ /^git$|^file$/"},{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isInNotebookTextDiffEditor && resourceScheme == git"},{"command":"git.openChange","group":"navigation@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && scmActiveResourceHasChanges && !isSessionsWindow"},{"command":"git.stashApplyEditor","alt":"git.stashPopEditor","group":"navigation@1","when":"config.git.enabled && !git.missing && resourceScheme == git-stash"},{"command":"git.stashDropEditor","group":"navigation@2","when":"config.git.enabled && !git.missing && resourceScheme == git-stash"},{"command":"git.stage","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && git.activeResourceHasUnstagedChanges && !isSessionsWindow"},{"command":"git.unstage","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && git.activeResourceHasStagedChanges && !isSessionsWindow"},{"command":"git.stage","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"},{"command":"git.stageSelectedRanges","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"},{"command":"git.unstage","group":"2_git@3","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git && !isSessionsWindow"},{"command":"git.unstageSelectedRanges","group":"2_git@4","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git && !isSessionsWindow"},{"command":"git.revertSelectedRanges","group":"2_git@5","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"}],"editor/context":[{"command":"git.stageSelectedRanges","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file"},{"command":"git.unstageSelectedRanges","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git"},{"command":"git.revertSelectedRanges","group":"2_git@3","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file"}],"editor/content":[{"command":"git.acceptMerge","when":"isMergeResultEditor && mergeEditorBaseUri =~ /^(git|file):/ && mergeEditorResultUri in git.mergeChanges"},{"command":"git.openMergeEditor","group":"navigation@-10","when":"config.git.enabled && !git.missing && !isInDiffEditor && !isMergeEditor && resource in git.mergeChanges && git.activeResourceHasMergeConflicts"},{"command":"git.commitMessageAccept","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && editorLangId == git-commit"},{"command":"git.commitMessageDiscard","group":"secondary","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && editorLangId == git-commit"}],"multiDiffEditor/resource/title":[{"command":"git.stageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == workingTree"},{"command":"git.stageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == untracked"},{"command":"git.unstageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == index"}],"diffEditor/gutter/hunk":[{"command":"git.diff.stageHunk","group":"primary@10","when":"diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"}],"diffEditor/gutter/selection":[{"command":"git.diff.stageSelection","group":"primary@10","when":"diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"}],"scm/change/title":[{"command":"git.stageChange","when":"config.git.enabled && !git.missing && originalResource =~ /^git\\:.*%22ref%22%3A%22%22%7D$/"},{"command":"git.revertChange","when":"config.git.enabled && !git.missing && originalResource =~ /^git\\:.*%22ref%22%3A%22%22%7D$/"},{"command":"git.unstageChange","when":"false"}],"timeline/item/context":[{"command":"git.timeline.viewCommit","group":"inline","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.openDiff","group":"1_actions@1","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.viewCommit","group":"1_actions@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.compareWithSelected","group":"3_compare@1","when":"config.git.enabled && !git.missing && git.timeline.selectedForCompare && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.selectForCompare","group":"3_compare@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.copyCommitId","group":"5_copy@1","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.copyCommitMessage","group":"5_copy@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"}],"git.commit":[{"command":"git.commit","group":"1_commit@1"},{"command":"git.commitStaged","group":"1_commit@2"},{"command":"git.commitAll","group":"1_commit@3"},{"command":"git.undoCommit","group":"1_commit@4"},{"command":"git.rebaseAbort","group":"1_commit@5"},{"command":"git.commitNoVerify","group":"2_commit_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedNoVerify","group":"2_commit_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllNoVerify","group":"2_commit_noverify@3","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAmend","group":"3_amend@1"},{"command":"git.commitStagedAmend","group":"3_amend@2"},{"command":"git.commitAllAmend","group":"3_amend@3"},{"command":"git.commitAmendNoVerify","group":"4_amend_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedAmendNoVerify","group":"4_amend_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllAmendNoVerify","group":"4_amend_noverify@3","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitSigned","group":"5_signoff@1"},{"command":"git.commitStagedSigned","group":"5_signoff@2"},{"command":"git.commitAllSigned","group":"5_signoff@3"},{"command":"git.commitSignedNoVerify","group":"6_signoff_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedSignedNoVerify","group":"6_signoff_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllSignedNoVerify","group":"6_signoff_noverify@3","when":"config.git.allowNoVerifyCommit"}],"git.changes":[{"command":"git.stageAll","group":"changes@1"},{"command":"git.unstageAll","group":"changes@2"},{"command":"git.cleanAll","group":"changes@3"}],"git.pullpush":[{"command":"git.sync","group":"1_sync@1"},{"command":"git.syncRebase","when":"gitState == idle","group":"1_sync@2"},{"command":"git.pull","group":"2_pull@1"},{"command":"git.pullRebase","group":"2_pull@2"},{"command":"git.pullFrom","group":"2_pull@3"},{"command":"git.push","group":"3_push@1"},{"command":"git.pushForce","when":"config.git.allowForcePush","group":"3_push@2"},{"command":"git.pushTo","group":"3_push@3"},{"command":"git.pushToForce","when":"config.git.allowForcePush","group":"3_push@4"},{"command":"git.fetch","group":"4_fetch@1"},{"command":"git.fetchPrune","group":"4_fetch@2"},{"command":"git.fetchAll","group":"4_fetch@3"}],"git.branch":[{"command":"git.merge","group":"1_merge@1"},{"command":"git.rebase","group":"1_merge@2"},{"command":"git.branch","group":"2_branch@1"},{"command":"git.branchFrom","group":"2_branch@2"},{"command":"git.renameBranch","group":"3_modify@1"},{"command":"git.deleteBranch","group":"3_modify@2"},{"command":"git.deleteRemoteBranch","group":"3_modify@3"},{"command":"git.publish","group":"4_publish@1"}],"git.remotes":[{"command":"git.addRemote","group":"remote@1"},{"command":"git.removeRemote","group":"remote@2"}],"git.stash":[{"command":"git.stash","group":"1_stash@1"},{"command":"git.stashIncludeUntracked","group":"1_stash@2"},{"command":"git.stashStaged","when":"gitVersion2.35","group":"1_stash@3"},{"command":"git.stashApplyLatest","group":"2_apply@1"},{"command":"git.stashApply","group":"2_apply@2"},{"command":"git.stashPopLatest","group":"3_pop@1"},{"command":"git.stashPop","group":"3_pop@2"},{"command":"git.stashDrop","group":"4_drop@1"},{"command":"git.stashDropAll","group":"4_drop@2"},{"command":"git.stashView","group":"5_preview@1"}],"git.repositories.stash":[{"command":"git.stash","group":"1_stash@1"},{"command":"git.stashStaged","when":"gitVersion2.35","group":"2_stash@1"},{"command":"git.stashIncludeUntracked","group":"2_stash@2"}],"git.tags":[{"command":"git.createTag","group":"1_tags@1"},{"command":"git.deleteTag","group":"1_tags@2"},{"command":"git.deleteRemoteTag","group":"1_tags@3"},{"command":"git.pushTags","group":"2_tags@1"}],"git.worktrees":[{"when":"scmProviderContext == worktree","command":"git.openWorktree","group":"openWorktrees@1"},{"when":"scmProviderContext == worktree","command":"git.openWorktreeInNewWindow","group":"openWorktrees@2"},{"when":"scmProviderContext == repository","command":"git.createWorktree","group":"worktrees@1"},{"when":"scmProviderContext == worktree","command":"git.deleteWorktree2","group":"worktrees@2"}]},"submenus":[{"id":"git.commit","label":"Commit"},{"id":"git.changes","label":"Changes"},{"id":"git.pullpush","label":"Pull, Push"},{"id":"git.branch","label":"Branch"},{"id":"git.remotes","label":"Remote"},{"id":"git.stash","label":"Stash"},{"id":"git.tags","label":"Tags"},{"id":"git.worktrees","label":"Worktrees"},{"id":"git.repositories.stash","label":"Stash","icon":"$(plus)"}],"configuration":{"title":"Git","properties":{"git.enabled":{"type":"boolean","scope":"resource","description":"Whether Git is enabled.","default":true,"agentsWindow":{"default":true,"readOnly":true}},"git.path":{"type":["string","null","array"],"markdownDescription":"Path and filename of the git executable, e.g. `C:\\Program Files\\Git\\bin\\git.exe` (Windows). This can also be an array of string values containing multiple paths to look up.","default":null,"scope":"machine"},"git.autoRepositoryDetection":{"type":["boolean","string"],"enum":[true,false,"subFolders","openEditors"],"enumDescriptions":["Scan for both subfolders of the current opened folder and parent folders of open files.","Disable automatic repository scanning.","Scan for subfolders of the currently opened folder.","Scan for parent folders of open files."],"description":"Configures when repositories should be automatically detected.","default":true},"git.autorefresh":{"type":"boolean","description":"Whether auto refreshing is enabled.","default":true,"agentsWindow":{"default":true}},"git.autofetch":{"type":["boolean","string"],"enum":[true,false,"all"],"scope":"resource","markdownDescription":"When set to true, commits will automatically be fetched from the default remote of the current Git repository. Setting to `all` will fetch from all remotes.","default":false,"tags":["usesOnlineServices"],"agentsWindow":{"default":true}},"git.autofetchPeriod":{"type":"number","scope":"resource","markdownDescription":"Duration in seconds between each automatic git fetch, when `#git.autofetch#` is enabled.","default":180},"git.defaultBranchName":{"type":"string","markdownDescription":"The name of the default branch (example: main, trunk, development) when initializing a new Git repository. When set to empty, the default branch name configured in Git will be used. **Note:** Requires Git version `2.28.0` or later.","default":"main","scope":"resource"},"git.branchPrefix":{"type":"string","description":"Prefix used when creating a new branch.","default":"","scope":"resource"},"git.branchProtection":{"type":"array","markdownDescription":"List of protected branches. By default, a prompt is shown before changes are committed to a protected branch. The prompt can be controlled using the `#git.branchProtectionPrompt#` setting.","items":{"type":"string"},"default":[],"scope":"resource"},"git.branchProtectionPrompt":{"type":"string","description":"Controls whether a prompt is being shown before changes are committed to a protected branch.","enum":["alwaysCommit","alwaysCommitToNewBranch","alwaysPrompt"],"enumDescriptions":["Always commit changes to the protected branch.","Always commit changes to a new branch.","Always prompt before changes are committed to a protected branch."],"default":"alwaysPrompt","scope":"resource"},"git.branchValidationRegex":{"type":"string","description":"A regular expression to validate new branch names.","default":""},"git.branchWhitespaceChar":{"type":"string","description":"The character to replace whitespace in new branch names, and to separate segments of a randomly generated branch name.","default":"-"},"git.branchRandomName.enable":{"type":"boolean","description":"Controls whether a random name is generated when creating a new branch.","default":false,"scope":"resource","agentsWindow":{"default":true}},"git.branchRandomName.dictionary":{"type":"array","markdownDescription":"List of dictionaries used for the randomly generated branch name. Each value represents the dictionary used to generate the segment of the branch name. Supported dictionaries: `adjectives`, `animals`, `colors` and `numbers`.","items":{"type":"string","enum":["adjectives","animals","colors","numbers"],"enumDescriptions":["A random adjective","A random animal name","A random color name","A random number between 100 and 999"]},"minItems":1,"maxItems":5,"default":["adjectives","animals"],"scope":"resource"},"git.confirmSync":{"type":"boolean","description":"Confirm before synchronizing Git repositories.","default":true,"agentsWindow":{"default":false,"readOnly":true}},"git.confirmCommittedDelete":{"type":"boolean","description":"Confirm before deleting committed files with Git.","default":true},"git.countBadge":{"type":"string","enum":["all","tracked","off"],"enumDescriptions":["Count all changes.","Count only tracked changes.","Turn off counter."],"description":"Controls the Git count badge.","default":"all","scope":"resource"},"git.checkoutType":{"type":"array","items":{"type":"string","enum":["local","tags","remote"],"enumDescriptions":["Local branches","Tags","Remote branches"]},"uniqueItems":true,"markdownDescription":"Controls what type of Git refs are listed when running `Checkout to...`.","default":["local","remote","tags"]},"git.ignoreLegacyWarning":{"type":"boolean","description":"Ignores the legacy Git warning.","default":false},"git.ignoreMissingGitWarning":{"type":"boolean","description":"Ignores the warning when Git is missing.","default":false},"git.ignoreWindowsGit27Warning":{"type":"boolean","description":"Ignores the warning when Git 2.25 - 2.26 is installed on Windows.","default":false},"git.ignoreLimitWarning":{"type":"boolean","description":"Ignores the warning when there are too many changes in a repository.","default":false},"git.ignoreRebaseWarning":{"type":"boolean","description":"Ignores the warning when it looks like the branch might have been rebased when pulling.","default":false},"git.defaultCloneDirectory":{"type":["string","null"],"default":null,"scope":"machine","description":"The default location to clone a Git repository."},"git.useEditorAsCommitInput":{"type":"boolean","description":"Controls whether a full text editor will be used to author commit messages, whenever no message is provided in the commit input box.","default":true},"git.verboseCommit":{"type":"boolean","scope":"resource","markdownDescription":"Enable verbose output when `#git.useEditorAsCommitInput#` is enabled.","default":false},"git.enableSmartCommit":{"type":"boolean","scope":"resource","description":"Commit all changes when there are no staged changes.","default":false},"git.smartCommitChanges":{"type":"string","enum":["all","tracked"],"enumDescriptions":["Automatically stage all changes.","Automatically stage tracked changes only."],"scope":"resource","description":"Control which changes are automatically staged by Smart Commit.","default":"all"},"git.suggestSmartCommit":{"type":"boolean","scope":"resource","description":"Suggests to enable smart commit (commit all changes when there are no staged changes).","default":true},"git.enableCommitSigning":{"type":"boolean","scope":"resource","description":"Enables commit signing with GPG, X.509, or SSH.","default":false},"git.confirmEmptyCommits":{"type":"boolean","scope":"resource","description":"Always confirm the creation of empty commits for the 'Git: Commit Empty' command.","default":true},"git.decorations.enabled":{"type":"boolean","default":true,"description":"Controls whether Git contributes colors and badges to the Explorer and the Open Editors view."},"git.enableStatusBarSync":{"type":"boolean","default":true,"description":"Controls whether the Git Sync command appears in the status bar.","scope":"resource"},"git.followTagsWhenSync":{"type":"boolean","scope":"resource","default":false,"description":"Push all annotated tags when running the sync command."},"git.replaceTagsWhenPull":{"type":"boolean","scope":"resource","default":false,"description":"Automatically replace the local tags with the remote tags in case of a conflict when running the pull command."},"git.promptToSaveFilesBeforeStash":{"type":"string","enum":["always","staged","never"],"enumDescriptions":["Check for any unsaved files.","Check only for unsaved staged files.","Disable this check."],"scope":"resource","default":"always","description":"Controls whether Git should check for unsaved files before stashing changes."},"git.promptToSaveFilesBeforeCommit":{"type":"string","enum":["always","staged","never"],"enumDescriptions":["Check for any unsaved files.","Check only for unsaved staged files.","Disable this check."],"scope":"resource","default":"always","description":"Controls whether Git should check for unsaved files before committing."},"git.postCommitCommand":{"type":"string","enum":["none","push","sync"],"enumDescriptions":["Don't run any command after a commit.","Run 'git push' after a successful commit.","Run 'git pull' and 'git push' after a successful commit."],"markdownDescription":"Run a git command after a successful commit.","scope":"resource","default":"none","agentsWindow":{"default":"none","readOnly":true}},"git.rememberPostCommitCommand":{"type":"boolean","description":"Remember the last git command that ran after a commit.","scope":"resource","default":false,"agentsWindow":{"default":false,"readOnly":true}},"git.openAfterClone":{"type":"string","enum":["always","alwaysNewWindow","whenNoFolderOpen","prompt"],"enumDescriptions":["Always open in current window.","Always open in a new window.","Only open in current window when no folder is opened.","Always prompt for action."],"default":"prompt","description":"Controls whether to open a repository automatically after cloning."},"git.showInlineOpenFileAction":{"type":"boolean","default":true,"description":"Controls whether to show an inline Open File action in the Git changes view."},"git.showPushSuccessNotification":{"type":"boolean","description":"Controls whether to show a notification when a push is successful.","default":false},"git.inputValidation":{"type":"boolean","default":false,"description":"Controls whether to show commit message input validation diagnostics."},"git.inputValidationLength":{"type":"number","default":72,"description":"Controls the commit message length threshold for showing a warning."},"git.inputValidationSubjectLength":{"type":["number","null"],"default":50,"markdownDescription":"Controls the commit message subject length threshold for showing a warning. Unset it to inherit the value of `#git.inputValidationLength#`."},"git.detectSubmodules":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to automatically detect Git submodules."},"git.detectSubmodulesLimit":{"type":"number","scope":"resource","default":10,"description":"Controls the limit of Git submodules detected."},"git.detectWorktrees":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether to automatically detect Git worktrees.","agentsWindow":{"default":false}},"git.detectWorktreesLimit":{"type":"number","scope":"resource","default":50,"description":"Controls the limit of Git worktrees detected."},"git.worktreeIncludeFiles":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"Configure [glob patterns](https://aka.ms/vscode-glob-patterns) for files and folders that are included when creating a new worktree. Only files and folders that match the patterns and are listed in `.gitignore` will be copied to the newly created worktree.","scope":"resource","tags":["experimental"]},"git.alwaysShowStagedChangesResourceGroup":{"type":"boolean","scope":"resource","default":false,"description":"Always show the Staged Changes resource group."},"git.alwaysSignOff":{"type":"boolean","scope":"resource","default":false,"description":"Controls the signoff flag for all commits."},"git.addAICoAuthor":{"type":"string","enum":["off","chatAndAgent","all"],"enumDescriptions":["Never add the AI co-author trailer.","Add the AI co-author trailer when code from chat or agent edits is included.","Add the AI co-author trailer when any AI-generated code is included, such as inline completions, chat, or agent edits."],"scope":"resource","default":"off","description":"Controls whether a 'Co-authored-by' trailer is automatically added to the commit message when AI-generated code is included in the commit."},"git.ignoreSubmodules":{"type":"boolean","scope":"resource","default":false,"description":"Ignore modifications to submodules in the file tree."},"git.ignoredRepositories":{"type":"array","items":{"type":"string"},"default":[],"scope":"window","description":"List of Git repositories to ignore."},"git.scanRepositories":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","description":"List of paths to search for Git repositories in."},"git.showProgress":{"type":"boolean","description":"Controls whether Git actions should show progress.","default":true,"scope":"resource","agentsWindow":{"default":false,"readOnly":true}},"git.rebaseWhenSync":{"type":"boolean","scope":"resource","default":false,"description":"Force Git to use rebase when running the sync command."},"git.pullBeforeCheckout":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether a branch that does not have outgoing commits is fast-forwarded before it is checked out."},"git.fetchOnPull":{"type":"boolean","scope":"resource","default":false,"description":"When enabled, fetch all branches when pulling. Otherwise, fetch just the current one."},"git.pruneOnFetch":{"type":"boolean","scope":"resource","default":false,"description":"Prune when fetching."},"git.pullTags":{"type":"boolean","scope":"resource","default":true,"description":"Fetch all tags when pulling."},"git.autoStash":{"type":"boolean","scope":"resource","default":false,"description":"Stash any changes before pulling and restore them after successful pull."},"git.allowForcePush":{"type":"boolean","default":false,"description":"Controls whether force push (with or without lease) is enabled."},"git.useForcePushWithLease":{"type":"boolean","default":true,"description":"Controls whether force pushing uses the safer force-with-lease variant."},"git.useForcePushIfIncludes":{"type":"boolean","default":true,"markdownDescription":"Controls whether force pushing uses the safer force-if-includes variant. Note: This setting requires the `#git.useForcePushWithLease#` setting to be enabled, and Git version `2.30.0` or later."},"git.confirmForcePush":{"type":"boolean","default":true,"description":"Controls whether to ask for confirmation before force-pushing."},"git.allowNoVerifyCommit":{"type":"boolean","default":false,"description":"Controls whether commits without running pre-commit and commit-msg hooks are allowed."},"git.confirmNoVerifyCommit":{"type":"boolean","default":true,"description":"Controls whether to ask for confirmation before committing without verification."},"git.closeDiffOnOperation":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether the diff editor should be automatically closed when changes are stashed, committed, discarded, staged, or unstaged."},"git.openDiffOnClick":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the diff editor should be opened when clicking a change. Otherwise the regular editor will be opened."},"git.supportCancellation":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether a notification comes up when running the Sync action, which allows the user to cancel the operation."},"git.branchSortOrder":{"type":"string","enum":["committerdate","alphabetically"],"default":"committerdate","description":"Controls the sort order for branches."},"git.untrackedChanges":{"type":"string","enum":["mixed","separate","hidden"],"enumDescriptions":["All changes, tracked and untracked, appear together and behave equally.","Untracked changes appear separately in the Source Control view. They are also excluded from several actions.","Untracked changes are hidden and excluded from several actions."],"default":"mixed","description":"Controls how untracked changes behave.","scope":"resource"},"git.requireGitUserConfig":{"type":"boolean","description":"Controls whether to require explicit Git user configuration or allow Git to guess if missing.","default":true,"scope":"resource"},"git.showCommitInput":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to show the commit input in the Git source control panel."},"git.terminalAuthentication":{"type":"boolean","default":true,"description":"Controls whether to enable VS Code to be the authentication handler for Git processes spawned in the Integrated Terminal. Note: Terminals need to be restarted to pick up a change in this setting."},"git.terminalGitEditor":{"type":"boolean","default":false,"description":"Controls whether to enable VS Code to be the Git editor for Git processes spawned in the integrated terminal. Note: Terminals need to be restarted to pick up a change in this setting."},"git.useCommitInputAsStashMessage":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether to use the message from the commit input box as the default stash message."},"git.useIntegratedAskPass":{"type":"boolean","default":true,"description":"Controls whether GIT_ASKPASS should be overwritten to use the integrated version."},"git.githubAuthentication":{"markdownDeprecationMessage":"This setting is now deprecated, please use `#github.gitAuthentication#` instead."},"git.timeline.date":{"type":"string","enum":["committed","authored"],"enumDescriptions":["Use the committed date","Use the authored date"],"default":"committed","description":"Controls which date to use for items in the Timeline view.","scope":"window"},"git.timeline.showAuthor":{"type":"boolean","default":true,"description":"Controls whether to show the commit author in the Timeline view.","scope":"window"},"git.timeline.showUncommitted":{"type":"boolean","default":false,"description":"Controls whether to show uncommitted changes in the Timeline view.","scope":"window"},"git.showActionButton":{"type":"object","additionalProperties":false,"description":"Controls whether an action button is shown in the Source Control view.","properties":{"commit":{"type":"boolean","description":"Show an action button to commit changes when the local branch has modified files ready to be committed."},"publish":{"type":"boolean","description":"Show an action button to publish the local branch when it does not have a tracking remote branch."},"sync":{"type":"boolean","description":"Show an action button to synchronize changes when the local branch is either ahead or behind the remote branch."}},"default":{"commit":true,"publish":true,"sync":true},"scope":"resource"},"git.statusLimit":{"type":"number","scope":"resource","default":10000,"description":"Controls how to limit the number of changes that can be parsed from Git status command. Can be set to 0 for no limit."},"git.repositoryScanIgnoredFolders":{"type":"array","items":{"type":"string"},"default":["node_modules"],"scope":"resource","markdownDescription":"List of folders that are ignored while scanning for Git repositories when `#git.autoRepositoryDetection#` is set to `true` or `subFolders`."},"git.repositoryScanMaxDepth":{"type":"number","scope":"resource","default":1,"markdownDescription":"Controls the depth used when scanning workspace folders for Git repositories when `#git.autoRepositoryDetection#` is set to `true` or `subFolders`. Can be set to `-1` for no limit."},"git.commandsToLog":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"List of git commands (ex: commit, push) that would have their `stdout` logged to the [git output](command:git.showOutput). If the git command has a client-side hook configured, the client-side hook's `stdout` will also be logged to the [git output](command:git.showOutput)."},"git.mergeEditor":{"type":"boolean","default":false,"markdownDescription":"Open the merge editor for files that are currently under conflict.","scope":"window"},"git.optimisticUpdate":{"type":"boolean","default":true,"markdownDescription":"Controls whether to optimistically update the state of the Source Control view after running git commands.","scope":"resource","tags":["experimental"]},"git.openRepositoryInParentFolders":{"type":"string","enum":["always","never","prompt"],"enumDescriptions":["Always open a repository in parent folders of workspaces or open files.","Never open a repository in parent folders of workspaces or open files.","Prompt before opening a repository the parent folders of workspaces or open files."],"default":"prompt","markdownDescription":"Control whether a repository in parent folders of workspaces or open files should be opened.","scope":"resource"},"git.similarityThreshold":{"type":"number","default":50,"minimum":0,"maximum":100,"markdownDescription":"Controls the threshold of the similarity index (the amount of additions/deletions compared to the file's size) for changes in a pair of added/deleted files to be considered a rename. **Note:** Requires Git version `2.18.0` or later.","scope":"resource"},"git.blame.editorDecoration.enabled":{"type":"boolean","default":false,"markdownDescription":"Controls whether to show blame information in the editor using editor decorations."},"git.blame.editorDecoration.template":{"type":"string","default":"${subject}, ${authorName} (${authorDateAgo})","markdownDescription":"Template for the blame information editor decoration. Supported variables:\n\n* `hash`: Commit hash\n\n* `hashShort`: First N characters of the commit hash according to `#git.commitShortHashLength#`\n\n* `subject`: First line of the commit message\n\n* `authorName`: Author name\n\n* `authorEmail`: Author email\n\n* `authorDate`: Author date\n\n* `authorDateAgo`: Time difference between now and the author date\n\n"},"git.blame.editorDecoration.disableHover":{"type":"boolean","default":false,"markdownDescription":"Controls whether to disable the blame information editor decoration hover."},"git.blame.statusBarItem.enabled":{"type":"boolean","default":true,"markdownDescription":"Controls whether to show blame information in the status bar."},"git.blame.statusBarItem.template":{"type":"string","default":"${authorName} (${authorDateAgo})","markdownDescription":"Template for the blame information status bar item. Supported variables:\n\n* `hash`: Commit hash\n\n* `hashShort`: First N characters of the commit hash according to `#git.commitShortHashLength#`\n\n* `subject`: First line of the commit message\n\n* `authorName`: Author name\n\n* `authorEmail`: Author email\n\n* `authorDate`: Author date\n\n* `authorDateAgo`: Time difference between now and the author date\n\n"},"git.blame.ignoreWhitespace":{"type":"boolean","default":false,"markdownDescription":"Controls whether to ignore whitespace changes when computing blame information."},"git.commitShortHashLength":{"type":"number","default":7,"minimum":7,"maximum":40,"markdownDescription":"Controls the length of the commit short hash.","scope":"resource"},"git.diagnosticsCommitHook.enabled":{"type":"boolean","default":false,"markdownDescription":"Controls whether to check for unresolved diagnostics before committing.","scope":"resource"},"git.diagnosticsCommitHook.sources":{"type":"object","additionalProperties":{"type":"string","enum":["error","warning","information","hint","none"]},"default":{"*":"error"},"markdownDescription":"Controls the list of sources (**Item**) and the minimum severity (**Value**) to be considered before committing. **Note:** To ignore diagnostics from a particular source, add the source to the list and set the minimum severity to `none`.","scope":"resource"},"git.discardUntrackedChangesToTrash":{"type":"boolean","default":true,"markdownDescription":"Controls whether discarding untracked changes moves the file(s) to the Recycle Bin (Windows), Trash (macOS, Linux) instead of deleting them permanently. **Note:** This setting has no effect when connected to a remote or when running in Linux as a snap package."},"git.showReferenceDetails":{"type":"boolean","default":true,"markdownDescription":"Controls whether to show the details of the last commit for Git refs in the checkout, branch, and tag pickers."}}},"colors":[{"id":"gitDecoration.addedResourceForeground","description":"Color for added resources.","defaults":{"light":"#587c0c","dark":"#81b88b","highContrast":"#a1e3ad","highContrastLight":"#374e06"}},{"id":"gitDecoration.modifiedResourceForeground","description":"Color for modified resources.","defaults":{"light":"#895503","dark":"#E2C08D","highContrast":"#E2C08D","highContrastLight":"#895503"}},{"id":"gitDecoration.deletedResourceForeground","description":"Color for deleted resources.","defaults":{"light":"#ad0707","dark":"#c74e39","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.renamedResourceForeground","description":"Color for renamed or copied resources.","defaults":{"light":"#007100","dark":"#73C991","highContrast":"#73C991","highContrastLight":"#007100"}},{"id":"gitDecoration.untrackedResourceForeground","description":"Color for untracked resources.","defaults":{"light":"#007100","dark":"#73C991","highContrast":"#73C991","highContrastLight":"#007100"}},{"id":"gitDecoration.ignoredResourceForeground","description":"Color for ignored resources.","defaults":{"light":"#8E8E90","dark":"#8C8C8C","highContrast":"#A7A8A9","highContrastLight":"#8e8e90"}},{"id":"gitDecoration.stageModifiedResourceForeground","description":"Color for modified resources which have been staged.","defaults":{"light":"#895503","dark":"#E2C08D","highContrast":"#E2C08D","highContrastLight":"#895503"}},{"id":"gitDecoration.stageDeletedResourceForeground","description":"Color for deleted resources which have been staged.","defaults":{"light":"#ad0707","dark":"#c74e39","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.conflictingResourceForeground","description":"Color for resources with conflicts.","defaults":{"light":"#ad0707","dark":"#e4676b","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.submoduleResourceForeground","description":"Color for submodule resources.","defaults":{"light":"#1258a7","dark":"#8db9e2","highContrast":"#8db9e2","highContrastLight":"#1258a7"}},{"id":"git.blame.editorDecorationForeground","description":"Color for the blame editor decoration.","defaults":{"dark":"editorInlayHint.foreground","light":"editorInlayHint.foreground","highContrast":"editorInlayHint.foreground","highContrastLight":"editorInlayHint.foreground"}}],"configurationDefaults":{"[git-commit]":{"editor.rulers":[50,72],"editor.wordWrap":"off","workbench.editor.restoreViewState":false},"[git-rebase]":{"workbench.editor.restoreViewState":false}},"viewsWelcome":[{"view":"scm","contents":"If you would like to use Git features, please enable Git in your [settings](command:workbench.action.openSettings?%5B%22git.enabled%22%5D).\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"!config.git.enabled"},{"view":"scm","contents":"Install Git, a popular source control system, to track code changes and collaborate with others. Learn more in our [Git guides](https://aka.ms/vscode-scm).","when":"config.git.enabled && git.missing && remoteName != ''"},{"view":"scm","contents":"[Download Git for macOS](https://git-scm.com/download/mac)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isMac"},{"view":"scm","contents":"[Download Git for Windows](https://git-scm.com/download/win)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isWindows"},{"view":"scm","contents":"Source control depends on Git being installed.\n[Download Git for Linux](https://git-scm.com/download/linux)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isLinux"},{"view":"scm","contents":"In order to use Git features, you can open a folder containing a Git repository or clone from a URL.\n[Open Folder](command:vscode.openFolder)\n[Clone Repository](command:git.cloneRecursive)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && workbenchState == empty && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0","enablement":"git.state == initialized","group":"2_open@1"},{"view":"scm","contents":"The workspace currently open doesn't have any folders containing Git repositories.\n[Add Folder to Workspace](command:workbench.action.addRootFolder)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && workbenchState == workspace && workspaceFolderCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0","enablement":"git.state == initialized","group":"2_open@1"},{"view":"scm","contents":"Scanning folder for Git repositories...","when":"config.git.enabled && !git.missing && workbenchState == folder && workspaceFolderCount != 0 && git.state != initialized"},{"view":"scm","contents":"Scanning workspace for Git repositories...","when":"config.git.enabled && !git.missing && workbenchState == workspace && workspaceFolderCount != 0 && git.state != initialized"},{"view":"scm","contents":"The folder currently open doesn't have a Git repository. You can initialize a repository which will enable source control features powered by Git.\n[Initialize Repository](command:git.init?%5Btrue%5D)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && workbenchState == folder && scm.providerCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0 && remoteName != 'codespaces'","group":"5_scm@1"},{"view":"scm","contents":"The workspace currently open doesn't have any folders containing Git repositories. You can initialize a repository on a folder which will enable source control features powered by Git.\n[Initialize Repository](command:git.init)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && workbenchState == workspace && workspaceFolderCount != 0 && scm.providerCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0 && remoteName != 'codespaces'","group":"5_scm@1"},{"view":"scm","contents":"A Git repository was found in the parent folders of the workspace or the open file(s).\n[Open Repository](command:git.openRepositoriesInParentFolders)\nUse the [git.openRepositoryInParentFolders](command:workbench.action.openSettings?%5B%22git.openRepositoryInParentFolders%22%5D) setting to control whether Git repositories in parent folders of workspaces or open files are opened. To learn more [read our docs](https://aka.ms/vscode-git-repository-in-parent-folders).","when":"config.git.enabled && !git.missing && git.state == initialized && git.parentRepositoryCount == 1"},{"view":"scm","contents":"Git repositories were found in the parent folders of the workspace or the open file(s).\n[Open Repository](command:git.openRepositoriesInParentFolders)\nUse the [git.openRepositoryInParentFolders](command:workbench.action.openSettings?%5B%22git.openRepositoryInParentFolders%22%5D) setting to control whether Git repositories in parent folders of workspace or open files are opened. To learn more [read our docs](https://aka.ms/vscode-git-repository-in-parent-folders).","when":"config.git.enabled && !git.missing && git.state == initialized && git.parentRepositoryCount > 1"},{"view":"scm","contents":"The detected Git repository is potentially unsafe as the folder is owned by someone other than the current user.\n[Manage Unsafe Repositories](command:git.manageUnsafeRepositories)\nTo learn more about unsafe repositories [read our docs](https://aka.ms/vscode-git-unsafe-repository).","when":"config.git.enabled && !git.missing && git.state == initialized && git.unsafeRepositoryCount == 1"},{"view":"scm","contents":"The detected Git repositories are potentially unsafe as the folders are owned by someone other than the current user.\n[Manage Unsafe Repositories](command:git.manageUnsafeRepositories)\nTo learn more about unsafe repositories [read our docs](https://aka.ms/vscode-git-unsafe-repository).","when":"config.git.enabled && !git.missing && git.state == initialized && git.unsafeRepositoryCount > 1"},{"view":"scm","contents":"A Git repository was found that was previously closed.\n[Reopen Closed Repository](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && git.closedRepositoryCount == 1"},{"view":"scm","contents":"Git repositories were found that were previously closed.\n[Reopen Closed Repositories](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && git.closedRepositoryCount > 1"},{"view":"explorer","contents":"You can clone a repository locally.\n[Clone Repository](command:git.clone 'Clone a repository once the Git extension has activated')","when":"config.git.enabled && git.state == initialized && scm.providerCount == 0","group":"5_scm@1"},{"view":"explorer","contents":"To learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && git.state == initialized && scm.providerCount == 0","group":"5_scm@10"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"allowScripts":{"@vscode/fs-copyfile@2.0.0":true},"originalEnabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","canonicalUriProvider","contribEditSessions","contribEditorContentMenu","contribMergeEditorMenus","contribMultiDiffEditorMenus","contribDiffEditorGutterToolBarMenus","contribSourceControlArtifactGroupMenu","contribSourceControlArtifactMenu","contribSourceControlHistoryItemMenu","contribSourceControlHistoryTitleMenu","contribSourceControlInputBoxMenu","contribSourceControlTitleMenu","contribViewsWelcome","editSessionIdentityProvider","envIsConnectionMetered","findFiles2","quickDiffProvider","quickPickSortByLabel","scmActionButton","scmArtifactProvider","scmHistoryProvider","scmMultiDiffEditor","scmProviderOptions","scmSelectedProvider","scmTextDocument","scmValidation","statusBarItemTooltip","taskRunOptions","tabInputMultiDiff","tabInputTextMerge","textEditorDiffInformation","timeline","workspaceTrust"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/git","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.git-base"},"manifest":{"name":"git-base","displayName":"Git Base","description":"Git static contributions and pickers.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Other"],"activationEvents":["*"],"main":"./dist/extension.js","browser":"./dist/browser/extension.js","icon":"resources/icons/git.png","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"commands":[{"command":"git-base.api.getRemoteSources","title":"Get Remote Sources","category":"Git Base API"}],"menus":{"commandPalette":[{"command":"git-base.api.getRemoteSources","when":"false"}]},"languages":[{"id":"git-commit","aliases":["Git Commit Message","git-commit"],"filenames":["COMMIT_EDITMSG","MERGE_MSG"],"configuration":"./languages/git-commit.language-configuration.json"},{"id":"git-rebase","aliases":["Git Rebase Message","git-rebase"],"filenames":["git-rebase-todo"],"filenamePatterns":["**/rebase-merge/done"],"configuration":"./languages/git-rebase.language-configuration.json"},{"id":"ignore","aliases":["Ignore","ignore"],"extensions":[".gitignore_global",".gitignore",".git-blame-ignore-revs"],"configuration":"./languages/ignore.language-configuration.json"}],"grammars":[{"language":"git-commit","scopeName":"text.git-commit","path":"./syntaxes/git-commit.tmLanguage.json"},{"language":"git-rebase","scopeName":"text.git-rebase","path":"./syntaxes/git-rebase.tmLanguage.json"},{"language":"ignore","scopeName":"source.ignore","path":"./syntaxes/ignore.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/git-base","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.github"},"manifest":{"name":"github","displayName":"GitHub","description":"GitHub features for VS Code","publisher":"vscode","license":"MIT","version":"0.0.1","engines":{"vscode":"^1.41.0"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","icon":"images/icon.png","categories":["Other"],"activationEvents":["*"],"extensionDependencies":["vscode.git-base"],"type":"module","main":"./dist/extension.js","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["canonicalUriProvider","chatSessionsProvider","contribEditSessions","contribShareMenu","contribSourceControlHistoryItemMenu","scmHistoryProvider","shareProvider","timeline"],"contributes":{"commands":[{"command":"github.publish","title":"Publish to GitHub"},{"command":"github.copyVscodeDevLink","title":"Copy vscode.dev Link"},{"command":"github.copyVscodeDevLinkFile","title":"Copy vscode.dev Link"},{"command":"github.copyVscodeDevLinkWithoutRange","title":"Copy vscode.dev Link"},{"command":"github.openOnVscodeDev","title":"Open in vscode.dev","icon":"$(globe)"},{"command":"github.graph.openOnGitHub","title":"Open on GitHub","icon":"$(github)"},{"command":"github.timeline.openOnGitHub","title":"Open on GitHub","icon":"$(github)"},{"command":"github.createPullRequest","title":"Create PR","icon":"$(git-pull-request)"},{"command":"github.openPullRequest","title":"Open PR","icon":"$(git-pull-request)"}],"continueEditSession":[{"command":"github.openOnVscodeDev","when":"github.hasGitHubRepo","qualifiedName":"Continue Working in vscode.dev","category":"Remote Repositories","remoteGroup":"virtualfs_44_vscode-vfs_2_web@2"}],"menus":{"commandPalette":[{"command":"github.publish","when":"git-base.gitEnabled && workspaceFolderCount != 0 && remoteName != 'codespaces'"},{"command":"github.createPullRequest","when":"false"},{"command":"github.openPullRequest","when":"false"},{"command":"github.graph.openOnGitHub","when":"false"},{"command":"github.copyVscodeDevLink","when":"false"},{"command":"github.copyVscodeDevLinkFile","when":"false"},{"command":"github.copyVscodeDevLinkWithoutRange","when":"false"},{"command":"github.openOnVscodeDev","when":"false"},{"command":"github.timeline.openOnGitHub","when":"false"}],"file/share":[{"command":"github.copyVscodeDevLinkFile","when":"github.hasGitHubRepo && remoteName != 'codespaces'","group":"0_vscode@0"}],"editor/context/share":[{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'","group":"0_vscode@0"}],"explorer/context/share":[{"command":"github.copyVscodeDevLinkWithoutRange","when":"github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'","group":"0_vscode@0"}],"editor/lineNumber/context":[{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editors.files.textFileEditor && config.editor.lineNumbers == on && remoteName != 'codespaces'","group":"1_cutcopypaste@2"},{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editor.notebook && remoteName != 'codespaces'","group":"1_cutcopypaste@2"}],"editor/title/context/share":[{"command":"github.copyVscodeDevLinkWithoutRange","when":"github.hasGitHubRepo && resourceScheme != untitled && remoteName != 'codespaces'","group":"0_vscode@0"}],"scm/historyItem/context":[{"command":"github.graph.openOnGitHub","when":"github.hasGitHubRepo","group":"0_view@2"}],"timeline/item/context":[{"command":"github.timeline.openOnGitHub","group":"1_actions@3","when":"github.hasGitHubRepo && timelineItem =~ /git:file:commit\\b/"}],"agents/changes/actions/primary":[]},"configuration":[{"title":"GitHub","properties":{"github.branchProtection":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to query repository rules for GitHub repositories"},"github.gitAuthentication":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to enable automatic GitHub authentication for git commands within VS Code."},"github.gitProtocol":{"type":"string","enum":["https","ssh"],"default":"https","description":"Controls which protocol is used to clone a GitHub repository"},"github.showAvatar":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to show the GitHub avatar of the commit author in various hovers (ex: Git blame, Timeline, Source Control Graph, etc.)"}}}],"viewsWelcome":[{"view":"scm","contents":"You can directly publish this folder to a GitHub repository. Once published, you'll have access to source control features powered by Git and GitHub.\n[$(github) Publish to GitHub](command:github.publish)","when":"config.git.enabled && git.state == initialized && workbenchState == folder && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0"},{"view":"scm","contents":"You can directly publish a workspace folder to a GitHub repository. Once published, you'll have access to source control features powered by Git and GitHub.\n[$(github) Publish to GitHub](command:github.publish)","when":"config.git.enabled && git.state == initialized && workbenchState == workspace && workspaceFolderCount != 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0"}],"markdown.previewStyles":["./markdown.css"]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["canonicalUriProvider","chatSessionsProvider","contribEditSessions","contribShareMenu","contribSourceControlHistoryItemMenu","scmHistoryProvider","shareProvider","timeline"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/github","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.github-authentication"},"manifest":{"name":"github-authentication","displayName":"GitHub Authentication","description":"GitHub Authentication Provider","publisher":"vscode","license":"MIT","version":"0.0.2","engines":{"vscode":"^1.41.0"},"icon":"images/icon.png","categories":["Other"],"api":"none","extensionKind":["ui","workspace"],"enabledApiProposals":["authIssuers","authProviderSpecific","authSessionAccountIcon"],"activationEvents":[],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","restrictedConfigurations":["github-enterprise.uri"]}},"contributes":{"authentication":[{"label":"GitHub","id":"github","authorizationServerGlobs":["https://github.com/login/oauth"]},{"label":"GitHub Enterprise Server","id":"github-enterprise","authorizationServerGlobs":["*"]}],"configuration":[{"title":"GHE.com & GitHub Enterprise Server Authentication","properties":{"github-enterprise.uri":{"type":"string","markdownDescription":"The URI for your GHE.com or GitHub Enterprise Server instance.\n\nExamples:\n* GHE.com: `https://octocat.ghe.com`\n* GitHub Enterprise Server: `https://github.octocat.com`\n\n> **Note:** This should _not_ be set to a GitHub.com URI. If your account exists on GitHub.com or is a GitHub Enterprise Managed User, you do not need any additional configuration and can simply log in to GitHub.","pattern":"^(?:$|(https?)://(?!github\\.com).*)"},"github-authentication.useElectronFetch":{"type":"boolean","default":true,"scope":"application","markdownDescription":"When true, uses Electron's built-in fetch function for HTTP requests. When false, uses the Node.js global fetch function. This setting only applies when running in the Electron environment. **Note:** A restart is required for this setting to take effect."},"github-authentication.preferDeviceCodeFlow":{"type":"boolean","default":false,"scope":"application","markdownDescription":"When true, prioritize the device code flow for authentication instead of other available flows. This is useful for environments like WSL where the local server or URL handler flows may not work as expected."}}}]},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","main":"./dist/extension.js","browser":"./dist/browser/extension.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["authIssuers","authProviderSpecific","authSessionAccountIcon"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/github-authentication","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.go"},"manifest":{"name":"go","displayName":"Go Language Basics","description":"Provides syntax highlighting and bracket matching in Go files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin worlpaker/go-syntax syntaxes/go.tmLanguage.json ./syntaxes/go.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"go","extensions":[".go"],"aliases":["Go"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"go","scopeName":"source.go","path":"./syntaxes/go.tmLanguage.json"}],"configurationDefaults":{"[go]":{"editor.insertSpaces":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/go","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.groovy"},"manifest":{"name":"groovy","displayName":"Groovy Language Basics","description":"Provides snippets, syntax highlighting and bracket matching in Groovy files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/groovy.tmbundle Syntaxes/Groovy.tmLanguage ./syntaxes/groovy.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"groovy","aliases":["Groovy","groovy"],"extensions":[".groovy",".gvy",".gradle",".jenkinsfile",".nf"],"filenames":["Jenkinsfile"],"filenamePatterns":["Jenkinsfile*"],"firstLine":"^#!.*\\bgroovy\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"groovy","scopeName":"source.groovy","path":"./syntaxes/groovy.tmLanguage.json"}],"snippets":[{"language":"groovy","path":"./snippets/groovy.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/groovy","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.grunt"},"manifest":{"name":"grunt","publisher":"vscode","description":"Extension to add Grunt capabilities to VS Code.","displayName":"Grunt support for VS Code","version":"10.0.0","private":true,"icon":"images/grunt.png","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:grunt"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"grunt","type":"object","title":"Grunt","properties":{"grunt.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Grunt task detection. Grunt task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"grunt","required":["task"],"properties":{"task":{"type":"string","description":"The Grunt task to customize."},"args":{"type":"array","description":"Command line arguments to pass to the grunt task"},"file":{"type":"string","description":"The Grunt file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/grunt","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.gulp"},"manifest":{"name":"gulp","publisher":"vscode","description":"Extension to add Gulp capabilities to VSCode.","displayName":"Gulp support for VSCode","version":"10.0.0","icon":"images/gulp.png","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:gulp"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"gulp","type":"object","title":"Gulp","properties":{"gulp.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Gulp task detection. Gulp task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"gulp","required":["task"],"properties":{"task":{"type":"string","description":"The Gulp task to customize."},"file":{"type":"string","description":"The Gulp file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/gulp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.handlebars"},"manifest":{"name":"handlebars","displayName":"Handlebars Language Basics","description":"Provides syntax highlighting and bracket matching in Handlebars files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin daaain/Handlebars grammars/Handlebars.json ./syntaxes/Handlebars.tmLanguage.json"},"categories":["Programming Languages"],"extensionKind":["ui","workspace"],"contributes":{"languages":[{"id":"handlebars","extensions":[".handlebars",".hbs",".hjs"],"aliases":["Handlebars","handlebars"],"mimetypes":["text/x-handlebars-template"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"handlebars","scopeName":"text.html.handlebars","path":"./syntaxes/Handlebars.tmLanguage.json"}],"htmlLanguageParticipants":[{"languageId":"handlebars","autoInsert":true}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/handlebars","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[[2,"property `extensionKind` can be defined only if property `main` is also defined."]],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.hlsl"},"manifest":{"name":"hlsl","displayName":"HLSL Language Basics","description":"Provides syntax highlighting and bracket matching in HLSL files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin tgjones/shaders-tmLanguage grammars/hlsl.json ./syntaxes/hlsl.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"hlsl","extensions":[".hlsl",".hlsli",".fx",".fxh",".vsh",".psh",".cginc",".compute"],"aliases":["HLSL","hlsl"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"hlsl","path":"./syntaxes/hlsl.tmLanguage.json","scopeName":"source.hlsl"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/hlsl","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.html"},"manifest":{"name":"html","displayName":"HTML Language Basics","description":"Provides syntax highlighting, bracket matching & snippets in HTML files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"html","extensions":[".html",".htm",".shtml",".xhtml",".xht",".mdoc",".jsp",".asp",".aspx",".jshtm",".volt",".ejs",".rhtml"],"aliases":["HTML","htm","html","xhtml"],"mimetypes":["text/html","text/x-jshtm","text/template","text/ng-template","application/xhtml+xml"],"configuration":"./language-configuration.json"}],"grammars":[{"scopeName":"text.html.basic","path":"./syntaxes/html.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.css":"css","source.js":"javascript","source.python":"python","source.smarty":"smarty"},"tokenTypes":{"meta.tag string.quoted":"other"}},{"language":"html","scopeName":"text.html.derivative","path":"./syntaxes/html-derivative.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.css":"css","source.js":"javascript","source.python":"python","source.smarty":"smarty"},"tokenTypes":{"meta.tag string.quoted":"other"}}],"snippets":[{"language":"html","path":"./snippets/html.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/html","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.html-language-features"},"manifest":{"name":"html-language-features","displayName":"HTML Language Features","description":"Provides rich language support for HTML and Handlebar files","version":"10.0.0","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.77.0"},"icon":"icons/html.png","activationEvents":["onLanguage:html","onLanguage:handlebars"],"enabledApiProposals":["extensionsAny"],"main":"./client/dist/node/htmlClientMain","browser":"./client/dist/browser/htmlClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"categories":["Programming Languages"],"contributes":{"configuration":{"id":"html","order":20,"type":"object","title":"HTML","properties":{"html.completion.attributeDefaultValue":{"type":"string","scope":"resource","enum":["doublequotes","singlequotes","empty"],"enumDescriptions":["Attribute value is set to \"\".","Attribute value is set to ''.","Attribute value is not set."],"default":"doublequotes","markdownDescription":"Controls the default value for attributes when completion is accepted."},"html.customData":{"type":"array","markdownDescription":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-html-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its HTML support for the custom HTML tags, attributes and attribute values you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","default":[],"items":{"type":"string"},"scope":"resource"},"html.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default HTML formatter."},"html.format.wrapLineLength":{"type":"integer","scope":"resource","default":120,"description":"Maximum amount of characters per line (0 = disable)."},"html.format.unformatted":{"type":["string","null"],"scope":"resource","default":"wbr","markdownDescription":"List of tags, comma separated, that shouldn't be reformatted. `null` defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content."},"html.format.contentUnformatted":{"type":["string","null"],"scope":"resource","default":"pre,code,textarea","markdownDescription":"List of tags, comma separated, where the content shouldn't be reformatted. `null` defaults to the `pre` tag."},"html.format.indentInnerHtml":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Indent `` and `` sections."},"html.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text."},"html.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk. Use `null` for unlimited."},"html.format.indentHandlebars":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Format and indent `{{#foo}}` and `{{/foo}}`."},"html.format.extraLiners":{"type":["string","null"],"scope":"resource","default":"head, body, /html","markdownDescription":"List of tags, comma separated, that should have an extra newline before them. `null` defaults to `\"head, body, /html\"`."},"html.format.wrapAttributes":{"type":"string","scope":"resource","default":"auto","enum":["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"],"enumDescriptions":["Wrap attributes only when line length is exceeded.","Wrap each attribute except first.","Wrap each attribute except first and keep aligned.","Wrap each attribute.","Wrap when line length is exceeded, align attributes vertically.","Preserve wrapping of attributes.","Preserve wrapping of attributes but align."],"description":"Wrap attributes."},"html.format.wrapAttributesIndentSize":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Indent wrapped attributes to after N characters. Use `null` to use the default indent size. Ignored if `#html.format.wrapAttributes#` is set to `aligned`."},"html.format.templating":{"type":"boolean","scope":"resource","default":false,"description":"Honor django, erb, handlebars and php templating language tags."},"html.format.unformattedContentDelimiter":{"type":"string","scope":"resource","default":"","markdownDescription":"Keep text content together between this string."},"html.suggest.html5":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support suggests HTML5 tags, properties and values."},"html.suggest.hideEndTagSuggestions":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether the built-in HTML language support suggests closing tags. When disabled, end tag completions like `` will not be shown."},"html.validate.scripts":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support validates embedded scripts."},"html.validate.styles":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support validates embedded styles."},"html.autoCreateQuotes":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Enable/disable auto creation of quotes for HTML attribute assignment. The type of quotes can be configured by `#html.completion.attributeDefaultValue#`."},"html.autoClosingTags":{"type":"boolean","scope":"resource","default":true,"description":"Enable/disable autoclosing of HTML tags."},"html.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show tag and attribute documentation in hover."},"html.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in hover."},"html.mirrorCursorOnMatchingTag":{"type":"boolean","scope":"resource","default":false,"description":"Enable/disable mirroring cursor on matching HTML tag.","deprecationMessage":"Deprecated in favor of `editor.linkedEditing`"},"html.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the HTML language server."}}},"configurationDefaults":{"[html]":{"editor.suggest.insertMode":"replace"},"[handlebars]":{"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.html-data.json","url":"https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json"},{"fileMatch":"package.json","url":"./schemas/package.schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["extensionsAny"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/html-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ini"},"manifest":{"name":"ini","displayName":"Ini Language Basics","description":"Provides syntax highlighting and bracket matching in Ini files.","version":"10.0.0","private":true,"publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/ini.tmbundle Syntaxes/Ini.plist ./syntaxes/ini.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"ini","extensions":[".ini"],"aliases":["Ini","ini"],"configuration":"./ini.language-configuration.json"},{"id":"properties","extensions":[".conf",".properties",".cfg",".directory",".gitattributes",".gitconfig",".gitmodules",".editorconfig",".repo"],"filenames":["gitconfig"],"filenamePatterns":["**/.config/git/config","**/.git/config"],"aliases":["Properties","properties"],"configuration":"./properties.language-configuration.json"}],"grammars":[{"language":"ini","scopeName":"source.ini","path":"./syntaxes/ini.tmLanguage.json"},{"language":"properties","scopeName":"source.ini","path":"./syntaxes/ini.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ini","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ipynb"},"manifest":{"name":"ipynb","displayName":".ipynb Support","description":"Provides basic support for opening and reading Jupyter's .ipynb notebook files","publisher":"vscode","version":"10.0.0","license":"MIT","icon":"media/icon.png","engines":{"vscode":"^1.57.0"},"enabledApiProposals":["diffContentOptions"],"activationEvents":["onNotebook:jupyter-notebook","onNotebookSerializer:interactive","onNotebookSerializer:repl"],"extensionKind":["workspace","ui"],"main":"./dist/ipynbMain.node.js","browser":"./dist/browser/ipynbMain.browser.js","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":[{"properties":{"ipynb.pasteImagesAsAttachments.enabled":{"type":"boolean","scope":"resource","markdownDescription":"Enable/disable pasting of images into Markdown cells in ipynb notebook files. Pasted images are inserted as attachments to the cell.","default":true},"ipynb.experimental.serialization":{"type":"boolean","scope":"resource","markdownDescription":"Experimental feature to serialize the Jupyter notebook in a worker thread.","default":true,"tags":["experimental"]}}}],"commands":[{"command":"ipynb.newUntitledIpynb","title":"New Jupyter Notebook","shortTitle":"Jupyter Notebook","category":"Create"},{"command":"ipynb.openIpynbInNotebookEditor","title":"Open IPYNB File In Notebook Editor"},{"command":"ipynb.cleanInvalidImageAttachment","title":"Clean Invalid Image Attachment Reference"},{"command":"notebook.cellOutput.copy","title":"Copy Cell Output","category":"Notebook"},{"command":"notebook.cellOutput.addToChat","title":"Add Cell Output to Chat","category":"Notebook","enablement":"chatIsEnabled"},{"command":"notebook.cellOutput.openInTextEditor","title":"Open Cell Output in Text Editor","category":"Notebook"}],"notebooks":[{"type":"jupyter-notebook","displayName":"Jupyter Notebook","selector":[{"filenamePattern":"*.ipynb"}],"priority":"default"}],"notebookRenderer":[{"id":"vscode.markdown-it-cell-attachment-renderer","displayName":"Markdown-It ipynb Cell Attachment renderer","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/cellAttachmentRenderer.js"}}],"menus":{"file/newFile":[{"command":"ipynb.newUntitledIpynb","group":"notebook"}],"commandPalette":[{"command":"ipynb.newUntitledIpynb"},{"command":"ipynb.openIpynbInNotebookEditor","when":"false"},{"command":"ipynb.cleanInvalidImageAttachment","when":"false"},{"command":"notebook.cellOutput.copy","when":"notebookCellHasOutputs"},{"command":"notebook.cellOutput.openInTextEditor","when":"false"}],"webview/context":[{"command":"notebook.cellOutput.copy","when":"webviewId == 'notebook.output' && webviewSection == 'image'","group":"context@1"},{"command":"notebook.cellOutput.copy","when":"webviewId == 'notebook.output' && webviewSection == 'text'"},{"command":"notebook.cellOutput.addToChat","when":"webviewId == 'notebook.output' && (webviewSection == 'text' || webviewSection == 'image')","group":"context@2"},{"command":"notebook.cellOutput.openInTextEditor","when":"webviewId == 'notebook.output' && webviewSection == 'text'"}]}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["diffContentOptions"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ipynb","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.jake"},"manifest":{"name":"jake","publisher":"vscode","description":"Extension to add Jake capabilities to VS Code.","displayName":"Jake support for VS Code","icon":"images/cowboy_hat.png","version":"10.0.0","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:jake"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"jake","type":"object","title":"Jake","properties":{"jake.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Jake task detection. Jake task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"jake","required":["task"],"properties":{"task":{"type":"string","description":"The Jake task to customize."},"file":{"type":"string","description":"The Jake file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/jake","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.java"},"manifest":{"name":"java","displayName":"Java Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Java files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin redhat-developer/vscode-java language-support/java/java.tmLanguage.json ./syntaxes/java.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"java","extensions":[".java",".jav"],"aliases":["Java","java"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"java","scopeName":"source.java","path":"./syntaxes/java.tmLanguage.json"}],"snippets":[{"language":"java","path":"./snippets/java.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/java","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.javascript"},"manifest":{"name":"javascript","displayName":"JavaScript Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in JavaScript files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Programming Languages"],"contributes":{"configurationDefaults":{"[javascript]":{"editor.maxTokenizationLineLength":2500}},"languages":[{"id":"javascriptreact","aliases":["JavaScript JSX","JavaScript React","jsx"],"extensions":[".jsx"],"configuration":"./javascript-language-configuration.json"},{"id":"javascript","aliases":["JavaScript","javascript","js"],"extensions":[".js",".es6",".mjs",".cjs",".pac"],"filenames":["jakefile"],"firstLine":"^#!.*\\bnode","mimetypes":["text/javascript"],"configuration":"./javascript-language-configuration.json"},{"id":"jsx-tags","aliases":[],"configuration":"./tags-language-configuration.json"}],"grammars":[{"language":"javascriptreact","scopeName":"source.js.jsx","path":"./syntaxes/JavaScriptReact.tmLanguage.json","embeddedLanguages":{"meta.tag.js":"jsx-tags","meta.tag.without-attributes.js":"jsx-tags","meta.tag.attributes.js.jsx":"javascriptreact","meta.embedded.expression.js":"javascriptreact"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"language":"javascript","scopeName":"source.js","path":"./syntaxes/JavaScript.tmLanguage.json","embeddedLanguages":{"meta.tag.js":"jsx-tags","meta.tag.without-attributes.js":"jsx-tags","meta.tag.attributes.js":"javascript","meta.embedded.expression.js":"javascript"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"scopeName":"source.js.regexp","path":"./syntaxes/Regular Expressions (JavaScript).tmLanguage"}],"semanticTokenScopes":[{"language":"javascript","scopes":{"property":["variable.other.property.js"],"property.readonly":["variable.other.constant.property.js"],"variable":["variable.other.readwrite.js"],"variable.readonly":["variable.other.constant.object.js"],"function":["entity.name.function.js"],"namespace":["entity.name.type.module.js"],"variable.defaultLibrary":["support.variable.js"],"function.defaultLibrary":["support.function.js"]}},{"language":"javascriptreact","scopes":{"property":["variable.other.property.jsx"],"property.readonly":["variable.other.constant.property.jsx"],"variable":["variable.other.readwrite.jsx"],"variable.readonly":["variable.other.constant.object.jsx"],"function":["entity.name.function.jsx"],"namespace":["entity.name.type.module.jsx"],"variable.defaultLibrary":["support.variable.js"],"function.defaultLibrary":["support.function.js"]}}],"snippets":[{"language":"javascript","path":"./snippets/javascript.code-snippets"},{"language":"javascriptreact","path":"./snippets/javascript.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/javascript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.json"},"manifest":{"name":"json","displayName":"JSON Language Basics","description":"Provides syntax highlighting & bracket matching in JSON files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"json","aliases":["JSON","json"],"extensions":[".json",".bowerrc",".jscsrc",".webmanifest",".js.map",".css.map",".ts.map",".har",".jslintrc",".jsonld",".geojson",".ipynb",".vuerc"],"filenames":["composer.lock",".watchmanconfig"],"mimetypes":["application/json","application/manifest+json"],"configuration":"./language-configuration.json"},{"id":"jsonc","aliases":["JSON with Comments"],"extensions":[".jsonc",".eslintrc",".eslintrc.json",".jsfmtrc",".jshintrc",".swcrc",".hintrc",".babelrc",".toolset.jsonc"],"filenames":["babel.config.json","bun.lock",".babelrc.json",".ember-cli","typedoc.json"],"filenamePatterns":["**/.github/hooks/*.json"],"configuration":"./language-configuration.json"},{"id":"jsonl","aliases":["JSON Lines"],"extensions":[".jsonl",".ndjson"],"filenames":[],"configuration":"./language-configuration.json"},{"id":"snippets","aliases":["Code Snippets"],"extensions":[".code-snippets"],"filenamePatterns":["**/User/snippets/*.json","**/User/profiles/*/snippets/*.json","**/snippets*.json"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"json","scopeName":"source.json","path":"./syntaxes/JSON.tmLanguage.json"},{"language":"jsonc","scopeName":"source.json.comments","path":"./syntaxes/JSONC.tmLanguage.json"},{"language":"jsonl","scopeName":"source.json.lines","path":"./syntaxes/JSONL.tmLanguage.json"},{"language":"snippets","scopeName":"source.json.comments.snippets","path":"./syntaxes/snippets.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/json","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.json-language-features"},"manifest":{"name":"json-language-features","displayName":"JSON Language Features","description":"Provides rich language support for JSON files.","version":"10.0.0","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.77.0"},"enabledApiProposals":["extensionsAny"],"icon":"icons/json.png","activationEvents":["onLanguage:json","onLanguage:jsonc","onLanguage:snippets","onCommand:json.validate"],"main":"./client/dist/node/jsonClientMain","browser":"./client/dist/browser/jsonClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","description":"The extension requires workspace trust to load schemas from http and https."}},"categories":["Programming Languages"],"contributes":{"configuration":{"id":"json","order":20,"type":"object","title":"JSON","properties":{"json.schemas":{"type":"array","scope":"resource","description":"Associate schemas to JSON files in the current project.","items":{"type":"object","default":{"fileMatch":["/myfile"],"url":"schemaURL"},"properties":{"url":{"type":"string","default":"/user.schema.json","markdownDescription":"A URL or absolute file path to a schema. Can be a relative path (starting with `./`) in workspace and workspace folder settings."},"fileMatch":{"type":"array","items":{"type":"string","default":"MyFile.json","markdownDescription":"A file pattern that can contain `*` and `**` to match against when resolving JSON files to schemas. When beginning with `!`, it defines an exclusion pattern."},"minItems":1,"markdownDescription":"An array of file patterns to match against when resolving JSON files to schemas. `*` and `**` can be used as a wildcard. Exclusion patterns can also be defined and start with `!`. A file matches when there is at least one matching pattern and the last matching pattern is not an exclusion pattern."},"schema":{"$ref":"http://json-schema.org/draft-07/schema#","description":"The schema definition for the given URL. The schema only needs to be provided to avoid accesses to the schema URL."}}}},"json.validate.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable JSON validation."},"json.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default JSON formatter"},"json.format.keepLines":{"type":"boolean","scope":"window","default":false,"description":"Keep all existing new lines when formatting."},"json.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the JSON language server."},"json.colorDecorators.enable":{"type":"boolean","scope":"window","default":true,"description":"Enables or disables color decorators","deprecationMessage":"The setting `json.colorDecorators.enable` has been deprecated in favor of `editor.colorDecorators`."},"json.maxItemsComputed":{"type":"number","default":5000,"description":"The maximum number of outline symbols and folding regions computed (limited for performance reasons)."},"json.schemaDownload.enable":{"type":"boolean","default":true,"description":"When enabled, JSON schemas can be fetched from http and https locations.","tags":["usesOnlineServices"]},"json.schemaDownload.trustedDomains":{"type":"object","default":{"https://schemastore.azurewebsites.net/":true,"https://raw.githubusercontent.com/microsoft/vscode/":true,"https://raw.githubusercontent.com/devcontainers/spec/":true,"https://www.schemastore.org/":true,"https://json.schemastore.org/":true,"https://json-schema.org/":true,"https://developer.microsoft.com/json-schemas/":true},"additionalProperties":{"type":"boolean"},"markdownDescription":"List of trusted domains for downloading JSON schemas over http(s). Use `*` to trust all domains. `*` can also be used as a wildcard in domain names.","tags":["usesOnlineServices"]}}},"configurationDefaults":{"[json]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"},"[jsonc]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"},"[snippets]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.schema.json","url":"http://json-schema.org/draft-07/schema#"}],"jsonValidationRegistry":[{"url":"vscode://schemas-associations/schemas-associations.json"}],"commands":[{"command":"json.clearCache","title":"Clear Schema Cache","category":"JSON"},{"command":"json.sort","title":"Sort Document","category":"JSON"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["extensionsAny"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/json-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.julia"},"manifest":{"name":"julia","displayName":"Julia Language Basics","description":"Provides syntax highlighting & bracket matching in Julia files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin JuliaEditorSupport/atom-language-julia variants/julia_vscode.json ./syntaxes/julia.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"julia","aliases":["Julia","julia"],"extensions":[".jl"],"firstLine":"^#!\\s*/.*\\bjulia[0-9.-]*\\b","configuration":"./language-configuration.json"},{"id":"juliamarkdown","aliases":["Julia Markdown","juliamarkdown"],"extensions":[".jmd"]}],"grammars":[{"language":"julia","scopeName":"source.julia","path":"./syntaxes/julia.tmLanguage.json","embeddedLanguages":{"meta.embedded.inline.cpp":"cpp","meta.embedded.inline.javascript":"javascript","meta.embedded.inline.python":"python","meta.embedded.inline.r":"r","meta.embedded.inline.sql":"sql"}}],"configurationDefaults":{"[julia]":{"editor.defaultColorDecorators":"never"}}}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/julia","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.latex"},"manifest":{"name":"latex","displayName":"LaTeX Language Basics","description":"Provides syntax highlighting and bracket matching for TeX, LaTeX and BibTeX.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"tex","aliases":["TeX","tex"],"extensions":[".sty",".cls",".bbx",".cbx"],"configuration":"latex-language-configuration.json"},{"id":"latex","aliases":["LaTeX","latex"],"extensions":[".tex",".ltx",".ctx"],"configuration":"latex-language-configuration.json"},{"id":"bibtex","aliases":["BibTeX","bibtex"],"extensions":[".bib"]},{"id":"cpp_embedded_latex","configuration":"latex-cpp-embedded-language-configuration.json","aliases":[]},{"id":"markdown_latex_combined","configuration":"markdown-latex-combined-language-configuration.json","aliases":[]}],"grammars":[{"language":"tex","scopeName":"text.tex","path":"./syntaxes/TeX.tmLanguage.json","unbalancedBracketScopes":["keyword.control.ifnextchar.tex","punctuation.math.operator.tex"]},{"language":"latex","scopeName":"text.tex.latex","path":"./syntaxes/LaTeX.tmLanguage.json","unbalancedBracketScopes":["keyword.control.ifnextchar.tex","punctuation.math.operator.tex"],"embeddedLanguages":{"source.cpp":"cpp_embedded_latex","source.css":"css","text.html":"html","source.java":"java","source.js":"javascript","source.julia":"julia","source.lua":"lua","source.python":"python","source.ruby":"ruby","source.ts":"typescript","text.xml":"xml","source.yaml":"yaml","meta.embedded.markdown_latex_combined":"markdown_latex_combined"}},{"language":"bibtex","scopeName":"text.bibtex","path":"./syntaxes/Bibtex.tmLanguage.json"},{"language":"markdown_latex_combined","scopeName":"text.tex.markdown_latex_combined","path":"./syntaxes/markdown-latex-combined.tmLanguage.json"},{"language":"cpp_embedded_latex","scopeName":"source.cpp.embedded.latex","path":"./syntaxes/cpp-grammar-bailout.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/latex","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.less"},"manifest":{"name":"less","displayName":"Less Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Less files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"less","aliases":["Less","less"],"extensions":[".less"],"mimetypes":["text/x-less","text/less"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"less","scopeName":"source.css.less","path":"./syntaxes/less.tmLanguage.json"}],"problemMatchers":[{"name":"lessc","label":"Lessc compiler","owner":"lessc","source":"less","fileLocation":"absolute","pattern":{"regexp":"(.*)\\sin\\s(.*)\\son line\\s(\\d+),\\scolumn\\s(\\d+)","message":1,"file":2,"line":3,"column":4}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/less","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.log"},"manifest":{"name":"log","displayName":"Log","description":"Provides syntax highlighting for files with .log extension.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin emilast/vscode-logfile-highlighter syntaxes/log.tmLanguage ./syntaxes/log.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"log","extensions":[".log","*.log.?"],"aliases":["Log"]}],"grammars":[{"language":"log","scopeName":"text.log","path":"./syntaxes/log.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/log","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.lua"},"manifest":{"name":"lua","displayName":"Lua Language Basics","description":"Provides syntax highlighting and bracket matching in Lua files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin sumneko/lua.tmbundle Syntaxes/Lua.plist ./syntaxes/lua.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"lua","extensions":[".lua"],"aliases":["Lua","lua"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"lua","scopeName":"source.lua","path":"./syntaxes/lua.tmLanguage.json","tokenTypes":{"comment.line.double-dash.doc.lua":"other"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/lua","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.make"},"manifest":{"name":"make","displayName":"Make Language Basics","description":"Provides syntax highlighting and bracket matching in Make files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin fadeevab/make.tmbundle Syntaxes/Makefile.plist ./syntaxes/make.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"makefile","aliases":["Makefile","makefile"],"extensions":[".mak",".mk"],"filenames":["Makefile","makefile","GNUmakefile","OCamlMakefile"],"firstLine":"^#!\\s*/usr/bin/make","configuration":"./language-configuration.json"}],"grammars":[{"language":"makefile","scopeName":"source.makefile","path":"./syntaxes/make.tmLanguage.json","tokenTypes":{"string.interpolated":"other"}}],"configurationDefaults":{"[makefile]":{"editor.insertSpaces":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/make","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown"},"manifest":{"name":"markdown","displayName":"Markdown Language Basics","description":"Provides snippets and syntax highlighting for Markdown.","version":"30.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.20.0"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"markdown","aliases":["Markdown","markdown"],"extensions":[".md",".mkd",".mkdn",".mdwn",".mdown",".markdown",".markdn",".mdtxt",".mdtext",".litcoffee",".ron",".ronn",".workbook"],"filenamePatterns":["**/.cursor/**/*.mdc"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"markdown","scopeName":"text.html.markdown","path":"./syntaxes/markdown.tmLanguage.json","embeddedLanguages":{"meta.embedded.block.html":"html","source.js":"javascript","source.css":"css","meta.embedded.block.frontmatter":"yaml","meta.embedded.block.css":"css","meta.embedded.block.ini":"ini","meta.embedded.block.java":"java","meta.embedded.block.lua":"lua","meta.embedded.block.makefile":"makefile","meta.embedded.block.perl":"perl","meta.embedded.block.r":"r","meta.embedded.block.ruby":"ruby","meta.embedded.block.php":"php","meta.embedded.block.sql":"sql","meta.embedded.block.vs_net":"vs_net","meta.embedded.block.xml":"xml","meta.embedded.block.xsl":"xsl","meta.embedded.block.yaml":"yaml","meta.embedded.block.dosbatch":"dosbatch","meta.embedded.block.clojure":"clojure","meta.embedded.block.coffee":"coffee","meta.embedded.block.c":"c","meta.embedded.block.cpp":"cpp","meta.embedded.block.diff":"diff","meta.embedded.block.dockerfile":"dockerfile","meta.embedded.block.go":"go","meta.embedded.block.groovy":"groovy","meta.embedded.block.pug":"jade","meta.embedded.block.ignore":"ignore","meta.embedded.block.javascript":"javascript","meta.embedded.block.json":"json","meta.embedded.block.jsonc":"jsonc","meta.embedded.block.jsonl":"jsonl","meta.embedded.block.latex":"latex","meta.embedded.block.less":"less","meta.embedded.block.objc":"objc","meta.embedded.block.scss":"scss","meta.embedded.block.perl6":"perl6","meta.embedded.block.powershell":"powershell","meta.embedded.block.python":"python","meta.embedded.block.restructuredtext":"restructuredtext","meta.embedded.block.rust":"rust","meta.embedded.block.scala":"scala","meta.embedded.block.shellscript":"shellscript","meta.embedded.block.typescript":"typescript","meta.embedded.block.typescriptreact":"typescriptreact","meta.embedded.block.csharp":"csharp","meta.embedded.block.fsharp":"fsharp"},"unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown","keyword.operator.relational.cs","keyword.operator.arrow.cs","punctuation.accessor.pointer.cs","keyword.operator.bitwise.shift.cs","keyword.operator.assignment.compound.bitwise.cs","keyword.operator.relational.ts","storage.type.function.arrow.ts","keyword.operator.bitwise.shift.ts","keyword.operator.assignment.compound.bitwise.ts","keyword.operator.relational.tsx","storage.type.function.arrow.tsx","keyword.operator.bitwise.shift.tsx","keyword.operator.assignment.compound.bitwise.tsx"]}],"snippets":[{"language":"markdown","path":"./snippets/markdown.code-snippets"}],"configurationDefaults":{"[markdown]":{"editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false}}},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin microsoft/vscode-markdown-tm-grammar syntaxes/markdown.tmLanguage ./syntaxes/markdown.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/markdown-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown-language-features"},"manifest":{"name":"markdown-language-features","displayName":"Markdown Language Features","description":"Provides rich language support for Markdown.","version":"10.0.0","icon":"icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["agentEditorComments","customEditorDiffs","documentDiff","documentSyntaxHighlighting","externalUriOpener","linkPresentation","textEditorDiffInformation"],"engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension","categories":["Programming Languages"],"activationEvents":["onLanguage:markdown","onLanguage:prompt","onLanguage:instructions","onLanguage:chatagent","onLanguage:skill","onCommand:markdown.api.render","onCommand:markdown.api.reloadPlugins","onWebviewPanel:markdown.preview"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","description":"Required for loading styles configured in the workspace.","restrictedConfigurations":["markdown.styles"]}},"contributes":{"linkPresentationProviders":[{"id":"markdown.gitCommitLinkPresentations","kind":"commit","uriPattern":"^(?:commit:[^?#]+|https?://[^\\s?#]+/(?:commit|-/commit)/[^/?#]+)(?:[?#].*)?$"},{"id":"markdown.workspaceFileLinkPresentations","kind":"file","uriPattern":"^(?:(?:file|vscode-remote|vscode-vfs):[^?#]*|(?!(?:[a-z][a-z0-9+.-]*:|#))[^?#]+)(?:[?#].*)?$"}],"notebookRenderer":[{"id":"vscode.markdown-it-renderer","displayName":"Markdown it renderer","entrypoint":"./notebook-out/index.js","mimeTypes":["text/markdown","text/latex","text/x-css","text/x-html","text/x-json","text/x-typescript","text/x-abap","text/x-apex","text/x-azcli","text/x-bat","text/x-cameligo","text/x-clojure","text/x-coffee","text/x-cpp","text/x-csharp","text/x-csp","text/x-css","text/x-dart","text/x-dockerfile","text/x-ecl","text/x-fsharp","text/x-go","text/x-graphql","text/x-handlebars","text/x-hcl","text/x-html","text/x-ini","text/x-java","text/x-javascript","text/x-julia","text/x-kotlin","text/x-less","text/x-lexon","text/x-lua","text/x-m3","text/x-markdown","text/x-mips","text/x-msdax","text/x-mysql","text/x-objective-c/objective","text/x-pascal","text/x-pascaligo","text/x-perl","text/x-pgsql","text/x-php","text/x-postiats","text/x-powerquery","text/x-powershell","text/x-pug","text/x-python","text/x-r","text/x-razor","text/x-redis","text/x-redshift","text/x-restructuredtext","text/x-ruby","text/x-rust","text/x-sb","text/x-scala","text/x-scheme","text/x-scss","text/x-shell","text/x-solidity","text/x-sophia","text/x-sql","text/x-st","text/x-swift","text/x-systemverilog","text/x-tcl","text/x-twig","text/x-typescript","text/x-vb","text/x-xml","text/x-yaml","application/json"]}],"commands":[{"command":"_markdown.copyImage","title":"Copy Image","category":"Markdown"},{"command":"_markdown.openImage","title":"Open Image","category":"Markdown"},{"command":"_markdown.openFrontMatterSettings","title":"Configure Frontmatter Visibility","category":"Markdown"},{"command":"markdown.showPreview","title":"Open Preview","category":"Markdown","icon":{"light":"./media/preview-light.svg","dark":"./media/preview-dark.svg"}},{"command":"markdown.showPreviewToSide","title":"Open Preview to the Side","category":"Markdown","icon":"$(open-preview)"},{"command":"markdown.showLockedPreviewToSide","title":"Open Locked Preview to the Side","category":"Markdown","icon":"$(open-preview)"},{"command":"markdown.showSource","title":"Open Source File","category":"Markdown","icon":"$(file-code)"},{"command":"markdown.showPreviewSecuritySelector","title":"Change Preview Security Settings","category":"Markdown"},{"command":"markdown.preview.refresh","title":"Refresh Preview","category":"Markdown"},{"command":"markdown.preview.toggleLock","title":"Toggle Preview Locking","category":"Markdown"},{"command":"markdown.findAllFileReferences","title":"Find File References","category":"Markdown"},{"command":"markdown.reopenAsPreview","title":"Open as Preview","category":"Markdown","icon":"$(preview)"},{"command":"markdown.reopenAsSource","title":"Reopen as source file","category":"Markdown","icon":"$(file-code)"},{"command":"markdown.togglePreview","title":"Toggle Preview","category":"Markdown"},{"command":"markdown.editor.insertLinkFromWorkspace","title":"Insert Link to File in Workspace","category":"Markdown","enablement":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !activeEditorIsReadonly"},{"command":"markdown.editor.insertImageFromWorkspace","title":"Insert Image from Workspace","category":"Markdown","enablement":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !activeEditorIsReadonly"},{"command":"markdown.editor.cursorLeft","title":"Move Cursor Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorRight","title":"Move Cursor Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorUp","title":"Move Cursor Up","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDown","title":"Move Cursor Down","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLeftSelect","title":"Select Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorRightSelect","title":"Select Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorUpSelect","title":"Select Up","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDownSelect","title":"Select Down","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordLeft","title":"Move Cursor Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordRight","title":"Move Cursor Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","title":"Select Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","title":"Select Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","title":"Move Cursor to Visual Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","title":"Move Cursor to Visual Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","title":"Select to Visual Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","title":"Select to Visual Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","title":"Move Cursor to Logical Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","title":"Move Cursor to Logical Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","title":"Select to Logical Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","title":"Select to Logical Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentStart","title":"Move Cursor to Document Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","title":"Move Cursor to Document End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","title":"Select to Document Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","title":"Select to Document End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.selectAll","title":"Select All","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLeft","title":"Delete Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteRight","title":"Delete Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteWordLeft","title":"Delete Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteWordRight","title":"Delete Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLineLeft","title":"Delete All Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLineRight","title":"Delete All Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.undo","title":"Undo","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.redo","title":"Redo","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertTab","title":"Insert Tab","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.outdent","title":"Outdent","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.toggleTabFocus","title":"Toggle Tab Key Moves Focus","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.smartEnter","title":"Insert Paragraph","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertHardLineBreak","title":"Insert Hard Line Break","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertParagraph","title":"Insert Paragraph Without Continuing Markup","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true}],"menus":{"webview/context":[{"command":"_markdown.copyImage","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && (webviewSection == 'image' || webviewSection == 'localImage')"},{"command":"_markdown.openImage","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && webviewSection == 'localImage'"},{"command":"_markdown.openFrontMatterSettings","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && webviewSection == 'frontMatter'"}],"editor/title":[{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview","alt":"markdown.showPreview","group":"navigation@1"},{"command":"markdown.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview && !isSessionsWindow","group":"navigation@2"},{"command":"markdown.showSource","when":"activeWebviewPanelId == 'markdown.preview'","group":"navigation@2"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor' && !activeCustomEditorTextDiff && !isSessionsWindow","group":"navigation@2"},{"command":"markdown.preview.refresh","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"},{"command":"markdown.preview.toggleLock","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"},{"command":"markdown.showPreviewSecuritySelector","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"}],"modalEditor/editorTitle":[{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview","alt":"markdown.showPreview","group":"navigation"},{"command":"markdown.reopenAsPreview","when":"(activeEditor == workbench.editors.files.textFileEditor || activeEditor == workbench.editors.textDiffEditor) && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview && !isSessionsWindow","group":"navigation"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor' && !activeCustomEditorTextDiff && !isSessionsWindow","group":"navigation"}],"explorer/context":[{"command":"markdown.showPreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !hasCustomMarkdownPreview","group":"navigation"},{"command":"markdown.findAllFileReferences","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/","group":"4_search"}],"editor/title/context":[{"command":"markdown.showPreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !hasCustomMarkdownPreview","group":"1_open"},{"command":"markdown.findAllFileReferences","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"}],"commandPalette":[{"command":"_markdown.openImage","when":"false"},{"command":"_markdown.copyImage","when":"false"},{"command":"markdown.showPreview","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showLockedPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showSource","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"navigation"},{"command":"markdown.showPreviewSecuritySelector","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.showPreviewSecuritySelector","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.preview.toggleLock","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.preview.refresh","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.preview.refresh","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.findAllFileReferences","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"},{"command":"markdown.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/","group":"navigation"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"navigation"},{"command":"markdown.togglePreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"},{"command":"markdown.editor.cursorLeft","when":"false","$generated":true},{"command":"markdown.editor.cursorRight","when":"false","$generated":true},{"command":"markdown.editor.cursorUp","when":"false","$generated":true},{"command":"markdown.editor.cursorDown","when":"false","$generated":true},{"command":"markdown.editor.cursorLeftSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorRightSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorUpSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDownSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorWordLeft","when":"false","$generated":true},{"command":"markdown.editor.cursorWordRight","when":"false","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentStart","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","when":"false","$generated":true},{"command":"markdown.editor.selectAll","when":"false","$generated":true},{"command":"markdown.editor.deleteLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteRight","when":"false","$generated":true},{"command":"markdown.editor.deleteWordLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteWordRight","when":"false","$generated":true},{"command":"markdown.editor.deleteLineLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteLineRight","when":"false","$generated":true},{"command":"markdown.editor.undo","when":"false","$generated":true},{"command":"markdown.editor.redo","when":"false","$generated":true},{"command":"markdown.editor.insertTab","when":"false","$generated":true},{"command":"markdown.editor.outdent","when":"false","$generated":true},{"command":"markdown.editor.toggleTabFocus","when":"false","$generated":true},{"command":"markdown.editor.smartEnter","when":"false","$generated":true},{"command":"markdown.editor.insertHardLineBreak","when":"false","$generated":true},{"command":"markdown.editor.insertParagraph","when":"false","$generated":true}]},"keybindings":[{"command":"markdown.showPreviewToSide","key":"ctrl+k v","mac":"cmd+k v","when":"editorFocus && editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.togglePreview","key":"shift+ctrl+v","mac":"shift+cmd+v","when":"!terminalFocus && ((editorFocus && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused) || activeCustomEditorId == 'vscode.markdown.preview.editor')"},{"command":"markdown.editor.cursorLeft","key":"ctrl+b","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLeft","key":"left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorRight","key":"ctrl+f","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorRight","key":"right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorUp","key":"ctrl+p","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorUp","key":"up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorDown","key":"ctrl+n","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDown","key":"down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorLeftSelect","key":"shift+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorRightSelect","key":"shift+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorUpSelect","key":"shift+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorDownSelect","key":"shift+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorWordLeft","key":"alt+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordLeft","key":"ctrl+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordRight","key":"alt+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordRight","key":"ctrl+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","key":"shift+alt+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","key":"ctrl+shift+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","key":"shift+alt+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","key":"ctrl+shift+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","key":"cmd+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","key":"home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","key":"cmd+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","key":"end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","key":"shift+cmd+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","key":"shift+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","key":"shift+cmd+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","key":"shift+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","key":"ctrl+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","key":"ctrl+e","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","key":"ctrl+shift+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","key":"ctrl+shift+e","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStart","key":"cmd+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStart","key":"ctrl+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","key":"cmd+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","key":"ctrl+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","key":"shift+cmd+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","key":"ctrl+shift+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","key":"shift+cmd+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","key":"ctrl+shift+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.selectAll","key":"cmd+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.selectAll","key":"ctrl+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"ctrl+h","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"ctrl+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteLeft","key":"shift+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteRight","key":"ctrl+d","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteRight","key":"ctrl+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteRight","key":"delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteWordLeft","key":"alt+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteWordLeft","key":"ctrl+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteWordRight","key":"alt+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteWordRight","key":"ctrl+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteLineLeft","key":"cmd+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLineRight","key":"cmd+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLineRight","key":"ctrl+k","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.undo","key":"cmd+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.undo","key":"ctrl+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.redo","key":"shift+cmd+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.redo","key":"ctrl+shift+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.redo","key":"ctrl+y","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.smartEnter","key":"enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.insertHardLineBreak","key":"shift+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.insertParagraph","key":"cmd+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.insertParagraph","key":"ctrl+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true}],"configuration":[{"title":"Language Features","order":20,"properties":{"markdown.experimental.richLinks.enabled":{"type":"boolean","default":true,"description":"Controls whether supported links in the Markdown editor are rendered as rich links with live metadata. Enabling this may make authenticated requests to services such as GitHub.","scope":"window","tags":["experimental","onExP"]},"markdown.links.openLocation":{"type":"string","default":"currentGroup","description":"Controls where links in Markdown files should be opened.","scope":"resource","enum":["currentGroup","beside"],"enumDescriptions":["Open links in the active editor group.","Open links beside the active editor."]},"markdown.suggest.paths.enabled":{"type":"boolean","default":true,"description":"Controls whether path suggestions are shown while writing links in Markdown files.","scope":"resource"},"markdown.suggest.paths.includeWorkspaceHeaderCompletions":{"type":"string","default":"onDoubleHash","scope":"resource","markdownDescription":"Enable suggestions for headers in other Markdown files in the current workspace. Accepting one of these suggestions inserts the full path to header in that file, for example: `[link text](/path/to/file.md#header)`.","enum":["never","onDoubleHash","onSingleOrDoubleHash"],"markdownEnumDescriptions":["Disable workspace header suggestions.","Enable workspace header suggestions after typing `##` in a path, for example: `[link text](##`.","Enable workspace header suggestions after typing either `##` or `#` in a path, for example: `[link text](#` or `[link text](##`."]},"markdown.editor.drop.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether dropping files into a Markdown editor while holding Shift inserts Markdown links. Requires enabling `#editor.dropIntoEditor.enabled#`.","default":"smart","enum":["always","smart","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not dropping into a code block or other special element. Use the drop widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.drop.copyIntoWorkspace":{"type":"string","markdownDescription":"Controls if files outside of the workspace that are dropped into a Markdown editor should be copied into the workspace.\n\nUse `#markdown.copyFiles.destination#` to configure where copied dropped files should be created","default":"mediaFiles","enum":["mediaFiles","never"],"markdownEnumDescriptions":["Try to copy external image and video files into the workspace.","Do not copy external files into the workspace."]},"markdown.editor.filePaste.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether pasting files into a Markdown editor creates Markdown links. Requires enabling `#editor.pasteAs.enabled#`.","default":"smart","enum":["always","smart","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.filePaste.copyIntoWorkspace":{"type":"string","markdownDescription":"Controls if files outside of the workspace that are pasted into a Markdown editor should be copied into the workspace.\n\nUse `#markdown.copyFiles.destination#` to configure where copied files should be created.","default":"mediaFiles","enum":["mediaFiles","never"],"markdownEnumDescriptions":["Try to copy external image and video files into the workspace.","Do not copy external files into the workspace."]},"markdown.editor.filePaste.videoSnippet":{"type":"string","markdownDescription":"Snippet used when adding videos to Markdown. This snippet can use the following variables:\n- `${src}` — The resolved path of the video file.\n- `${title}` — The title used for the video. A snippet placeholder will automatically be created for this variable.","default":""},"markdown.editor.filePaste.audioSnippet":{"type":"string","markdownDescription":"Snippet used when adding audio to Markdown. This snippet can use the following variables:\n- `${src}` — The resolved path of the audio file.\n- `${title}` — The title used for the audio. A snippet placeholder will automatically be created for this variable.","default":""},"markdown.editor.pasteUrlAsFormattedLink.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls if Markdown links are created when URLs are pasted into a Markdown editor. Requires enabling `#editor.pasteAs.enabled#`.","default":"smartWithSelection","enum":["always","smart","smartWithSelection","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Smartly create Markdown links by default when you have selected text and are not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.updateLinksOnPaste.enabled":{"type":"boolean","markdownDescription":"Enable/disable a paste option that updates links and reference in text that is copied and pasted between Markdown editors.\n\nTo use this feature, after pasting text that contains updatable links, just click on the Paste Widget and select `Paste and update pasted links`.","scope":"resource","default":true},"markdown.updateLinksOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each file move.","Always update links automatically.","Never try to update link and don't prompt."],"default":"never","markdownDescription":"Try to update links in Markdown files when a file is renamed/moved in the workspace. Use `#markdown.updateLinksOnFileMove.include#` to configure which files trigger link updates.","scope":"window"},"markdown.updateLinksOnFileMove.include":{"type":"array","markdownDescription":"Glob patterns that specifies files that trigger automatic link updates. See `#markdown.updateLinksOnFileMove.enabled#` for details about this feature.","scope":"window","items":{"type":"string","description":"The glob pattern to match file paths against. Set to true to enable the pattern."},"default":["**/*.{md,mkd,mdwn,mdown,markdown,markdn,mdtxt,mdtext,workbook}","**/*.{jpg,jpe,jpeg,png,bmp,gif,ico,webp,avif,tiff,svg,mp4}"]},"markdown.updateLinksOnFileMove.enableForDirectories":{"type":"boolean","default":true,"description":"Enable updating links when a directory is moved or renamed in the workspace.","scope":"window"},"markdown.occurrencesHighlight.enabled":{"type":"boolean","default":false,"description":"Controls whether link occurrences in the current document are highlighted.","scope":"resource"},"markdown.copyFiles.destination":{"type":"object","markdownDescription":"Configures the path and file name of files created by copy/paste or drag and drop. This is a map of globs that match against a Markdown document path to the destination path where the new file should be created.\n\nThe destination path may use the following variables:\n\n- `${documentDirName}` — Absolute parent directory path of the Markdown document, e.g. `/Users/me/myProject/docs`.\n- `${documentRelativeDirName}` — Relative parent directory path of the Markdown document, e.g. `docs`. This is the same as `${documentDirName}` if the file is not part of a workspace.\n- `${documentFileName}` — The full filename of the Markdown document, e.g. `README.md`.\n- `${documentBaseName}` — The basename of the Markdown document, e.g. `README`.\n- `${documentExtName}` — The extension of the Markdown document, e.g. `md`.\n- `${documentFilePath}` — Absolute path of the Markdown document, e.g. `/Users/me/myProject/docs/README.md`.\n- `${documentRelativeFilePath}` — Relative path of the Markdown document, e.g. `docs/README.md`. This is the same as `${documentFilePath}` if the file is not part of a workspace.\n- `${documentWorkspaceFolder}` — The workspace folder for the Markdown document, e.g. `/Users/me/myProject`. This is the same as `${documentDirName}` if the file is not part of a workspace.\n- `${fileName}` — The file name of the dropped file, e.g. `image.png`.\n- `${fileExtName}` — The extension of the dropped file, e.g. `png`.\n- `${unixTime}` — The current Unix timestamp in milliseconds.\n- `${isoTime}` — The current time in ISO 8601 format, e.g. '2025-06-06T08:40:32.123Z'.","additionalProperties":{"type":"string"}},"markdown.copyFiles.overwriteBehavior":{"type":"string","markdownDescription":"Controls if files created by drop or paste should overwrite existing files.","default":"nameIncrementally","enum":["nameIncrementally","overwrite"],"markdownEnumDescriptions":["If a file with the same name already exists, append a number to the file name, for example: `image.png` becomes `image-1.png`.","If a file with the same name already exists, overwrite it."]},"markdown.preferredMdPathExtensionStyle":{"type":"string","default":"auto","markdownDescription":"Controls if file extensions (for example `.md`) are added or not for links to Markdown files. This setting is used when file paths are added by tooling such as path completions or file renames.","enum":["auto","includeExtension","removeExtension"],"markdownEnumDescriptions":["For existing paths, try to maintain the file extension style. For new paths, add file extensions.","Prefer including the file extension. For example, path completions to a file named `file.md` will insert `file.md`.","Prefer removing the file extension. For example, path completions to a file named `file.md` will insert `file` without the `.md`."]}}},{"title":"Validation","order":22,"properties":{"markdown.validate.enabled":{"order":0,"type":"boolean","scope":"resource","description":"Controls whether error reporting is enabled in Markdown files.","default":false},"markdown.validate.referenceLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether reference links in Markdown files are validated, for example: `[link][ref]`. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fragmentLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether fragment links to headers in the current Markdown file are validated, for example: `[link](#header)`. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fileLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether links to other files in Markdown files are validated, for example `[link](/path/to/file.md)`. This checks that the target files exist. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fileLinks.markdownFragmentLinks":{"type":"string","scope":"resource","markdownDescription":"Validate the fragment part of links to headers in other files in Markdown files, for example: `[link](/path/to/file.md#header)`. Inherits the setting value from `#markdown.validate.fragmentLinks.enabled#` by default.","default":"inherit","enum":["inherit","ignore","warning","error"]},"markdown.validate.ignoredLinks":{"type":"array","scope":"resource","markdownDescription":"Configure links that should not be validated. For example adding `/about` would not validate the link `[about](/about)`, while the glob `/assets/**/*.svg` would let you skip validation for any link to `.svg` files under the `assets` directory.","items":{"type":"string"}},"markdown.validate.unusedLinkDefinitions.enabled":{"type":"string","scope":"resource","markdownDescription":"Validate link definitions that are unused in the current file.","default":"hint","enum":["ignore","hint","warning","error"]},"markdown.validate.duplicateLinkDefinitions.enabled":{"type":"string","scope":"resource","markdownDescription":"Validate duplicated definitions in the current file.","default":"warning","enum":["ignore","warning","error"]}}},{"title":"Preview","order":23,"properties":{"markdown.styles":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"A list of URLs or local paths to CSS style sheets to use from the Markdown preview. Relative paths are interpreted relative to the folder open in the Explorer. If there is no open folder, they are interpreted relative to the location of the Markdown file. All `\\` need to be written as `\\\\`.","scope":"resource"},"markdown.preview.breaks":{"type":"boolean","default":false,"markdownDescription":"Sets how line-breaks are rendered in the Markdown preview. Setting it to `true` creates a `
` for newlines inside paragraphs.","scope":"resource"},"markdown.preview.linkify":{"type":"boolean","default":true,"description":"Convert URL-like text to links in the Markdown preview.","scope":"resource"},"markdown.preview.typographer":{"type":"boolean","default":false,"description":"Enable some language-neutral replacement and quotes beautification in the Markdown preview.","scope":"resource"},"markdown.preview.fontFamily":{"type":"string","default":"-apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif","description":"Controls the font family used in the Markdown preview.","scope":"resource"},"markdown.preview.fontSize":{"type":"number","default":14,"description":"Controls the font size in pixels used in the Markdown preview.","scope":"resource"},"markdown.preview.lineHeight":{"type":"number","default":1.6,"description":"Controls the line height used in the Markdown preview. This number is relative to the font size.","scope":"resource"},"markdown.preview.scrollPreviewWithEditor":{"type":"boolean","default":true,"description":"When a Markdown editor is scrolled, update the view of the preview.","scope":"resource"},"markdown.preview.markEditorSelection":{"type":"boolean","default":false,"description":"Mark the current editor selection in the Markdown preview.","scope":"resource"},"markdown.preview.scrollEditorWithPreview":{"type":"boolean","default":true,"description":"When a Markdown preview is scrolled, update the view of the editor.","scope":"resource"},"markdown.preview.doubleClickToSwitchToEditor":{"type":"boolean","default":false,"description":"Double-click in the Markdown preview to switch to the editor.","scope":"resource"},"markdown.preview.openMarkdownLinks":{"type":"string","default":"inPreview","description":"Controls how links to other Markdown files in the Markdown preview should be opened.","scope":"resource","enum":["inPreview","inEditor"],"enumDescriptions":["Try to open links in the Markdown preview.","Try to open links in the editor."]},"markdown.preview.frontMatter":{"type":"string","default":"table","scope":"resource","markdownDescription":"Controls how YAML frontmatter (delimited by `---`) at the start of a Markdown file is rendered in the preview.","enum":["hide","codeBlock","table"],"enumDescriptions":["Do not render frontmatter.","Render frontmatter as a code block.","Render frontmatter as a table of keys and values."]}}},{"title":"Advanced","order":24,"properties":{"markdown.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the Markdown language server."},"markdown.server.log":{"type":"string","scope":"window","enum":["off","debug","trace"],"default":"off","description":"Controls the logging level of the Markdown language server."}}}],"configurationDefaults":{"[markdown]":{"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"off","other":"off"}}},"jsonValidation":[{"fileMatch":"package.json","url":"./schemas/package.schema.json"}],"markdown.previewStyles":["./media/markdown.css","./media/highlight.css"],"markdown.previewScripts":[{"path":"./media/index.js","type":"module"}],"customEditors":[{"viewType":"vscode.markdown.preview.editor","displayName":"Markdown Preview","priority":{"diffEditor":"option","textEditor":"option"},"selector":[{"filenamePattern":"*.md"}]},{"viewType":"vscode.markdown.editor","displayName":"Markdown Editor","priority":{"diffEditor":"explicit","textEditor":"option"},"selector":[{"filenamePattern":"*.md"}]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["agentEditorComments","customEditorDiffs","documentDiff","documentSyntaxHighlighting","externalUriOpener","linkPresentation","textEditorDiffInformation"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/markdown-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown-math"},"manifest":{"name":"markdown-math","displayName":"Markdown Math","description":"Adds math support to Markdown in notebooks.","version":"10.0.0","icon":"icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.54.0"},"categories":["Other","Programming Languages"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"main":"./dist/extension","browser":"./dist/browser/extension","activationEvents":[],"contributes":{"languages":[{"id":"markdown-math","aliases":[]}],"grammars":[{"language":"markdown-math","scopeName":"text.html.markdown.math","path":"./syntaxes/md-math.tmLanguage.json"},{"scopeName":"markdown.math.block","path":"./syntaxes/md-math-block.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex"}},{"scopeName":"markdown.math.inline","path":"./syntaxes/md-math-inline.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex","punctuation.definition.math.end.markdown":"latex"}},{"scopeName":"markdown.math.codeblock","path":"./syntaxes/md-math-fence.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex"}}],"notebookRenderer":[{"id":"vscode.markdown-it-katex-extension","displayName":"Markdown it KaTeX renderer","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/katex.js"}}],"markdown.markdownItPlugins":true,"markdown.previewStyles":["./notebook-out/katex.min.css","./preview-styles/index.css"],"configuration":[{"title":"Markdown Math","properties":{"markdown.math.enabled":{"type":"boolean","default":true,"description":"Enable/disable rendering math in the built-in Markdown preview."},"markdown.math.macros":{"type":"object","additionalProperties":{"type":"string"},"default":{},"description":"A collection of custom macros. Each macro is a key-value pair where the key is a new command name and the value is the expansion of the macro.","scope":"resource"}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/markdown-math","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.media-preview"},"manifest":{"name":"media-preview","displayName":"Media Preview","description":"Provides VS Code's built-in previews for images, audio, and video","extensionKind":["ui","workspace"],"version":"10.0.0","publisher":"vscode","icon":"icon.png","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension.js","categories":["Other"],"activationEvents":[],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"type":"object","title":"Media Previewer","properties":{"mediaPreview.video.autoPlay":{"type":"boolean","default":false,"markdownDescription":"Start playing videos on mute automatically."},"mediaPreview.video.loop":{"type":"boolean","default":false,"markdownDescription":"Loop videos over again automatically."}}},"customEditors":[{"viewType":"imagePreview.previewEditor","displayName":"Image Preview","priority":"builtin","selector":[{"filenamePattern":"*.{jpg,jpe,jpeg,png,bmp,gif,ico,webp,avif,svg}"}]},{"viewType":"vscode.audioPreview","displayName":"Audio Preview","priority":"builtin","selector":[{"filenamePattern":"*.{mp3,wav,ogg,oga}"}]},{"viewType":"vscode.videoPreview","displayName":"Video Preview","priority":"builtin","selector":[{"filenamePattern":"*.{mp4,webm}"}]}],"commands":[{"command":"imagePreview.zoomIn","title":"Zoom in","category":"Image Preview"},{"command":"imagePreview.zoomOut","title":"Zoom out","category":"Image Preview"},{"command":"imagePreview.copyImage","title":"Copy","category":"Image Preview"},{"command":"imagePreview.reopenAsPreview","title":"Reopen as image preview","category":"Image Preview","icon":"$(preview)"},{"command":"imagePreview.reopenAsText","title":"Reopen as source text","category":"Image Preview","icon":"$(go-to-file)"}],"menus":{"commandPalette":[{"command":"imagePreview.zoomIn","when":"activeCustomEditorId == 'imagePreview.previewEditor'","group":"1_imagePreview"},{"command":"imagePreview.zoomOut","when":"activeCustomEditorId == 'imagePreview.previewEditor'","group":"1_imagePreview"},{"command":"imagePreview.copyImage","when":"false"},{"command":"imagePreview.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceExtname == '.svg' && !hasCustomImagePreview","group":"navigation"},{"command":"imagePreview.reopenAsText","when":"activeCustomEditorId == 'imagePreview.previewEditor' && resourceExtname == '.svg'","group":"navigation"}],"webview/context":[{"command":"imagePreview.copyImage","when":"webviewId == 'imagePreview.previewEditor'"}],"editor/title":[{"command":"imagePreview.reopenAsPreview","when":"editorFocus && resourceExtname == '.svg' && !hasCustomImagePreview","group":"navigation"},{"command":"imagePreview.reopenAsText","when":"activeCustomEditorId == 'imagePreview.previewEditor' && resourceExtname == '.svg'","group":"navigation"}]}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/media-preview","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.merge-conflict"},"manifest":{"name":"merge-conflict","publisher":"vscode","displayName":"Merge Conflict","description":"Highlighting and commands for inline merge conflicts.","icon":"media/icon.png","version":"10.0.0","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.5.0"},"categories":["Other"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onStartupFinished"],"main":"./dist/mergeConflictMain","browser":"./dist/browser/mergeConflictMain","contributes":{"commands":[{"category":"Merge Conflict","title":"Accept All Current","original":"Accept All Current","command":"merge-conflict.accept.all-current","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept All Incoming","original":"Accept All Incoming","command":"merge-conflict.accept.all-incoming","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept All Both","original":"Accept All Both","command":"merge-conflict.accept.all-both","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Current","original":"Accept Current","command":"merge-conflict.accept.current","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Incoming","original":"Accept Incoming","command":"merge-conflict.accept.incoming","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Selection","original":"Accept Selection","command":"merge-conflict.accept.selection","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Both","original":"Accept Both","command":"merge-conflict.accept.both","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Next Conflict","original":"Next Conflict","command":"merge-conflict.next","enablement":"!isMergeEditor","icon":"$(arrow-down)"},{"category":"Merge Conflict","title":"Previous Conflict","original":"Previous Conflict","command":"merge-conflict.previous","enablement":"!isMergeEditor","icon":"$(arrow-up)"},{"category":"Merge Conflict","title":"Compare Current Conflict","original":"Compare Current Conflict","command":"merge-conflict.compare","enablement":"!isMergeEditor"}],"menus":{"scm/resourceState/context":[{"command":"merge-conflict.accept.all-current","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"merge-conflict.accept.all-incoming","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"}],"editor/title":[{"command":"merge-conflict.previous","group":"navigation@1","when":"!isMergeEditor && mergeConflictsCount && mergeConflictsCount != 0"},{"command":"merge-conflict.next","group":"navigation@2","when":"!isMergeEditor && mergeConflictsCount && mergeConflictsCount != 0"}]},"configuration":{"title":"Merge Conflict","properties":{"merge-conflict.codeLens.enabled":{"type":"boolean","description":"Create a CodeLens for merge conflict blocks within editor.","default":true},"merge-conflict.decorators.enabled":{"type":"boolean","description":"Create decorators for merge conflict blocks within editor.","default":true},"merge-conflict.autoNavigateNextConflict.enabled":{"type":"boolean","description":"Whether to automatically navigate to the next merge conflict after resolving a merge conflict.","default":false},"merge-conflict.diffViewPosition":{"type":"string","enum":["Current","Beside","Below"],"description":"Controls where the diff view should be opened when comparing changes in merge conflicts.","enumDescriptions":["Open the diff view in the current editor group.","Open the diff view next to the current editor group.","Open the diff view below the current editor group."],"default":"Current"}}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/merge-conflict","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.mermaid-markdown-features"},"manifest":{"name":"mermaid-markdown-features","displayName":"Mermaid Markdown Features","description":"Adds Mermaid diagram support to built-in chats, Markdown previews, and notebooks.","version":"10.0.0","publisher":"vscode","license":"MIT","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.104.0"},"enabledApiProposals":["chatOutputRenderer","chatParticipantPrivate"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"main":"./dist/extension","browser":"./dist/browser/extension","activationEvents":["onWebviewPanel:vscode.mermaid-markdown-features.preview"],"contributes":{"commands":[{"command":"_mermaid-markdown.resetPanZoom","title":"Reset Pan and Zoom"},{"command":"_mermaid-markdown.openInEditor","title":"Open Diagram in Editor"},{"command":"_mermaid-markdown.copySource","title":"Copy Diagram Source"}],"menus":{"commandPalette":[{"command":"_mermaid-markdown.resetPanZoom","when":"false"},{"command":"_mermaid-markdown.openInEditor","when":"false"},{"command":"_mermaid-markdown.copySource","when":"false"}],"webview/context":[{"command":"_mermaid-markdown.openInEditor","when":"webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || (webviewSection == 'mermaid' && (webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor' || webviewId == 'notebook.output'))","group":"navigation@1"},{"command":"_mermaid-markdown.copySource","when":"webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || webviewId == 'vscode.mermaid-markdown-features.preview' || (webviewSection == 'mermaid' && (webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor' || webviewId == 'notebook.output'))","group":"navigation@2"},{"command":"_mermaid-markdown.resetPanZoom","when":"!mermaidError && (webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || webviewId == 'vscode.mermaid-markdown-features.preview')","group":"navigation@3"}]},"configuration":{"title":"Mermaid","properties":{"markdown-mermaid.lightModeTheme":{"order":0,"type":"string","enum":["vscode","base","forest","dark","default","neutral"],"enumDescriptions":["Mermaid theme derived from the current VS Code color theme.","Built-in Mermaid theme. The only Mermaid theme that can be customized with theme variables.","Built-in Mermaid theme using shades of green.","Built-in Mermaid theme for dark backgrounds.","The default built-in Mermaid theme. Works well with light backgrounds.","Built-in Mermaid theme using a neutral grayscale palette. Suitable for black and white prints."],"default":"vscode","description":"Default Mermaid theme for light mode."},"markdown-mermaid.darkModeTheme":{"order":1,"type":"string","enum":["vscode","base","forest","dark","default","neutral"],"enumDescriptions":["Mermaid theme derived from the current VS Code color theme.","Built-in Mermaid theme. The only Mermaid theme that can be customized with theme variables.","Built-in Mermaid theme using shades of green.","Built-in Mermaid theme for dark backgrounds.","The default built-in Mermaid theme. Works well with light backgrounds.","Built-in Mermaid theme using a neutral grayscale palette. Suitable for black and white prints."],"default":"vscode","description":"Default Mermaid theme for dark mode."},"markdown-mermaid.languages":{"order":2,"type":"array","default":["mermaid"],"description":"Default languages in Markdown."},"markdown-mermaid.maxTextSize":{"order":3,"type":"number","default":50000,"description":"The maximum allowed size of the user's text diagram."},"markdown-mermaid.mouseNavigation.enabled":{"type":"string","description":"Controls when mouse-based navigation is enabled on Mermaid diagrams.","enum":["always","alt","never"],"default":"alt","markdownEnumDescriptions":["Always enable mouse navigation on Mermaid diagrams.","Only enable mouse navigation when holding down Alt (Option on macOS). Gestures such as pinch-to-zoom will still work without Alt.","Disable mouse navigation."]},"markdown-mermaid.controls.show":{"type":"string","description":"Controls showing UI controls on Mermaid diagrams.","enum":["never","onHoverOrFocus","always"],"enumDescriptions":["Never show controls.","Show zoom controls when hovering over or focusing a diagram.","Always show zoom controls."],"default":"onHoverOrFocus"},"markdown-mermaid.resizable":{"type":"boolean","default":true,"description":"Allow diagrams to be resized vertically by dragging the bottom edge."},"markdown-mermaid.maxHeight":{"type":"string","default":"","markdownDescription":"Maximum height for diagrams. Must be a CSS value with units such as `80vh` or `400px`. Leave empty to try to automatically size diagrams based on their content."}}},"markdown.previewScripts":[{"path":"./markdown-preview-out/index.js","type":"module"}],"notebookRenderer":[{"id":"vscode.markdown-it.mermaid-extension","displayName":"Markdown-It Mermaid Renderer","requiresMessaging":"optional","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/index.js"}}],"markdown.markdownItPlugins":true,"chatOutputRenderers":[{"viewType":"vscode.mermaid-markdown-features.chatOutputItem","mimeTypes":["text/vnd.mermaid"],"codeBlockLanguageIdentifiers":["mermaid"]}],"languageModelTools":[{"name":"renderMermaidDiagram","displayName":"Mermaid Renderer","toolReferenceName":"renderMermaidDiagram","legacyToolReferenceFullNames":["vscode.mermaid-chat-features/renderMermaidDiagram"],"canBeReferencedInPrompt":true,"modelDescription":"Renders a Mermaid diagram from Mermaid.js markup.","userDescription":"Render a Mermaid.js diagram from markup.","when":"chatSessionType == local","inputSchema":{"type":"object","properties":{"markup":{"type":"string","description":"The mermaid diagram markup to render as a Mermaid diagram. This should only be the markup of the diagram. Do not include a wrapping code block."},"title":{"type":"string","description":"A short title that describes the diagram."}}}}]},"overrides":{"lodash-es":"4.18.1"},"allowScripts":{"fsevents@2.3.3":true},"originalEnabledApiProposals":["chatOutputRenderer","chatParticipantPrivate"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/mermaid-markdown-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.microsoft-authentication"},"manifest":{"name":"microsoft-authentication","publisher":"vscode","license":"MIT","displayName":"Microsoft Account","description":"Microsoft authentication provider","version":"0.0.1","engines":{"vscode":"^1.42.0"},"icon":"media/icon.png","categories":["Other"],"activationEvents":[],"enabledApiProposals":["nativeWindowHandle","authIssuers","authenticationChallenges"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","restrictedConfigurations":["microsoft-sovereign-cloud.environment","microsoft-sovereign-cloud.customEnvironment"]}},"extensionKind":["ui","workspace"],"contributes":{"authentication":[{"label":"Microsoft","id":"microsoft","authorizationServerGlobs":["https://login.microsoftonline.com/*","https://login.microsoftonline.com/*/v2.0"]},{"label":"Microsoft Sovereign Cloud","id":"microsoft-sovereign-cloud"}],"configuration":[{"title":"Microsoft Sovereign Cloud","properties":{"microsoft-sovereign-cloud.environment":{"type":"string","markdownDescription":"The Sovereign Cloud to use for authentication. If you select `custom`, you must also set the `#microsoft-sovereign-cloud.customEnvironment#` setting.","enum":["ChinaCloud","USGovernment","custom"],"enumDescriptions":["Azure China","Azure US Government","A custom Microsoft Sovereign Cloud"]},"microsoft-sovereign-cloud.customEnvironment":{"type":"object","additionalProperties":true,"markdownDescription":"The custom configuration for the Sovereign Cloud to use with the Microsoft Sovereign Cloud authentication provider. This along with setting `#microsoft-sovereign-cloud.environment#` to `custom` is required to use this feature.","properties":{"name":{"type":"string","description":"The name of the custom Sovereign Cloud."},"portalUrl":{"type":"string","description":"The portal URL for the custom Sovereign Cloud."},"managementEndpointUrl":{"type":"string","description":"The management endpoint for the custom Sovereign Cloud."},"resourceManagerEndpointUrl":{"type":"string","description":"The resource manager endpoint for the custom Sovereign Cloud."},"activeDirectoryEndpointUrl":{"type":"string","description":"The Active Directory endpoint for the custom Sovereign Cloud."},"activeDirectoryResourceId":{"type":"string","description":"The Active Directory resource ID for the custom Sovereign Cloud."}},"required":["name","portalUrl","managementEndpointUrl","resourceManagerEndpointUrl","activeDirectoryEndpointUrl","activeDirectoryResourceId"]}}},{"title":"Microsoft","properties":{"microsoft-authentication.implementation":{"type":"string","default":"msal","enum":["msal","msal-no-broker"],"enumDescriptions":["Use the Microsoft Authentication Library (MSAL) to sign in with a Microsoft account.","Use the Microsoft Authentication Library (MSAL) to sign in with a Microsoft account using a browser. This is useful if you are having issues with the native broker."],"markdownDescription":"The authentication implementation to use for signing in with a Microsoft account.","tags":["onExP"]}}}]},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","main":"./dist/extension.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"allowScripts":{"@azure/msal-node-runtime@0.20.1":true,"@azure/msal-node-extensions@5.3.2":true},"originalEnabledApiProposals":["nativeWindowHandle","authIssuers","authenticationChallenges"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/microsoft-authentication","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.js-debug"},"manifest":{"name":"js-debug","displayName":"JavaScript Debugger","version":"1.117.0","publisher":"ms-vscode","author":{"name":"Microsoft Corporation"},"keywords":["pwa","javascript","node","chrome","debugger"],"description":"An extension for debugging Node.js programs and Chrome.","license":"MIT","engines":{"vscode":"^1.80.0","node":">=10"},"icon":"resources/logo.png","categories":["Debuggers"],"private":true,"repository":{"type":"git","url":"https://github.com/Microsoft/vscode-pwa.git"},"bugs":{"url":"https://github.com/Microsoft/vscode-pwa/issues"},"main":"./src/extension.js","enabledApiProposals":["portsAttributes","workspaceTrust","tunnels","browser"],"extensionKind":["workspace"],"overrides":{"serialize-javascript":">=7.0.5"},"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":"limited","description":"Trust is required to debug code in this workspace."}},"activationEvents":["onDebugDynamicConfigurations","onDebugInitialConfigurations","onFileSystem:jsDebugNetworkFs","onDebugResolve:pwa-node","onDebugResolve:node-terminal","onDebugResolve:pwa-extensionHost","onDebugResolve:pwa-chrome","onDebugResolve:pwa-msedge","onDebugResolve:pwa-editor-browser","onDebugResolve:node","onDebugResolve:chrome","onDebugResolve:extensionHost","onDebugResolve:msedge","onDebugResolve:editor-browser","onCommand:extension.js-debug.clearAutoAttachVariables","onCommand:extension.js-debug.setAutoAttachVariables","onCommand:extension.js-debug.autoAttachToProcess","onCommand:extension.js-debug.pickNodeProcess","onCommand:extension.js-debug.requestCDPProxy","onCommand:extension.js-debug.completion.nodeTool"],"contributes":{"menus":{"commandPalette":[{"command":"extension.js-debug.prettyPrint","title":"Pretty print for debugging","when":"debugType == pwa-extensionHost && debugState == stopped || debugType == node-terminal && debugState == stopped || debugType == pwa-node && debugState == stopped || debugType == pwa-chrome && debugState == stopped || debugType == pwa-msedge && debugState == stopped || debugType == pwa-editor-browser && debugState == stopped"},{"command":"extension.js-debug.startProfile","title":"Take Performance Profile","when":"debugType == pwa-extensionHost && inDebugMode && !jsDebugIsProfiling || debugType == node-terminal && inDebugMode && !jsDebugIsProfiling || debugType == pwa-node && inDebugMode && !jsDebugIsProfiling || debugType == pwa-chrome && inDebugMode && !jsDebugIsProfiling || debugType == pwa-msedge && inDebugMode && !jsDebugIsProfiling || debugType == pwa-editor-browser && inDebugMode && !jsDebugIsProfiling"},{"command":"extension.js-debug.stopProfile","title":"Stop Performance Profile","when":"debugType == pwa-extensionHost && inDebugMode && jsDebugIsProfiling || debugType == node-terminal && inDebugMode && jsDebugIsProfiling || debugType == pwa-node && inDebugMode && jsDebugIsProfiling || debugType == pwa-chrome && inDebugMode && jsDebugIsProfiling || debugType == pwa-msedge && inDebugMode && jsDebugIsProfiling || debugType == pwa-editor-browser && inDebugMode && jsDebugIsProfiling"},{"command":"extension.js-debug.revealPage","when":"false"},{"command":"extension.js-debug.debugLink","title":"Open Link","when":"!isWeb"},{"command":"extension.js-debug.createDiagnostics","title":"Diagnose Breakpoint Problems","when":"debugType == pwa-extensionHost && inDebugMode || debugType == node-terminal && inDebugMode || debugType == pwa-node && inDebugMode || debugType == pwa-chrome && inDebugMode || debugType == pwa-msedge && inDebugMode || debugType == pwa-editor-browser && inDebugMode"},{"command":"extension.js-debug.getDiagnosticLogs","title":"Save Diagnostic JS Debug Logs","when":"debugType == pwa-extensionHost && inDebugMode || debugType == node-terminal && inDebugMode || debugType == pwa-node && inDebugMode || debugType == pwa-chrome && inDebugMode || debugType == pwa-msedge && inDebugMode || debugType == pwa-editor-browser && inDebugMode"},{"command":"extension.js-debug.openEdgeDevTools","title":"Open Browser Devtools","when":"debugType == pwa-msedge"},{"command":"extension.js-debug.callers.add","title":"Exclude caller from pausing in the current location","when":"debugType == pwa-extensionHost && debugState == \"stopped\" || debugType == node-terminal && debugState == \"stopped\" || debugType == pwa-node && debugState == \"stopped\" || debugType == pwa-chrome && debugState == \"stopped\" || debugType == pwa-msedge && debugState == \"stopped\" || debugType == pwa-editor-browser && debugState == \"stopped\""},{"command":"extension.js-debug.callers.goToCaller","when":"false"},{"command":"extension.js-debug.callers.gotToTarget","when":"false"},{"command":"extension.js-debug.network.copyUri","when":"false"},{"command":"extension.js-debug.network.openBody","when":"false"},{"command":"extension.js-debug.network.openBodyInHex","when":"false"},{"command":"extension.js-debug.network.replayXHR","when":"false"},{"command":"extension.js-debug.network.viewRequest","when":"false"},{"command":"extension.js-debug.network.clear","when":"false"},{"command":"extension.js-debug.enableSourceMapStepping","when":"jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.disableSourceMapStepping","when":"!jsDebugIsMapSteppingDisabled"}],"debug/callstack/context":[{"command":"extension.js-debug.revealPage","group":"navigation","when":"debugType == pwa-chrome && callStackItemType == 'session' || debugType == pwa-msedge && callStackItemType == 'session' || debugType == pwa-editor-browser && callStackItemType == 'session'"},{"command":"extension.js-debug.toggleSkippingFile","group":"navigation","when":"debugType == pwa-extensionHost && callStackItemType == 'session' || debugType == node-terminal && callStackItemType == 'session' || debugType == pwa-node && callStackItemType == 'session' || debugType == pwa-chrome && callStackItemType == 'session' || debugType == pwa-msedge && callStackItemType == 'session' || debugType == pwa-editor-browser && callStackItemType == 'session'"},{"command":"extension.js-debug.startProfile","group":"navigation","when":"debugType == pwa-extensionHost && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == node-terminal && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-node && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-chrome && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-msedge && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-editor-browser && !jsDebugIsProfiling && callStackItemType == 'session'"},{"command":"extension.js-debug.stopProfile","group":"navigation","when":"debugType == pwa-extensionHost && jsDebugIsProfiling && callStackItemType == 'session' || debugType == node-terminal && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-node && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-chrome && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-msedge && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-editor-browser && jsDebugIsProfiling && callStackItemType == 'session'"},{"command":"extension.js-debug.startProfile","group":"inline","when":"debugType == pwa-extensionHost && !jsDebugIsProfiling || debugType == node-terminal && !jsDebugIsProfiling || debugType == pwa-node && !jsDebugIsProfiling || debugType == pwa-chrome && !jsDebugIsProfiling || debugType == pwa-msedge && !jsDebugIsProfiling || debugType == pwa-editor-browser && !jsDebugIsProfiling"},{"command":"extension.js-debug.stopProfile","group":"inline","when":"debugType == pwa-extensionHost && jsDebugIsProfiling || debugType == node-terminal && jsDebugIsProfiling || debugType == pwa-node && jsDebugIsProfiling || debugType == pwa-chrome && jsDebugIsProfiling || debugType == pwa-msedge && jsDebugIsProfiling || debugType == pwa-editor-browser && jsDebugIsProfiling"},{"command":"extension.js-debug.callers.add","when":"debugType == pwa-extensionHost && callStackItemType == 'stackFrame' || debugType == node-terminal && callStackItemType == 'stackFrame' || debugType == pwa-node && callStackItemType == 'stackFrame' || debugType == pwa-chrome && callStackItemType == 'stackFrame' || debugType == pwa-msedge && callStackItemType == 'stackFrame' || debugType == pwa-editor-browser && callStackItemType == 'stackFrame'"}],"debug/toolBar":[{"command":"extension.js-debug.stopProfile","when":"debugType == pwa-extensionHost && jsDebugIsProfiling || debugType == node-terminal && jsDebugIsProfiling || debugType == pwa-node && jsDebugIsProfiling || debugType == pwa-chrome && jsDebugIsProfiling || debugType == pwa-msedge && jsDebugIsProfiling || debugType == pwa-editor-browser && jsDebugIsProfiling"},{"command":"extension.js-debug.openEdgeDevTools","when":"debugType == pwa-msedge"},{"command":"extension.js-debug.enableSourceMapStepping","when":"jsDebugIsMapSteppingDisabled"}],"view/title":[{"command":"extension.js-debug.addCustomBreakpoints","when":"view == jsBrowserBreakpoints","group":"navigation"},{"command":"extension.js-debug.removeAllCustomBreakpoints","when":"view == jsBrowserBreakpoints","group":"navigation"},{"command":"extension.js-debug.callers.removeAll","group":"navigation","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.disableSourceMapStepping","group":"navigation","when":"debugType == pwa-extensionHost && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == node-terminal && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-node && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-chrome && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-msedge && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-editor-browser && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.enableSourceMapStepping","group":"navigation","when":"debugType == pwa-extensionHost && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == node-terminal && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-node && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-chrome && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-msedge && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-editor-browser && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.network.clear","group":"navigation","when":"view == jsDebugNetworkTree"}],"view/item/context":[{"command":"extension.js-debug.addXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.editXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint","group":"inline"},{"command":"extension.js-debug.editXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.removeXHRBreakpoint","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint","group":"inline"},{"command":"extension.js-debug.removeXHRBreakpoint","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.addXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrCategory","group":"inline"},{"command":"extension.js-debug.callers.goToCaller","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.callers.gotToTarget","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.callers.remove","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.network.viewRequest","group":"inline@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.openBody","group":"body@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.openBodyInHex","group":"body@2","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.copyUri","group":"other@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.replayXHR","group":"other@2","when":"view == jsDebugNetworkTree"}],"editor/title":[{"command":"extension.js-debug.prettyPrint","group":"navigation","when":"jsDebugCanPrettyPrint"}]},"breakpoints":[{"language":"javascript"},{"language":"typescript"},{"language":"typescriptreact"},{"language":"javascriptreact"},{"language":"fsharp"},{"language":"html"},{"language":"wat"},{"language":"c"},{"language":"cpp"},{"language":"rust"},{"language":"zig"}],"debuggers":[{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","type":"string"},"attachExistingChildren":{"default":false,"description":"Whether to attempt to attach to already-spawned child processes.","type":"boolean"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"continueOnAttach":{"default":true,"markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","type":"boolean"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"port":{"default":9229,"description":"Debug port to attach to. Default is 9229.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"processId":{"default":"${command:PickProcess}","description":"ID of process to attach to.","type":"string"},"remoteHostHeader":{"description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header.","type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"websocketAddress":{"description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port.","type":"string"}}},"launch":{"properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[],"deprecated":"Please use type node instead","label":"Node.js","languages":["javascript","typescript","javascriptreact","typescriptreact"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-node","variables":{"PickProcess":"extension.js-debug.pickNodeProcess"}},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","type":"string"},"attachExistingChildren":{"default":false,"description":"Whether to attempt to attach to already-spawned child processes.","type":"boolean"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"continueOnAttach":{"default":true,"markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","type":"boolean"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"port":{"default":9229,"description":"Debug port to attach to. Default is 9229.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"processId":{"default":"${command:PickProcess}","description":"ID of process to attach to.","type":"string"},"remoteHostHeader":{"description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header.","type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"websocketAddress":{"description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port.","type":"string"}}},"launch":{"properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[{"body":{"name":"${1:Attach}","port":9229,"request":"attach","skipFiles":["/**"],"type":"node"},"description":"Attach to a running node program","label":"Node.js: Attach"},{"body":{"address":"${2:TCP/IP address of process to be debugged}","localRoot":"^\"\\${workspaceFolder}\"","name":"${1:Attach to Remote}","port":9229,"remoteRoot":"${3:Absolute path to the remote directory containing the program}","request":"attach","skipFiles":["/**"],"type":"node"},"description":"Attach to the debug port of a remote node program","label":"Node.js: Attach to Remote Program"},{"body":{"name":"${1:Attach by Process ID}","processId":"^\"\\${command:PickProcess}\"","request":"attach","skipFiles":["/**"],"type":"node"},"description":"Open process picker to select node process to attach to","label":"Node.js: Attach to Process"},{"body":{"name":"${2:Launch Program}","program":"^\"\\${workspaceFolder}/${1:app.js}\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Launch a node program in debug mode","label":"Node.js: Launch Program"},{"body":{"name":"${1:Launch via NPM}","request":"launch","runtimeArgs":["run-script","debug"],"runtimeExecutable":"npm","skipFiles":["/**"],"type":"node"},"label":"Node.js: Launch via npm","markdownDescription":"Launch a node program through an npm `debug` script"},{"body":{"console":"integratedTerminal","internalConsoleOptions":"neverOpen","name":"nodemon","program":"^\"\\${workspaceFolder}/${1:app.js}\"","request":"launch","restart":true,"runtimeExecutable":"nodemon","skipFiles":["/**"],"type":"node"},"description":"Use nodemon to relaunch a debug session on source changes","label":"Node.js: Nodemon Setup"},{"body":{"args":["-u","tdd","--timeout","999999","--colors","^\"\\${workspaceFolder}/${1:test}\""],"internalConsoleOptions":"openOnSessionStart","name":"Mocha Tests","program":"^\"mocha\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Debug mocha tests","label":"Node.js: Mocha Tests"},{"body":{"args":["${1:generator}"],"console":"integratedTerminal","internalConsoleOptions":"neverOpen","name":"Yeoman ${1:generator}","program":"^\"\\${workspaceFolder}/node_modules/yo/lib/cli.js\"","request":"launch","skipFiles":["/**"],"type":"node"},"label":"Node.js: Yeoman generator","markdownDescription":"Debug yeoman generator (install by running `npm link` in project folder)"},{"body":{"args":["${1:task}"],"name":"Gulp ${1:task}","program":"^\"\\${workspaceFolder}/node_modules/gulp/bin/gulp.js\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Debug gulp task (make sure to have a local gulp installed in your project)","label":"Node.js: Gulp task"},{"body":{"name":"Electron Main","program":"^\"\\${workspaceFolder}/main.js\"","request":"launch","runtimeExecutable":"^\"electron\"","skipFiles":["/**"],"type":"node"},"description":"Debug the Electron main process","label":"Node.js: Electron Main"}],"label":"Node.js","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"node","variables":{"PickProcess":"extension.js-debug.pickNodeProcess"}},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[{"body":{"command":"npm start","name":"Run npm start","request":"launch","type":"node-terminal"},"description":"Run \"npm start\" in a debug terminal","label":"Run \"npm start\" in a debug terminal"}],"label":"JavaScript Debug Terminal","languages":[],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"node-terminal"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"args":{"default":["--extensionDevelopmentPath=${workspaceFolder}"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":"array"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"debugWebWorkerHost":{"default":true,"markdownDescription":"Configures whether we should try to attach to the web worker extension host.","type":["boolean"]},"debugWebviews":{"default":true,"markdownDescription":"Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.","type":["boolean"]},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"rendererDebugOptions":{"default":{"webRoot":"${workspaceFolder}"},"markdownDescription":"Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.","properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"type":"object"},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeExecutable":{"default":"node","markdownDescription":"Absolute path to VS Code.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"testConfiguration":{"default":"${workspaceFolder}/.vscode-test.js","markdownDescription":"Path to a test configuration file for the [test CLI](https://code.visualstudio.com/api/working-with-extensions/testing-extension#quick-setup-the-test-cli).","type":"string"},"testConfigurationLabel":{"default":"","markdownDescription":"A single configuration to run from the file. If not specified, you may be asked to pick.","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"required":[]}},"configurationSnippets":[],"deprecated":"Please use type extensionHost instead","label":"VS Code Extension Development","languages":["javascript","typescript","javascriptreact","typescriptreact"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-extensionHost"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"args":{"default":["--extensionDevelopmentPath=${workspaceFolder}"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":"array"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"debugWebWorkerHost":{"default":true,"markdownDescription":"Configures whether we should try to attach to the web worker extension host.","type":["boolean"]},"debugWebviews":{"default":true,"markdownDescription":"Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.","type":["boolean"]},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"rendererDebugOptions":{"default":{"webRoot":"${workspaceFolder}"},"markdownDescription":"Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.","properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"type":"object"},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeExecutable":{"default":"node","markdownDescription":"Absolute path to VS Code.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"testConfiguration":{"default":"${workspaceFolder}/.vscode-test.js","markdownDescription":"Path to a test configuration file for the [test CLI](https://code.visualstudio.com/api/working-with-extensions/testing-extension#quick-setup-the-test-cli).","type":"string"},"testConfigurationLabel":{"default":"","markdownDescription":"A single configuration to run from the file. If not specified, you may be asked to pick.","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"required":[]}},"configurationSnippets":[{"body":{"args":["^\"--extensionDevelopmentPath=\\${workspaceFolder}\""],"name":"Launch Extension","outFiles":["^\"\\${workspaceFolder}/out/**/*.js\""],"preLaunchTask":"npm","request":"launch","type":"extensionHost"},"description":"Launch a VS Code extension in debug mode","label":"VS Code Extension Development"}],"label":"VS Code Extension Development","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"extensionHost"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":0,"description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[],"deprecated":"Please use type chrome instead","label":"Web App (Chrome)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-chrome"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":0,"description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[{"body":{"name":"Launch Chrome","request":"launch","type":"chrome","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch Chrome to debug a URL","label":"Chrome: Launch"},{"body":{"name":"Attach to Chrome","port":9222,"request":"attach","type":"chrome","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an instance of Chrome already in debug mode","label":"Chrome: Attach"}],"label":"Web App (Chrome)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"chrome"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":{"pipeName":"MyPipeName"},"description":"An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"","properties":{"pipeName":{"type":"string"}},"type":"object"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"address":{"default":"localhost","description":"When debugging webviews, the IP address or hostname the webview is listening on. Will be automatically discovered if not set.","type":"string"},"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"When debugging webviews, the port the webview debugger is listening on. Will be automatically discovered if not set.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":false,"description":"When 'true', the debugger will treat the runtime executable as a host application that contains a WebView allowing you to debug the WebView script content.","type":"boolean"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[],"deprecated":"Please use type msedge instead","label":"Web App (Edge)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-msedge"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":{"pipeName":"MyPipeName"},"description":"An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"","properties":{"pipeName":{"type":"string"}},"type":"object"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"address":{"default":"localhost","description":"When debugging webviews, the IP address or hostname the webview is listening on. Will be automatically discovered if not set.","type":"string"},"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"When debugging webviews, the port the webview debugger is listening on. Will be automatically discovered if not set.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":false,"description":"When 'true', the debugger will treat the runtime executable as a host application that contains a WebView allowing you to debug the WebView script content.","type":"boolean"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[{"body":{"name":"Launch Edge","request":"launch","type":"msedge","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch Edge to debug a URL","label":"Edge: Launch"},{"body":{"name":"Attach to Edge","port":9222,"request":"attach","type":"msedge","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an instance of Edge already in debug mode","label":"Edge: Attach"}],"label":"Web App (Edge)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"msedge"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"required":["url"]}},"configurationSnippets":[],"deprecated":"Please use type editor-browser instead","label":"Web App (Integrated Browser)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-editor-browser","when":"!isWeb"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"required":["url"]}},"configurationSnippets":[{"body":{"name":"Launch Integrated Browser","request":"launch","type":"editor-browser","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch a VS Code integrated browser to debug a URL","label":"Integrated Browser: Launch"},{"body":{"name":"Attach to Integrated Browser","request":"attach","type":"editor-browser","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an open VS Code integrated browser","label":"Integrated Browser: Attach"}],"label":"Web App (Integrated Browser)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"editor-browser","when":"!isWeb"}],"commands":[{"command":"extension.js-debug.prettyPrint","title":"Pretty print for debugging","category":"Debug","icon":"$(json)"},{"command":"extension.js-debug.toggleSkippingFile","title":"Toggle Skipping this File","category":"Debug"},{"command":"extension.js-debug.addCustomBreakpoints","title":"Toggle Event Listener Breakpoints","icon":"$(add)"},{"command":"extension.js-debug.removeAllCustomBreakpoints","title":"Remove All Event Listener Breakpoints","icon":"$(close-all)"},{"command":"extension.js-debug.addXHRBreakpoints","title":"Add XHR/fetch Breakpoint","icon":"$(add)"},{"command":"extension.js-debug.removeXHRBreakpoint","title":"Remove XHR/fetch Breakpoint","icon":"$(remove)"},{"command":"extension.js-debug.editXHRBreakpoints","title":"Edit XHR/fetch Breakpoint","icon":"$(edit)"},{"command":"extension.pwa-node-debug.attachNodeProcess","title":"Attach to Node Process","category":"Debug"},{"command":"extension.js-debug.npmScript","title":"Debug npm Script","category":"Debug"},{"command":"extension.js-debug.createDebuggerTerminal","title":"JavaScript Debug Terminal","category":"Debug"},{"command":"extension.js-debug.startProfile","title":"Take Performance Profile","category":"Debug","icon":"$(record)"},{"command":"extension.js-debug.stopProfile","title":"Stop Performance Profile","category":"Debug","icon":"resources/dark/stop-profiling.svg"},{"command":"extension.js-debug.revealPage","title":"Focus Tab","category":"Debug"},{"command":"extension.js-debug.debugLink","title":"Open Link","category":"Debug"},{"command":"extension.js-debug.createDiagnostics","title":"Diagnose Breakpoint Problems","category":"Debug"},{"command":"extension.js-debug.getDiagnosticLogs","title":"Save Diagnostic JS Debug Logs","category":"Debug"},{"command":"extension.node-debug.startWithStopOnEntry","title":"Start Debugging and Stop on Entry","category":"Debug"},{"command":"extension.js-debug.openEdgeDevTools","title":"Open Browser Devtools","icon":"$(inspect)","category":"Debug"},{"command":"extension.js-debug.callers.add","title":"Exclude Caller","category":"Debug"},{"command":"extension.js-debug.callers.remove","title":"Remove excluded caller","icon":"$(close)"},{"command":"extension.js-debug.callers.removeAll","title":"Remove all excluded callers","icon":"$(clear-all)"},{"command":"extension.js-debug.callers.goToCaller","title":"Go to caller location","icon":"$(call-outgoing)"},{"command":"extension.js-debug.callers.gotToTarget","title":"Go to target location","icon":"$(call-incoming)"},{"command":"extension.js-debug.enableSourceMapStepping","title":"Enable Source Mapped Stepping","icon":"$(compass-dot)"},{"command":"extension.js-debug.disableSourceMapStepping","title":"Disable Source Mapped Stepping","icon":"$(compass)"},{"command":"extension.js-debug.network.viewRequest","title":"View Request as cURL","icon":"$(arrow-right)"},{"command":"extension.js-debug.network.clear","title":"Clear Network Log","icon":"$(clear-all)"},{"command":"extension.js-debug.network.openBody","title":"Open Response Body"},{"command":"extension.js-debug.network.openBodyInHex","title":"Open Response Body in Hex Editor"},{"command":"extension.js-debug.network.replayXHR","title":"Replay Request"},{"command":"extension.js-debug.network.copyUri","title":"Copy Request URL"}],"keybindings":[{"command":"extension.node-debug.startWithStopOnEntry","key":"F10","mac":"F10","when":"debugConfigurationType == pwa-node && !inDebugMode || debugConfigurationType == pwa-extensionHost && !inDebugMode || debugConfigurationType == node && !inDebugMode"},{"command":"extension.node-debug.startWithStopOnEntry","key":"F11","mac":"F11","when":"debugConfigurationType == pwa-node && !inDebugMode && activeViewlet == workbench.view.debug || debugConfigurationType == pwa-extensionHost && !inDebugMode && activeViewlet == workbench.view.debug || debugConfigurationType == node && !inDebugMode && activeViewlet == workbench.view.debug"}],"configuration":{"title":"JavaScript Debugger","properties":{"debug.javascript.codelens.npmScripts":{"enum":["top","all","never"],"default":"top","description":"Where a \"Run\" and \"Debug\" code lens should be shown in your npm scripts. It may be on \"all\", scripts, on \"top\" of the script section, or \"never\"."},"debug.javascript.terminalOptions":{"type":"object","description":"Default launch options for the JavaScript debug terminal and npm scripts.","default":{},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"command":{"type":["string","null"],"description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","default":"npm start","tags":["setup"]}}},"debug.javascript.automaticallyTunnelRemoteServer":{"type":"boolean","description":"When debugging a remote web app, configures whether to automatically tunnel the remote server to your local machine.","default":true},"debug.javascript.debugByLinkOptions":{"default":"on","description":"Options used when debugging open links clicked from inside the JavaScript Debug Terminal. Can be set to \"off\" to disable this behavior, or \"always\" to enable debugging in all terminals.","oneOf":[{"type":"string","enum":["on","off","always"]},{"type":"object","properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":null,"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"disableNetworkCache":{"type":"boolean","description":"Controls whether to skip the network cache for each request","default":true},"pathMapping":{"type":"object","description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","default":{}},"webRoot":{"type":"string","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","default":"${workspaceFolder}","tags":["setup"]},"urlFilter":{"type":"string","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","default":""},"url":{"type":"string","description":"Will search for a tab with this exact url and attach to it, if found","default":"http://localhost:8080","tags":["setup"]},"inspectUri":{"type":["string","null"],"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","default":null},"vueComponentPaths":{"type":"array","description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","default":["${workspaceFolder}/**/*.vue"]},"server":{"oneOf":[{"type":"object","description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","additionalProperties":false,"default":{"program":"node my-server.js"},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"program":{"type":"string","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","default":"","tags":["setup"]},"stopOnEntry":{"type":["boolean","string"],"description":"Automatically stop program after launch.","default":true},"console":{"type":"string","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"description":"Where to launch the debug target.","default":"internalConsole"},"args":{"type":["array","string"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"default":[],"tags":["setup"]},"restart":{"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","properties":{"delay":{"type":"number","minimum":0,"default":1000},"maxAttempts":{"type":"number","minimum":0,"default":10}}}]},"runtimeExecutable":{"type":["string","null"],"markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","default":"node"},"runtimeVersion":{"type":"string","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","default":"default"},"runtimeArgs":{"type":"array","description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"default":[],"tags":["setup"]},"profileStartup":{"type":"boolean","description":"If true, will start profiling as soon as the process launches","default":true},"attachSimplePort":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\${.*}$"}],"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","default":9229},"killBehavior":{"type":"string","enum":["forceful","polite","none"],"default":"forceful","markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen."},"experimentalNetworking":{"type":"string","default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"]}}},{"type":"object","description":"JavaScript Debug Terminal","additionalProperties":false,"default":{"program":"npm start"},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"command":{"type":["string","null"],"description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","default":"npm start","tags":["setup"]}}}]},"perScriptSourcemaps":{"type":"string","default":"auto","enum":["yes","no","auto"],"description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate."},"port":{"type":"number","description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","default":0},"file":{"type":"string","description":"A local html file to open in the browser","default":"${workspaceFolder}/index.html","tags":["setup"]},"userDataDir":{"type":["string","boolean"],"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","default":true},"includeDefaultArgs":{"type":"boolean","description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","default":true},"includeLaunchArgs":{"type":"boolean","description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","default":true},"runtimeExecutable":{"type":["string","null"],"description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","default":"stable"},"runtimeArgs":{"type":"array","description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"default":[]},"env":{"type":"object","description":"Optional dictionary of environment key/value pairs for the browser.","default":{}},"cwd":{"type":"string","description":"Optional working directory for the runtime executable.","default":null},"profileStartup":{"type":"boolean","description":"If true, will start profiling soon as the process launches","default":true},"cleanUp":{"type":"string","enum":["wholeBrowser","onlyTab"],"description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","default":"wholeBrowser"},"killBehavior":{"type":"string","enum":["forceful","polite","none"],"default":"forceful","markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen."},"browserLaunchLocation":{"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","default":null,"oneOf":[{"type":"null"},{"type":"string","enum":["ui","workspace"]}]},"enabled":{"type":"string","enum":["on","off","always"]}}}]},"debug.javascript.pickAndAttachOptions":{"type":"object","default":{},"markdownDescription":"Default options used when debugging a process through the `Debug: Attach to Node.js Process` command","properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"address":{"type":"string","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","default":"localhost"},"port":{"description":"Debug port to attach to. Default is 9229.","default":9229,"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\${.*}$"}],"tags":["setup"]},"websocketAddress":{"type":"string","description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port."},"remoteHostHeader":{"type":"string","description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header."},"restart":{"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","properties":{"delay":{"type":"number","minimum":0,"default":1000},"maxAttempts":{"type":"number","minimum":0,"default":10}}}]},"processId":{"type":"string","description":"ID of process to attach to.","default":"${command:PickProcess}"},"attachExistingChildren":{"type":"boolean","description":"Whether to attempt to attach to already-spawned child processes.","default":false},"continueOnAttach":{"type":"boolean","markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","default":true}}},"debug.javascript.autoAttachFilter":{"type":"string","default":"disabled","enum":["always","smart","onlyWithFlag","disabled"],"enumDescriptions":["Auto attach to every Node.js process launched in the terminal.","Auto attach when running scripts that aren't in a node_modules folder.","Only auto attach when the `--inspect` is given.","Auto attach is disabled and not shown in status bar."],"markdownDescription":"Configures which processes to automatically attach and debug when `#debug.node.autoAttach#` is on. A Node process launched with the `--inspect` flag will always be attached to, regardless of this setting."},"debug.javascript.autoAttachSmartPattern":{"type":"array","items":{"type":"string"},"default":["${workspaceFolder}/**","!**/node_modules/**","**/$KNOWN_TOOLS$/**"],"markdownDescription":"Configures glob patterns for determining when to attach in \"smart\" `#debug.javascript.autoAttachFilter#` mode. `$KNOWN_TOOLS$` is replaced with a list of names of common test and code runners. [Read more on the VS Code docs](https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_auto-attach-smart-patterns)."},"debug.javascript.breakOnConditionalError":{"type":"boolean","default":false,"markdownDescription":"Whether to stop when conditional breakpoints throw an error."},"debug.javascript.unmapMissingSources":{"type":"boolean","default":false,"description":"Configures whether sourcemapped file where the original file can't be read will automatically be unmapped. If this is false (default), a prompt is shown."},"debug.javascript.defaultRuntimeExecutable":{"type":"object","default":{"pwa-node":"node"},"markdownDescription":"The default `runtimeExecutable` used for launch configurations, if unspecified. This can be used to config custom paths to Node.js or browser installations.","properties":{"pwa-node":{"type":"string"},"pwa-chrome":{"type":"string"},"pwa-msedge":{"type":"string"}}},"debug.javascript.resourceRequestOptions":{"type":"object","default":{},"markdownDescription":"Request options to use when loading resources, such as source maps, in the debugger. You may need to configure this if your sourcemaps require authentication or use a self-signed certificate, for instance. Options are used to create a request using the [`got`](https://github.com/sindresorhus/got) library.\n\nA common case to disable certificate verification can be done by passing `{ \"https\": { \"rejectUnauthorized\": false } }`."},"debug.javascript.enableNetworkView":{"type":"boolean","default":true,"description":"Enables the experimental network view for targets that support it."}}},"grammars":[{"language":"wat","scopeName":"text.wat","path":"./src/ui/basic-wat.tmLanguage.json"}],"languages":[{"id":"wat","extensions":[".wat",".wasm"],"aliases":["WebAssembly Text Format"],"firstLine":"^\\(module","mimetypes":["text/wat"],"configuration":"./src/ui/basic-wat.configuration.json"}],"terminal":{"profiles":[{"id":"extension.js-debug.debugTerminal","title":"JavaScript Debug Terminal","icon":"$(debug)"}]},"views":{"debug":[{"id":"jsBrowserBreakpoints","name":"Browser Options","when":"debugType == pwa-chrome || debugType == pwa-msedge || debugType == pwa-editor-browser"},{"id":"jsExcludedCallers","name":"Excluded Callers","when":"debugType == pwa-extensionHost && jsDebugHasExcludedCallers || debugType == node-terminal && jsDebugHasExcludedCallers || debugType == pwa-node && jsDebugHasExcludedCallers || debugType == pwa-chrome && jsDebugHasExcludedCallers || debugType == pwa-msedge && jsDebugHasExcludedCallers || debugType == pwa-editor-browser && jsDebugHasExcludedCallers"},{"id":"jsDebugNetworkTree","name":"Network","when":"jsDebugNetworkAvailable"}]},"viewsWelcome":[{"view":"debug","contents":"[JavaScript Debug Terminal](command:extension.js-debug.createDebuggerTerminal)\n\nYou can use the JavaScript Debug Terminal to debug Node.js processes run on the command line.\n\n[Debug URL](command:extension.js-debug.debugLink)","when":"debugStartLanguage == javascript && !isWeb || debugStartLanguage == typescript && !isWeb || debugStartLanguage == javascriptreact && !isWeb || debugStartLanguage == typescriptreact && !isWeb"},{"view":"debug","contents":"[JavaScript Debug Terminal](command:extension.js-debug.createDebuggerTerminal)\n\nYou can use the JavaScript Debug Terminal to debug Node.js processes run on the command line.","when":"debugStartLanguage == javascript && isWeb || debugStartLanguage == typescript && isWeb || debugStartLanguage == javascriptreact && isWeb || debugStartLanguage == typescriptreact && isWeb"}]},"originalEnabledApiProposals":["portsAttributes","workspaceTrust","tunnels","browser"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ms-vscode.js-debug","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.js-debug-companion"},"manifest":{"name":"js-debug-companion","displayName":"JavaScript Debugger Companion Extension","description":"Companion extension to js-debug that provides capability for remote debugging","version":"1.1.3","publisher":"ms-vscode","engines":{"vscode":"^1.90.0"},"icon":"resources/logo.png","categories":["Other"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode-js-debug-companion.git"},"author":"Connor Peet ","license":"MIT","bugs":{"url":"https://github.com/microsoft/vscode-js-debug-companion/issues"},"homepage":"https://github.com/microsoft/vscode-js-debug-companion#readme","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onCommand:js-debug-companion.launchAndAttach","onCommand:js-debug-companion.kill","onCommand:js-debug-companion.launch","onCommand:js-debug-companion.defaultBrowser"],"main":"./out/extension.js","contributes":{},"extensionKind":["ui"],"api":"none","prettier":{"trailingComma":"all","singleQuote":true,"printWidth":100,"tabWidth":2,"arrowParens":"avoid"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ms-vscode.js-debug-companion","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.vscode-js-profile-table"},"manifest":{"name":"vscode-js-profile-table","version":"1.0.11","displayName":"Table Visualizer for JavaScript Profiles","description":"Text visualizer for profiles taken from the JavaScript debugger","author":"Connor Peet ","homepage":"https://github.com/microsoft/vscode-js-profile-visualizer#readme","license":"MIT","main":"out/extension.js","browser":"out/extension.web.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode-js-profile-visualizer.git"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"icon":"resources/icon.png","publisher":"ms-vscode","sideEffects":false,"engines":{"vscode":"^1.74.0"},"contributes":{"customEditors":[{"viewType":"jsProfileVisualizer.cpuprofile.table","displayName":"CPU Profile Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.cpuprofile"}]},{"viewType":"jsProfileVisualizer.heapprofile.table","displayName":"Heap Profile Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.heapprofile"}]},{"viewType":"jsProfileVisualizer.heapsnapshot.table","displayName":"Heap Snapshot Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.heapsnapshot"}]}],"commands":[{"command":"extension.jsProfileVisualizer.table.clearCodeLenses","title":"Clear Profile Code Lenses"}],"menus":{"commandPalette":[{"command":"extension.jsProfileVisualizer.table.clearCodeLenses","when":"jsProfileVisualizer.hasCodeLenses == true"}]}},"bugs":{"url":"https://github.com/microsoft/vscode-js-profile-visualizer/issues"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ms-vscode.vscode-js-profile-table","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.builtin-notebook-renderers"},"manifest":{"name":"builtin-notebook-renderers","displayName":"Builtin Notebook Output Renderers","description":"Provides basic output renderers for notebooks","publisher":"vscode","version":"10.0.0","license":"MIT","icon":"media/icon.png","engines":{"vscode":"^1.57.0"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"notebookRenderer":[{"id":"vscode.builtin-renderer","entrypoint":"./renderer-out/index.js","displayName":"VS Code Builtin Notebook Output Renderer","requiresMessaging":"never","mimeTypes":["image/gif","image/png","image/jpeg","image/git","image/svg+xml","text/html","application/javascript","application/vnd.code.notebook.error","application/vnd.code.notebook.stdout","application/x.notebook.stdout","application/x.notebook.stream","application/vnd.code.notebook.stderr","application/x.notebook.stderr","text/plain"]}]},"scripts":{"compile":"npx gulp compile-extension:notebook-renderers && npm run build-notebook","watch":"npx gulp compile-watch:notebook-renderers","build-notebook":"node ./esbuild.notebook.mts"},"devDependencies":{"@types/jsdom":"^21.1.0","@types/node":"24.x","@types/vscode-notebook-renderer":"^1.60.0","jsdom":"^28.1.0"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/notebook-renderers","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.npm"},"manifest":{"name":"npm","publisher":"vscode","displayName":"NPM support for VS Code","description":"Extension to add task support for npm scripts.","version":"10.0.0","private":true,"license":"MIT","engines":{"vscode":"0.10.x"},"icon":"images/npm_icon.png","categories":["Other"],"enabledApiProposals":["terminalQuickFixProvider"],"main":"./dist/npmMain","browser":"./dist/browser/npmBrowserMain","activationEvents":["onTaskType:npm","onLanguage:json","workspaceContains:package.json"],"capabilities":{"virtualWorkspaces":{"supported":"limited","description":"Functionality that requires running the 'npm' command is not available in virtual workspaces."},"untrustedWorkspaces":{"supported":"limited","description":"This extension executes tasks, which require trust to run."}},"contributes":{"languages":[{"id":"ignore","extensions":[".npmignore"]},{"id":"properties","extensions":[".npmrc"]}],"views":{"explorer":[{"id":"npm","name":"NPM Scripts","when":"npm:showScriptExplorer","icon":"$(json)","visibility":"hidden","contextualTitle":"NPM Scripts"}]},"commands":[{"command":"npm.runScript","title":"Run","icon":"$(run)"},{"command":"npm.debugScript","title":"Debug","icon":"$(debug)"},{"command":"npm.openScript","title":"Open"},{"command":"npm.runInstall","title":"Run Install"},{"command":"npm.refresh","title":"Refresh","icon":"$(refresh)"},{"command":"npm.runSelectedScript","title":"Run Script"},{"command":"npm.runScriptFromFolder","title":"Run NPM Script in Folder..."},{"command":"npm.packageManager","title":"Get Configured Package Manager"}],"menus":{"commandPalette":[{"command":"npm.refresh","when":"false"},{"command":"npm.runScript","when":"false"},{"command":"npm.debugScript","when":"false"},{"command":"npm.openScript","when":"false"},{"command":"npm.runInstall","when":"false"},{"command":"npm.runSelectedScript","when":"false"},{"command":"npm.runScriptFromFolder","when":"false"},{"command":"npm.packageManager","when":"false"}],"editor/context":[{"command":"npm.runSelectedScript","when":"resourceFilename == 'package.json' && resourceScheme == file","group":"navigation@+1"}],"view/title":[{"command":"npm.refresh","when":"view == npm","group":"navigation"}],"view/item/context":[{"command":"npm.openScript","when":"view == npm && viewItem == packageJSON","group":"navigation@1"},{"command":"npm.runInstall","when":"view == npm && viewItem == packageJSON","group":"navigation@2"},{"command":"npm.openScript","when":"view == npm && viewItem == script","group":"navigation@1"},{"command":"npm.runScript","when":"view == npm && viewItem == script","group":"navigation@2"},{"command":"npm.runScript","when":"view == npm && viewItem == script","group":"inline"},{"command":"npm.debugScript","when":"view == npm && viewItem == script","group":"inline"},{"command":"npm.debugScript","when":"view == npm && viewItem == script","group":"navigation@3"}],"explorer/context":[{"when":"config.npm.enableRunFromFolder && explorerViewletVisible && explorerResourceIsFolder && resourceScheme == file","command":"npm.runScriptFromFolder","group":"2_workspace"}]},"configuration":{"id":"npm","type":"object","title":"Npm","properties":{"npm.autoDetect":{"type":"string","enum":["off","on"],"default":"on","scope":"resource","description":"Controls whether npm scripts should be automatically detected."},"npm.runSilent":{"type":"boolean","default":false,"scope":"resource","markdownDescription":"Run npm commands with the `--silent` option."},"npm.packageManager":{"scope":"resource","type":"string","enum":["auto","npm","yarn","pnpm","bun"],"enumDescriptions":["Auto-detect which package manager to use based on lock files and installed package managers.","Use npm as the package manager.","Use yarn as the package manager.","Use pnpm as the package manager.","Use bun as the package manager."],"default":"auto","description":"The package manager used to install dependencies."},"npm.scriptRunner":{"scope":"resource","type":"string","enum":["auto","npm","yarn","pnpm","bun","node","vp"],"enumDescriptions":["Auto-detect which script runner to use based on lock files and installed package managers.","Use npm as the script runner.","Use yarn as the script runner.","Use pnpm as the script runner.","Use bun as the script runner.","Use Node.js as the script runner.","Use Vite+ (vp) as the script runner."],"default":"auto","description":"The script runner used to run scripts."},"npm.exclude":{"type":["string","array"],"items":{"type":"string"},"description":"Configure glob patterns for folders that should be excluded from automatic script detection.","scope":"resource"},"npm.enableScriptExplorer":{"type":"boolean","default":false,"scope":"resource","deprecationMessage":"The NPM Script Explorer is now available in 'Views' menu in the Explorer in all folders.","markdownDescription":"Enable an explorer view for npm scripts when there is no top-level `package.json` file."},"npm.enableRunFromFolder":{"type":"boolean","default":false,"scope":"resource","description":"Enable running npm scripts contained in a folder from the Explorer context menu."},"npm.scriptExplorerAction":{"type":"string","enum":["open","run"],"markdownDescription":"The default click action used in the NPM Scripts Explorer: `open` or `run`, the default is `open`.","scope":"window","default":"open"},"npm.scriptExplorerExclude":{"type":"array","items":{"type":"string"},"markdownDescription":"An array of regular expressions that indicate which scripts should be excluded from the NPM Scripts view.","scope":"resource","default":[]},"npm.fetchOnlinePackageInfo":{"type":"boolean","description":"Fetch data from https://registry.npmjs.org and https://registry.bower.io to provide auto-completion and information on hover features on npm dependencies.","default":true,"scope":"window","tags":["usesOnlineServices"]},"npm.scriptHover":{"type":"boolean","markdownDescription":"Display hover with `Run` and `Debug` commands for scripts.","default":true,"scope":"window"}}},"jsonValidation":[{"fileMatch":"package.json","url":"https://www.schemastore.org/package"},{"fileMatch":"bower.json","url":"https://www.schemastore.org/bower"}],"taskDefinitions":[{"type":"npm","required":["script"],"properties":{"script":{"type":"string","description":"The npm script to customize."},"path":{"type":"string","description":"The path to the folder of the package.json file that provides the script. Can be omitted."}},"when":"shellExecutionSupported"}],"terminalQuickFixes":[{"id":"ms-vscode.npm-command","commandLineMatcher":"npm","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":8,"lineMatcher":"Did you mean (?:this|one of these)\\?((?:\\n.+?npm .+ #.+)+)","offset":2}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalQuickFixProvider"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/npm","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.objective-c"},"manifest":{"name":"objective-c","displayName":"Objective-C Language Basics","description":"Provides syntax highlighting and bracket matching in Objective-C files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"objective-c","extensions":[".m"],"aliases":["Objective-C"],"configuration":"./language-configuration.json"},{"id":"objective-cpp","extensions":[".mm"],"aliases":["Objective-C++"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"objective-c","scopeName":"source.objc","path":"./syntaxes/objective-c.tmLanguage.json"},{"language":"objective-cpp","scopeName":"source.objcpp","path":"./syntaxes/objective-c++.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/objective-c","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.perl"},"manifest":{"name":"perl","displayName":"Perl Language Basics","description":"Provides syntax highlighting and bracket matching in Perl files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/perl.tmbundle Syntaxes/Perl.plist ./syntaxes/perl.tmLanguage.json Syntaxes/Perl%206.tmLanguage ./syntaxes/perl6.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"perl","aliases":["Perl","perl"],"extensions":[".pl",".pm",".pod",".t",".PL",".psgi"],"firstLine":"^#!.*\\bperl\\b","configuration":"./perl.language-configuration.json"},{"id":"raku","aliases":["Raku","Perl6","perl6"],"extensions":[".raku",".rakumod",".rakutest",".rakudoc",".nqp",".p6",".pl6",".pm6"],"firstLine":"(^#!.*\\bperl6\\b)|use\\s+v6|raku|=begin\\spod|my\\sclass","configuration":"./perl6.language-configuration.json"}],"grammars":[{"language":"perl","scopeName":"source.perl","path":"./syntaxes/perl.tmLanguage.json","unbalancedBracketScopes":["variable.other.predefined.perl"]},{"language":"raku","scopeName":"source.perl.6","path":"./syntaxes/perl6.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/perl","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.php"},"manifest":{"name":"php","displayName":"PHP Language Basics","description":"Provides syntax highlighting and bracket matching for PHP files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"php","extensions":[".php",".php4",".php5",".phtml",".ctp"],"aliases":["PHP","php"],"firstLine":"^#!\\s*/.*\\bphp\\b","mimetypes":["application/x-php"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"php","scopeName":"source.php","path":"./syntaxes/php.tmLanguage.json"},{"language":"php","scopeName":"text.html.php","path":"./syntaxes/html.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.php":"php","source.sql":"sql","text.xml":"xml","source.js":"javascript","source.json":"json","source.css":"css"}}],"snippets":[{"language":"php","path":"./snippets/php.code-snippets"}]},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/php","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.php-language-features"},"manifest":{"name":"php-language-features","displayName":"PHP Language Features","description":"Provides rich language support for PHP files.","version":"10.0.0","publisher":"vscode","license":"MIT","icon":"icons/logo.png","engines":{"vscode":"0.10.x"},"activationEvents":["onLanguage:php"],"main":"./dist/phpMain","categories":["Programming Languages"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":"limited","description":"The extension requires workspace trust when the `php.validate.executablePath` setting will load a version of PHP in the workspace.","restrictedConfigurations":["php.validate.executablePath"]}},"contributes":{"configuration":{"title":"PHP","type":"object","order":20,"properties":{"php.suggest.basic":{"type":"boolean","default":true,"description":"Controls whether the built-in PHP language suggestions are enabled. The support suggests PHP globals and variables."},"php.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable built-in PHP validation."},"php.validate.executablePath":{"type":["string","null"],"default":null,"description":"Points to the PHP executable.","scope":"machine-overridable"},"php.validate.run":{"type":"string","enum":["onSave","onType"],"default":"onSave","description":"Whether the linter is run on save or on type."}}},"jsonValidation":[{"fileMatch":"composer.json","url":"https://getcomposer.org/schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/php-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.powershell"},"manifest":{"name":"powershell","displayName":"Powershell Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Powershell files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"powershell","extensions":[".ps1",".psm1",".psd1",".pssc",".psrc"],"aliases":["PowerShell","powershell","ps","ps1","pwsh"],"firstLine":"^#!\\s*/.*\\bpwsh\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"powershell","scopeName":"source.powershell","path":"./syntaxes/powershell.tmLanguage.json"}]},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin PowerShell/EditorSyntax PowerShellSyntax.tmLanguage ./syntaxes/powershell.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/powershell","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.prompt"},"manifest":{"name":"prompt","displayName":"Prompt Language Basics","description":"Syntax highlighting for Prompt and Instructions documents.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.20.0"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"prompt","aliases":["Prompt","prompt"],"extensions":[".prompt.md"],"configuration":"./language-configuration.json"},{"id":"instructions","aliases":["Instructions","instructions"],"extensions":[".instructions.md","copilot-instructions.md"],"filenamePatterns":["**/.claude/rules/**/*.md"],"configuration":"./language-configuration.json"},{"id":"chatagent","aliases":["Agent","chat agent"],"extensions":[".agent.md",".chatmode.md"],"filenamePatterns":["**/.github/agents/*.md","**/.claude/agents/*.md"],"configuration":"./language-configuration.json"},{"id":"skill","aliases":["Skill","skill"],"filenames":["SKILL.md"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"prompt","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"instructions","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"chatagent","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"skill","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]}],"configurationDefaults":{"[prompt]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[instructions]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[chatagent]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[skill]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"}}},"scripts":{},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/prompt-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.pug"},"manifest":{"name":"pug","displayName":"Pug Language Basics","description":"Provides syntax highlighting and bracket matching in Pug files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin davidrios/pug-tmbundle Syntaxes/Pug.JSON-tmLanguage ./syntaxes/pug.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"jade","extensions":[".pug",".jade"],"aliases":["Pug","Jade","jade"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"jade","scopeName":"text.pug","path":"./syntaxes/pug.tmLanguage.json"}],"configurationDefaults":{"[jade]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/pug","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.python"},"manifest":{"name":"python","displayName":"Python Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Python files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"python","extensions":[".py",".rpy",".pyw",".cpy",".gyp",".gypi",".pyi",".ipy",".pyt"],"aliases":["Python","py"],"filenames":["SConstruct","SConscript"],"firstLine":"^#!\\s*/?.*\\bpython[0-9.-]*\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"python","scopeName":"source.python","path":"./syntaxes/MagicPython.tmLanguage.json"},{"scopeName":"source.regexp.python","path":"./syntaxes/MagicRegExp.tmLanguage.json"}],"configurationDefaults":{"[python]":{"diffEditor.ignoreTrimWhitespace":false,"editor.defaultColorDecorators":"never"}}},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin MagicStack/MagicPython grammars/MagicPython.tmLanguage ./syntaxes/MagicPython.tmLanguage.json grammars/MagicRegExp.tmLanguage ./syntaxes/MagicRegExp.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/python","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.r"},"manifest":{"name":"r","displayName":"R Language Basics","description":"Provides syntax highlighting and bracket matching in R files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin REditorSupport/vscode-R-syntax syntaxes/r.json ./syntaxes/r.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"r","extensions":[".R",".Rhistory",".Rprofile",".rt"],"aliases":["R","r"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"r","scopeName":"source.r","path":"./syntaxes/r.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/r","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.razor"},"manifest":{"name":"razor","displayName":"Razor Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Razor files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"razor","extensions":[".cshtml",".razor"],"aliases":["Razor","razor"],"mimetypes":["text/x-cshtml"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"razor","scopeName":"text.html.cshtml","path":"./syntaxes/cshtml.tmLanguage.json","embeddedLanguages":{"section.embedded.source.cshtml":"csharp","source.css":"css","source.js":"javascript"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/razor","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.references-view"},"manifest":{"name":"references-view","displayName":"Reference Search View","description":"Reference Search results as separate, stable view in the sidebar","icon":"media/icon.png","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.67.0"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"repository":{"type":"git","url":"https://github.com/Microsoft/vscode-references-view"},"bugs":{"url":"https://github.com/Microsoft/vscode-references-view/issues"},"activationEvents":["onCommand:references-view.find","onCommand:editor.action.showReferences"],"main":"./dist/extension","browser":"./dist/browser/extension","contributes":{"configuration":{"properties":{"references.preferredLocation":{"description":"Controls whether 'Peek References' or 'Find References' is invoked when selecting CodeLens references.","type":"string","default":"peek","enum":["peek","view"],"enumDescriptions":["Show references in peek editor.","Show references in separate view."]}}},"viewsContainers":{"activitybar":[{"id":"references-view","icon":"$(references)","title":"References"}]},"views":{"references-view":[{"id":"references-view.tree","name":"Reference Search Results","when":"reference-list.isActive"}]},"commands":[{"command":"references-view.findReferences","title":"Find All References","category":"References"},{"command":"references-view.findImplementations","title":"Find All Implementations","category":"References"},{"command":"references-view.clearHistory","title":"Clear History","category":"References","icon":"$(clear-all)"},{"command":"references-view.clear","title":"Clear","category":"References","icon":"$(clear-all)"},{"command":"references-view.refresh","title":"Refresh","category":"References","icon":"$(refresh)"},{"command":"references-view.pickFromHistory","title":"Show History","category":"References"},{"command":"references-view.removeReferenceItem","title":"Dismiss","icon":"$(close)"},{"command":"references-view.copy","title":"Copy"},{"command":"references-view.copyAll","title":"Copy All"},{"command":"references-view.copyPath","title":"Copy Path"},{"command":"references-view.refind","title":"Rerun","icon":"$(refresh)"},{"command":"references-view.showCallHierarchy","title":"Show Call Hierarchy","category":"Calls"},{"command":"references-view.showOutgoingCalls","title":"Show Outgoing Calls","category":"Calls","icon":"$(call-incoming)"},{"command":"references-view.showIncomingCalls","title":"Show Incoming Calls","category":"Calls","icon":"$(call-outgoing)"},{"command":"references-view.removeCallItem","title":"Dismiss","icon":"$(close)"},{"command":"references-view.next","title":"Go to Next Reference","enablement":"references-view.canNavigate"},{"command":"references-view.prev","title":"Go to Previous Reference","enablement":"references-view.canNavigate"},{"command":"references-view.showTypeHierarchy","title":"Show Type Hierarchy","category":"Types"},{"command":"references-view.showSupertypes","title":"Show Supertypes","category":"Types","icon":"$(type-hierarchy-super)"},{"command":"references-view.showSubtypes","title":"Show Subtypes","category":"Types","icon":"$(type-hierarchy-sub)"},{"command":"references-view.removeTypeItem","title":"Dismiss","icon":"$(close)"}],"menus":{"editor/context":[{"command":"references-view.findReferences","when":"editorHasReferenceProvider","group":"0_navigation@1"},{"command":"references-view.findImplementations","when":"editorHasImplementationProvider","group":"0_navigation@2"},{"command":"references-view.showCallHierarchy","when":"editorHasCallHierarchyProvider","group":"0_navigation@3"},{"command":"references-view.showTypeHierarchy","when":"editorHasTypeHierarchyProvider","group":"0_navigation@4"}],"view/title":[{"command":"references-view.clear","group":"navigation@3","when":"view == references-view.tree && reference-list.hasResult"},{"command":"references-view.clearHistory","group":"navigation@3","when":"view == references-view.tree && reference-list.hasHistory && !reference-list.hasResult"},{"command":"references-view.refresh","group":"navigation@2","when":"view == references-view.tree && reference-list.hasResult"},{"command":"references-view.showOutgoingCalls","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == callHierarchy && references-view.callHierarchyMode == showIncoming"},{"command":"references-view.showIncomingCalls","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == callHierarchy && references-view.callHierarchyMode == showOutgoing"},{"command":"references-view.showSupertypes","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == typeHierarchy && references-view.typeHierarchyMode != supertypes"},{"command":"references-view.showSubtypes","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == typeHierarchy && references-view.typeHierarchyMode != subtypes"}],"view/item/context":[{"command":"references-view.removeReferenceItem","group":"inline","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.removeCallItem","group":"inline","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.removeTypeItem","group":"inline","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.refind","group":"inline","when":"view == references-view.tree && viewItem == history-item"},{"command":"references-view.removeReferenceItem","group":"1","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.removeCallItem","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.removeTypeItem","group":"1","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.refind","group":"1","when":"view == references-view.tree && viewItem == history-item"},{"command":"references-view.copy","group":"2@1","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.copyPath","group":"2@2","when":"view == references-view.tree && viewItem == file-item"},{"command":"references-view.copyAll","group":"2@3","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.showOutgoingCalls","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.showIncomingCalls","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.showSupertypes","group":"1","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.showSubtypes","group":"1","when":"view == references-view.tree && viewItem == type-item"}],"commandPalette":[{"command":"references-view.removeReferenceItem","when":"never"},{"command":"references-view.removeCallItem","when":"never"},{"command":"references-view.removeTypeItem","when":"never"},{"command":"references-view.copy","when":"never"},{"command":"references-view.copyAll","when":"never"},{"command":"references-view.copyPath","when":"never"},{"command":"references-view.refind","when":"never"},{"command":"references-view.findReferences","when":"editorHasReferenceProvider"},{"command":"references-view.clear","when":"reference-list.hasResult"},{"command":"references-view.clearHistory","when":"reference-list.isActive && !reference-list.hasResult"},{"command":"references-view.refresh","when":"reference-list.hasResult"},{"command":"references-view.pickFromHistory","when":"reference-list.isActive"},{"command":"references-view.next","when":"never"},{"command":"references-view.prev","when":"never"}]},"keybindings":[{"command":"references-view.findReferences","when":"editorHasReferenceProvider","key":"shift+alt+f12"},{"command":"references-view.next","when":"reference-list.hasResult","key":"f4"},{"command":"references-view.prev","when":"reference-list.hasResult","key":"shift+f4"},{"command":"references-view.showCallHierarchy","when":"editorHasCallHierarchyProvider","key":"shift+alt+h"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/references-view","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.restructuredtext"},"manifest":{"name":"restructuredtext","displayName":"reStructuredText Language Basics","description":"Provides syntax highlighting in reStructuredText files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin trond-snekvik/vscode-rst syntaxes/rst.tmLanguage.json ./syntaxes/rst.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"restructuredtext","aliases":["reStructuredText"],"configuration":"./language-configuration.json","extensions":[".rst"]}],"grammars":[{"language":"restructuredtext","scopeName":"source.rst","path":"./syntaxes/rst.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/restructuredtext","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ruby"},"manifest":{"name":"ruby","displayName":"Ruby Language Basics","description":"Provides syntax highlighting and bracket matching in Ruby files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin Shopify/ruby-lsp vscode/grammars/ruby.cson.json ./syntaxes/ruby.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"ruby","extensions":[".rb",".rbx",".rjs",".gemspec",".rake",".ru",".erb",".podspec",".rbi"],"filenames":["rakefile","gemfile","guardfile","podfile","capfile","cheffile","hobofile","vagrantfile","appraisals","rantfile","berksfile","berksfile.lock","thorfile","puppetfile","dangerfile","brewfile","fastfile","appfile","deliverfile","matchfile","scanfile","snapfile","gymfile"],"aliases":["Ruby","rb"],"firstLine":"^#!\\s*/.*\\bruby\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"ruby","scopeName":"source.ruby","path":"./syntaxes/ruby.tmLanguage.json"}],"configurationDefaults":{"[ruby]":{"editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ruby","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.rust"},"manifest":{"name":"rust","displayName":"Rust Language Basics","description":"Provides syntax highlighting and bracket matching in Rust files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"rust","extensions":[".rs"],"aliases":["Rust","rust"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"rust","path":"./syntaxes/rust.tmLanguage.json","scopeName":"source.rust"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/rust","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.scss"},"manifest":{"name":"scss","displayName":"SCSS Language Basics","description":"Provides syntax highlighting, bracket matching and folding in SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-sass grammars/scss.cson ./syntaxes/scss.tmLanguage.json grammars/sassdoc.cson ./syntaxes/sassdoc.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"scss","aliases":["SCSS","scss"],"extensions":[".scss"],"mimetypes":["text/x-scss","text/scss"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"scss","scopeName":"source.css.scss","path":"./syntaxes/scss.tmLanguage.json"},{"scopeName":"source.sassdoc","path":"./syntaxes/sassdoc.tmLanguage.json"}],"problemMatchers":[{"name":"node-sass","label":"Node Sass Compiler","owner":"node-sass","fileLocation":"absolute","pattern":[{"regexp":"^{$"},{"regexp":"\\s*\"status\":\\s\\d+,"},{"regexp":"\\s*\"file\":\\s\"(.*)\",","file":1},{"regexp":"\\s*\"line\":\\s(\\d+),","line":1},{"regexp":"\\s*\"column\":\\s(\\d+),","column":1},{"regexp":"\\s*\"message\":\\s\"(.*)\",","message":1},{"regexp":"\\s*\"formatted\":\\s(.*)"},{"regexp":"^}$"}]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/scss","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.search-result"},"manifest":{"name":"search-result","displayName":"Search Result","description":"Provides syntax highlighting and language features for tabbed search results.","version":"10.0.0","publisher":"vscode","license":"MIT","icon":"images/icon.png","engines":{"vscode":"^1.39.0"},"main":"./dist/extension.js","browser":"./dist/browser/extension","activationEvents":["onLanguage:search-result"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["documentFiltersExclusive"],"contributes":{"configurationDefaults":{"[search-result]":{"editor.lineNumbers":"off"}},"languages":[{"id":"search-result","extensions":[".code-search"],"aliases":["Search Result"]}],"grammars":[{"language":"search-result","scopeName":"text.searchResult","path":"./syntaxes/searchResult.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["documentFiltersExclusive"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/search-result","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.shaderlab"},"manifest":{"name":"shaderlab","displayName":"Shaderlab Language Basics","description":"Provides syntax highlighting and bracket matching in Shaderlab files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin tgjones/shaders-tmLanguage grammars/shaderlab.json ./syntaxes/shaderlab.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"shaderlab","extensions":[".shader"],"aliases":["ShaderLab","shaderlab"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"shaderlab","path":"./syntaxes/shaderlab.tmLanguage.json","scopeName":"source.shaderlab"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/shaderlab","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.shellscript"},"manifest":{"name":"shellscript","displayName":"Shell Script Language Basics","description":"Provides syntax highlighting and bracket matching in Shell Script files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin jeff-hykin/better-shell-syntax autogenerated/shell.tmLanguage.json ./syntaxes/shell-unix-bash.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"shellscript","aliases":["Shell Script","shellscript","bash","fish","sh","zsh","ksh","csh"],"extensions":[".sh",".bash",".bashrc",".bash_aliases",".bash_profile",".bash_login",".ebuild",".eclass",".profile",".bash_logout",".xprofile",".xsession",".xsessionrc",".Xsession",".zsh",".zshrc",".zprofile",".zlogin",".zlogout",".zshenv",".zsh-theme",".fish",".ksh",".csh",".cshrc",".tcshrc",".yashrc",".yash_profile"],"filenames":["APKBUILD","PKGBUILD",".envrc",".hushlogin","zshrc","zshenv","zlogin","zprofile","zlogout","bashrc_Apple_Terminal","zshrc_Apple_Terminal"],"firstLine":"^#!.*\\b(bash|fish|zsh|sh|ksh|dtksh|pdksh|mksh|ash|dash|yash|sh|csh|jcsh|tcsh|itcsh).*|^#\\s*-\\*-[^*]*mode:\\s*shell-script[^*]*-\\*-","configuration":"./language-configuration.json","mimetypes":["text/x-shellscript"]}],"grammars":[{"language":"shellscript","scopeName":"source.shell","path":"./syntaxes/shell-unix-bash.tmLanguage.json","balancedBracketScopes":["*"],"unbalancedBracketScopes":["meta.scope.case-pattern.shell"]}],"configurationDefaults":{"[shellscript]":{"files.eol":"\n","editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/shellscript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.simple-browser"},"manifest":{"name":"simple-browser","displayName":"Simple Browser","description":"A very basic built-in webview for displaying web content.","enabledApiProposals":["externalUriOpener"],"version":"10.0.0","icon":"media/icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension","categories":["Other"],"extensionKind":["ui","workspace"],"activationEvents":["onCommand:simpleBrowser.api.open","onOpenExternalUri:http","onOpenExternalUri:https","onWebviewPanel:simpleBrowser.view"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"commands":[{"command":"simpleBrowser.show","title":"Show","category":"Simple Browser"}],"menus":{"commandPalette":[{"command":"simpleBrowser.show","when":"isWeb"}]},"configuration":[{"title":"Simple Browser","properties":{"simpleBrowser.focusLockIndicator.enabled":{"type":"boolean","default":true,"title":"Focus Lock Indicator Enabled","description":"Enable/disable the floating indicator that shows when focused in the simple browser."}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["externalUriOpener"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/simple-browser","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.sql"},"manifest":{"name":"sql","displayName":"SQL Language Basics","description":"Provides syntax highlighting and bracket matching in SQL files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"sql","extensions":[".sql",".dsql"],"aliases":["MS SQL","T-SQL"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"sql","scopeName":"source.sql","path":"./syntaxes/sql.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/sql","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.swift"},"manifest":{"name":"swift","displayName":"Swift Language Basics","description":"Provides snippets, syntax highlighting and bracket matching in Swift files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin jtbandes/swift-tmlanguage Swift.tmLanguage.json ./syntaxes/swift.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"swift","aliases":["Swift","swift"],"extensions":[".swift"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"swift","scopeName":"source.swift","path":"./syntaxes/swift.tmLanguage.json"}],"snippets":[{"language":"swift","path":"./snippets/swift.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/swift","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.terminal-suggest"},"manifest":{"name":"terminal-suggest","publisher":"vscode","displayName":"Terminal Suggest for VS Code","description":"Extension to add terminal completions for zsh, bash, and fish terminals.","version":"1.0.1","private":true,"license":"MIT","icon":"./media/icon.png","engines":{"vscode":"^1.95.0"},"categories":["Other"],"enabledApiProposals":["terminalCompletionProvider","terminalShellEnv"],"contributes":{"commands":[{"command":"terminal.integrated.suggest.clearCachedGlobals","category":"Terminal","title":"Clear Suggest Cached Globals"}],"terminal":{"completionProviders":[{"description":"Show suggestions for commands, arguments, flags, and file paths based upon the Fig spec."}]}},"main":"./dist/terminalSuggestMain","activationEvents":["onTerminalShellIntegration:*"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalCompletionProvider","terminalShellEnv"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/terminal-suggest","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-abyss"},"manifest":{"name":"theme-abyss","displayName":"Abyss Theme","description":"Abyss theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Abyss","label":"Abyss","uiTheme":"vs-dark","path":"./themes/abyss-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-abyss","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-defaults"},"manifest":{"name":"theme-defaults","displayName":"Default Themes","description":"The default Visual Studio light and dark themes","categories":["Themes"],"version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"contributes":{"themes":[{"id":"Light 2026","label":"Light 2026","uiTheme":"vs","path":"./themes/2026-light.json"},{"id":"Dark 2026","label":"Dark 2026","uiTheme":"vs-dark","path":"./themes/2026-dark.json"},{"id":"Dark+","label":"Dark+","uiTheme":"vs-dark","path":"./themes/dark_plus.json"},{"id":"Dark Modern","label":"Dark Modern","uiTheme":"vs-dark","path":"./themes/dark_modern.json"},{"id":"Light+","label":"Light+","uiTheme":"vs","path":"./themes/light_plus.json"},{"id":"Light Modern","label":"Light Modern","uiTheme":"vs","path":"./themes/light_modern.json"},{"id":"Visual Studio Dark","label":"Dark (Visual Studio)","uiTheme":"vs-dark","path":"./themes/dark_vs.json"},{"id":"Visual Studio Light","label":"Light (Visual Studio)","uiTheme":"vs","path":"./themes/light_vs.json"},{"id":"Default High Contrast","label":"Dark High Contrast","uiTheme":"hc-black","path":"./themes/hc_black.json"},{"id":"Default High Contrast Light","label":"Light High Contrast","uiTheme":"hc-light","path":"./themes/hc_light.json"}],"iconThemes":[{"id":"vs-minimal","label":"Minimal (Visual Studio Code)","path":"./fileicons/vs_minimal-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-defaults","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-kimbie-dark"},"manifest":{"name":"theme-kimbie-dark","displayName":"Kimbie Dark Theme","description":"Kimbie dark theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Kimbie Dark","label":"Kimbie Dark","uiTheme":"vs-dark","path":"./themes/kimbie-dark-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-kimbie-dark","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vscode-modern-icons"},"manifest":{"name":"vscode-modern-icons","private":true,"version":"1.0.0","displayName":"VS Code Modern File Icons","description":"A modern file icon theme for Visual Studio Code","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"iconThemes":[{"id":"vscode-modern-icons","label":"VS Code Modern Icons","path":"./fileicons/vscode-modern-icons-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-modern-icons","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-monokai"},"manifest":{"name":"theme-monokai","displayName":"Monokai Theme","description":"Monokai theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Monokai","label":"Monokai","uiTheme":"vs-dark","path":"./themes/monokai-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-monokai","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-monokai-dimmed"},"manifest":{"name":"theme-monokai-dimmed","displayName":"Monokai Dimmed Theme","description":"Monokai dimmed theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Monokai Dimmed","label":"Monokai Dimmed","uiTheme":"vs-dark","path":"./themes/dimmed-monokai-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-monokai-dimmed","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-quietlight"},"manifest":{"name":"theme-quietlight","displayName":"Quiet Light Theme","description":"Quiet light theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Quiet Light","label":"Quiet Light","uiTheme":"vs","path":"./themes/quietlight-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-quietlight","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-red"},"manifest":{"name":"theme-red","displayName":"Red Theme","description":"Red theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Red","label":"Red","uiTheme":"vs-dark","path":"./themes/Red-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-red","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vscode-theme-seti"},"manifest":{"name":"vscode-theme-seti","private":true,"version":"10.0.0","displayName":"Seti File Icon Theme","description":"A file icon theme made out of the Seti UI file icons","publisher":"vscode","license":"MIT","icon":"icons/seti-circular-128x128.png","scripts":{"update":"node ./build/update-icon-theme.js"},"engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"iconThemes":[{"id":"vs-seti","label":"Seti (Visual Studio Code)","path":"./icons/vs-seti-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-seti","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-solarized-dark"},"manifest":{"name":"theme-solarized-dark","displayName":"Solarized Dark Theme","description":"Solarized dark theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Solarized Dark","label":"Solarized Dark","uiTheme":"vs-dark","path":"./themes/solarized-dark-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-solarized-dark","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-solarized-light"},"manifest":{"name":"theme-solarized-light","displayName":"Solarized Light Theme","description":"Solarized light theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Solarized Light","label":"Solarized Light","uiTheme":"vs","path":"./themes/solarized-light-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-solarized-light","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-tomorrow-night-blue"},"manifest":{"name":"theme-tomorrow-night-blue","displayName":"Tomorrow Night Blue Theme","description":"Tomorrow night blue theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Tomorrow Night Blue","label":"Tomorrow Night Blue","uiTheme":"vs-dark","path":"./themes/tomorrow-night-blue-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-tomorrow-night-blue","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.tunnel-forwarding"},"manifest":{"name":"tunnel-forwarding","displayName":"Local Tunnel Port Forwarding","description":"Allows forwarding local ports to be accessible over the internet.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.82.0"},"icon":"media/icon.png","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["resolvers","tunnelFactory"],"activationEvents":["onTunnel"],"contributes":{"commands":[{"category":"Port Forwarding","command":"tunnel-forwarding.showLog","title":"Show Log","enablement":"tunnelForwardingHasLog"},{"category":"Port Forwarding","command":"tunnel-forwarding.restart","title":"Restart Forwarding System","enablement":"tunnelForwardingIsRunning"}]},"main":"./dist/extension","prettier":{"printWidth":100,"trailingComma":"all","singleQuote":true,"arrowParens":"avoid"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["resolvers","tunnelFactory"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/tunnel-forwarding","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.typescript"},"manifest":{"name":"typescript","description":"Provides snippets, syntax highlighting, bracket matching and folding in TypeScript files.","displayName":"TypeScript Language Basics","version":"10.0.0","author":"vscode","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"typescript","aliases":["TypeScript","ts","typescript"],"extensions":[".ts",".cts",".mts"],"firstLine":"^#!.*\\b(deno|bun|ts-node)\\b","configuration":"./language-configuration.json"},{"id":"typescriptreact","aliases":["TypeScript JSX","TypeScript React","tsx"],"extensions":[".tsx"],"configuration":"./language-configuration.json"},{"id":"jsonc","filenames":["tsconfig.json","jsconfig.json"],"filenamePatterns":["tsconfig.*.json","jsconfig.*.json","tsconfig-*.json","jsconfig-*.json"]},{"id":"json","extensions":[".tsbuildinfo"]}],"grammars":[{"language":"typescript","scopeName":"source.ts","path":"./syntaxes/TypeScript.tmLanguage.json","unbalancedBracketScopes":["keyword.operator.relational","storage.type.function.arrow","keyword.operator.bitwise.shift","meta.brace.angle","punctuation.definition.tag","keyword.operator.assignment.compound.bitwise.ts"],"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"language":"typescriptreact","scopeName":"source.tsx","path":"./syntaxes/TypeScriptReact.tmLanguage.json","unbalancedBracketScopes":["keyword.operator.relational","storage.type.function.arrow","keyword.operator.bitwise.shift","punctuation.definition.tag","keyword.operator.assignment.compound.bitwise.ts"],"embeddedLanguages":{"meta.tag.tsx":"jsx-tags","meta.tag.without-attributes.tsx":"jsx-tags","meta.tag.attributes.tsx":"typescriptreact","meta.embedded.expression.tsx":"typescriptreact"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"scopeName":"documentation.injection.ts","path":"./syntaxes/jsdoc.ts.injection.tmLanguage.json","injectTo":["source.ts","source.tsx"]},{"scopeName":"documentation.injection.js.jsx","path":"./syntaxes/jsdoc.js.injection.tmLanguage.json","injectTo":["source.js","source.js.jsx"]}],"semanticTokenScopes":[{"language":"typescript","scopes":{"property":["variable.other.property.ts"],"property.readonly":["variable.other.constant.property.ts"],"variable":["variable.other.readwrite.ts"],"variable.readonly":["variable.other.constant.object.ts"],"function":["entity.name.function.ts"],"namespace":["entity.name.type.module.ts"],"variable.defaultLibrary":["support.variable.ts"],"function.defaultLibrary":["support.function.ts"]}},{"language":"typescriptreact","scopes":{"property":["variable.other.property.tsx"],"property.readonly":["variable.other.constant.property.tsx"],"variable":["variable.other.readwrite.tsx"],"variable.readonly":["variable.other.constant.object.tsx"],"function":["entity.name.function.tsx"],"namespace":["entity.name.type.module.tsx"],"variable.defaultLibrary":["support.variable.tsx"],"function.defaultLibrary":["support.function.tsx"]}}],"snippets":[{"language":"typescript","path":"./snippets/typescript.code-snippets"},{"language":"typescriptreact","path":"./snippets/typescript.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/typescript-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.typescript-language-features"},"manifest":{"name":"typescript-language-features","description":"Provides rich language support for JavaScript and TypeScript.","displayName":"JavaScript and TypeScript Language Features","version":"10.0.0","author":"vscode","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["workspaceTrust","multiDocumentHighlightProvider","codeActionAI","codeActionRanges","editorHoverVerbosityLevel"],"capabilities":{"virtualWorkspaces":{"supported":"limited","description":"In virtual workspaces, resolving and finding references across files is not supported."},"untrustedWorkspaces":{"supported":false,"description":"The extension requires workspace trust when the workspace version is used because it executes code specified by the workspace."}},"engines":{"vscode":"^1.30.0"},"icon":"media/icon.png","categories":["Programming Languages"],"activationEvents":["onLanguage:javascript","onLanguage:javascriptreact","onLanguage:typescript","onLanguage:typescriptreact","onLanguage:jsx-tags","onCommand:typescript.tsserverRequest","onCommand:_typescript.configurePlugin","onCommand:_typescript.learnMoreAboutRefactorings","onCommand:typescript.fileReferences","onTaskType:typescript","onLanguage:jsonc","onWalkthrough:nodejsWelcome"],"main":"./dist/extension","browser":"./dist/browser/extension","contributes":{"jsonValidation":[{"fileMatch":"package.json","url":"./schemas/package.schema.json"},{"fileMatch":"tsconfig.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"tsconfig.*.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig-*.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"tsconfig-*.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig.*.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"typings.json","url":"https://www.schemastore.org/typings"},{"fileMatch":".bowerrc","url":"https://www.schemastore.org/bowerrc"},{"fileMatch":".babelrc","url":"https://www.schemastore.org/babelrc"},{"fileMatch":".babelrc.json","url":"https://www.schemastore.org/babelrc"},{"fileMatch":"babel.config.json","url":"https://www.schemastore.org/babelrc"},{"fileMatch":"jsconfig.json","url":"https://www.schemastore.org/jsconfig"},{"fileMatch":"jsconfig.json","url":"./schemas/jsconfig.schema.json"},{"fileMatch":"jsconfig.*.json","url":"https://www.schemastore.org/jsconfig"},{"fileMatch":"jsconfig.*.json","url":"./schemas/jsconfig.schema.json"},{"fileMatch":".swcrc","url":"https://swc.rs/schema.json"},{"fileMatch":"typedoc.json","url":"https://typedoc.org/schema.json"}],"configuration":[{"type":"object","properties":{"js/ts.tsdk.path":{"type":"string","markdownDescription":"Specifies the folder path to the tsserver and `lib*.d.ts` files under a TypeScript install to use for IntelliSense, for example: `./node_modules/typescript/lib`.\n\n- When specified as a user setting, the TypeScript version from `js/ts.tsdk.path` automatically replaces the built-in TypeScript version.\n- When specified as a workspace setting, `js/ts.tsdk.path` allows you to switch to use that workspace version of TypeScript for IntelliSense with the `TypeScript: Select TypeScript version` command.\n\nSee the [TypeScript documentation](https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-newer-typescript-versions) for more detail about managing TypeScript versions.","scope":"window","order":1,"keywords":["TypeScript"]},"typescript.tsdk":{"type":"string","markdownDescription":"Specifies the folder path to the tsserver and `lib*.d.ts` files under a TypeScript install to use for IntelliSense, for example: `./node_modules/typescript/lib`.\n\n- When specified as a user setting, the TypeScript version from `js/ts.tsdk.path` automatically replaces the built-in TypeScript version.\n- When specified as a workspace setting, `js/ts.tsdk.path` allows you to switch to use that workspace version of TypeScript for IntelliSense with the `TypeScript: Select TypeScript version` command.\n\nSee the [TypeScript documentation](https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-newer-typescript-versions) for more detail about managing TypeScript versions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsdk.path#` instead.","scope":"window","order":1},"js/ts.experimental.useTsgo":{"type":"boolean","default":false,"markdownDescription":"Disables TypeScript and JavaScript language features to allow usage of the TypeScript Go experimental extension. Requires TypeScript Go to be installed and configured. Requires reloading extensions after changing this setting.","scope":"window","order":2,"keywords":["TypeScript","experimental"]},"typescript.experimental.useTsgo":{"type":"boolean","default":false,"markdownDescription":"Disables TypeScript and JavaScript language features to allow usage of the TypeScript Go experimental extension. Requires TypeScript Go to be installed and configured. Requires reloading extensions after changing this setting.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.experimental.useTsgo#` instead.","scope":"window","order":2,"keywords":["experimental"]},"js/ts.locale":{"type":"string","default":"auto","enum":["auto","de","es","en","fr","it","ja","ko","ru","zh-CN","zh-TW"],"enumDescriptions":["Use VS Code's configured display language.","Deutsch","español","English","français","italiano","日本語","한국어","русский","中文(简体)","中文(繁體)"],"markdownDescription":"Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VS Code's locale.","scope":"window","order":3,"keywords":["TypeScript"]},"typescript.locale":{"type":"string","default":"auto","enum":["auto","de","es","en","fr","it","ja","ko","ru","zh-CN","zh-TW"],"enumDescriptions":["Use VS Code's configured display language.","Deutsch","español","English","français","italiano","日本語","한국어","русский","中文(简体)","中文(繁體)"],"markdownDescription":"Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VS Code's locale.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.locale#` instead.","scope":"window","order":3},"js/ts.tsc.autoDetect":{"type":"string","default":"on","enum":["on","off","build","watch"],"markdownEnumDescriptions":["Create both build and watch tasks.","Disable this feature.","Only create single run compile tasks.","Only create compile and watch tasks."],"description":"Controls auto detection of tsc tasks.","scope":"window","order":4,"keywords":["TypeScript"]},"typescript.tsc.autoDetect":{"type":"string","default":"on","enum":["on","off","build","watch"],"markdownEnumDescriptions":["Create both build and watch tasks.","Disable this feature.","Only create single run compile tasks.","Only create compile and watch tasks."],"description":"Controls auto detection of tsc tasks.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsc.autoDetect#` instead.","scope":"window","order":4}}},{"type":"object","title":"Preferences","properties":{"js/ts.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.quoteStyle#` instead.","scope":"language-overridable"},"typescript.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.quoteStyle#` instead.","scope":"language-overridable"},"js/ts.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifier#` instead.","scope":"language-overridable"},"typescript.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifier#` instead.","scope":"language-overridable"},"js/ts.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifierEnding#` instead.","scope":"language-overridable"},"typescript.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifierEnding#` instead.","scope":"language-overridable"},"js/ts.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#js/ts.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#javascript.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.jsxAttributeCompletionStyle#` instead.","scope":"language-overridable"},"typescript.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#typescript.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.jsxAttributeCompletionStyle#` instead.","scope":"language-overridable"},"js/ts.preferences.includePackageJsonAutoImports":{"type":"string","enum":["auto","on","off"],"enumDescriptions":["Search dependencies based on estimated performance impact.","Always search dependencies.","Never search dependencies."],"default":"auto","markdownDescription":"Enable/disable searching `package.json` dependencies for available auto imports.","scope":"window","keywords":["TypeScript"]},"typescript.preferences.includePackageJsonAutoImports":{"type":"string","enum":["auto","on","off"],"enumDescriptions":["Search dependencies based on estimated performance impact.","Always search dependencies.","Never search dependencies."],"default":"auto","markdownDescription":"Enable/disable searching `package.json` dependencies for available auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.includePackageJsonAutoImports#` instead.","scope":"window"},"js/ts.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","scope":"resource","keywords":["JavaScript","TypeScript"]},"javascript.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportFileExcludePatterns#` instead.","scope":"resource"},"typescript.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportFileExcludePatterns#` instead.","scope":"resource"},"js/ts.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","scope":"resource","keywords":["JavaScript","TypeScript"]},"javascript.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportSpecifierExcludeRegexes#` instead.","scope":"resource"},"typescript.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportSpecifierExcludeRegexes#` instead.","scope":"resource"},"js/ts.preferences.preferTypeOnlyAutoImports":{"type":"boolean","default":false,"markdownDescription":"Include the `type` keyword in auto-imports whenever possible. Requires using TypeScript 5.3+ in the workspace.","scope":"resource","keywords":["TypeScript"]},"typescript.preferences.preferTypeOnlyAutoImports":{"type":"boolean","default":false,"markdownDescription":"Include the `type` keyword in auto-imports whenever possible. Requires using TypeScript 5.3+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.preferTypeOnlyAutoImports#` instead.","scope":"resource"},"js/ts.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.useAliasesForRenames#` instead.","scope":"language-overridable"},"typescript.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.useAliasesForRenames#` instead.","scope":"language-overridable"},"js/ts.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.renameMatchingJsxTags#` instead.","scope":"language-overridable"},"typescript.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.renameMatchingJsxTags#` instead.","scope":"language-overridable"},"js/ts.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","Sort imports case-insensitively.","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}},"keywords":["JavaScript","TypeScript"]},"javascript.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.organizeImports#` instead.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","Sort imports case-insensitively.","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}}},"typescript.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.organizeImports#` instead.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","%typescript.preferences.organizeImports.caseSensitivity.insensitive","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}}}}},{"type":"object","title":"Formatting","properties":{"js/ts.format.enabled":{"type":"boolean","default":true,"description":"Enable/disable the default JavaScript and TypeScript formatter.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.enable":{"type":"boolean","default":true,"description":"Enable/disable default JavaScript formatter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.enabled#` instead.","scope":"window"},"typescript.format.enable":{"type":"boolean","default":true,"description":"Enable/disable default TypeScript formatter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.enabled#` instead.","scope":"window"},"js/ts.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterCommaDelimiter#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterCommaDelimiter#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterConstructor#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterConstructor#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterSemicolonInForStatements#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterSemicolonInForStatements#` instead.","scope":"resource"},"js/ts.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeAndAfterBinaryOperators#` instead.","scope":"resource"},"typescript.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeAndAfterBinaryOperators#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions#` instead.","scope":"resource"},"js/ts.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeFunctionParenthesis#` instead.","scope":"resource"},"typescript.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeFunctionParenthesis#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterTypeAssertion":{"type":"boolean","default":false,"description":"Defines space handling after type assertions in TypeScript.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.format.insertSpaceAfterTypeAssertion":{"type":"boolean","default":false,"description":"Defines space handling after type assertions in TypeScript.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterTypeAssertion#` instead.","scope":"resource"},"js/ts.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForFunctions#` instead.","scope":"resource"},"typescript.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForFunctions#` instead.","scope":"resource"},"js/ts.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForControlBlocks#` instead.","scope":"resource"},"typescript.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForControlBlocks#` instead.","scope":"resource"},"js/ts.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","scope":"language-overridable","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."],"keywords":["JavaScript","TypeScript"]},"javascript.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.semicolons#` instead.","scope":"resource","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."]},"typescript.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.semicolons#` instead.","scope":"resource","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."]},"js/ts.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.indentSwitchCase#` instead.","scope":"resource"},"typescript.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.indentSwitchCase#` instead.","scope":"resource"}}},{"type":"object","title":"Validation","properties":{"js/ts.validate.enabled":{"type":"boolean","default":true,"description":"Enable/disable JavaScript and TypeScript validation.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"typescript.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable TypeScript validation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.validate.enabled#` instead.","scope":"window"},"javascript.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable JavaScript validation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.validate.enabled#` instead.","scope":"window"},"js/ts.reportStyleChecksAsWarnings":{"type":"boolean","default":true,"description":"Report style checks as warnings.","scope":"window","keywords":["TypeScript"]},"typescript.reportStyleChecksAsWarnings":{"type":"boolean","default":true,"description":"Report style checks as warnings.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.reportStyleChecksAsWarnings#` instead.","scope":"window"},"js/ts.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for JavaScript and TypeScript files in the editor.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for JavaScript files in the editor.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggestionActions.enabled#` instead.","scope":"resource"},"typescript.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for TypeScript files in the editor.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggestionActions.enabled#` instead.","scope":"resource"},"js/ts.tsserver.experimental.enableProjectDiagnostics":{"type":"boolean","default":false,"description":"Enables project wide error reporting.","scope":"window","keywords":["JavaScript","TypeScript","experimental"]},"typescript.tsserver.experimental.enableProjectDiagnostics":{"type":"boolean","default":false,"description":"Enables project wide error reporting.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.experimental.enableProjectDiagnostics#` instead.","scope":"window","keywords":["experimental"]}}},{"type":"object","title":"Implicit Project Config","properties":{"js/ts.implicitProjectConfig.module":{"type":"string","markdownDescription":"Sets the module system for the program. See more: https://www.typescriptlang.org/tsconfig#module.","default":"ESNext","enum":["CommonJS","AMD","System","UMD","ES6","ES2015","ES2020","ESNext","None","ES2022","Node12","NodeNext"],"scope":"window"},"js/ts.implicitProjectConfig.target":{"type":"string","default":"ES2024","markdownDescription":"Set target JavaScript language version for emitted JavaScript and include library declarations. See more: https://www.typescriptlang.org/tsconfig#target.","enum":["ES3","ES5","ES6","ES2015","ES2016","ES2017","ES2018","ES2019","ES2020","ES2021","ES2022","ES2023","ES2024","ESNext"],"scope":"window"},"js/ts.implicitProjectConfig.checkJs":{"type":"boolean","default":false,"markdownDescription":"Enable/disable semantic checking of JavaScript files. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.experimentalDecorators":{"type":"boolean","default":false,"markdownDescription":"Enable/disable `experimentalDecorators` in JavaScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strictNullChecks":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict null checks](https://www.typescriptlang.org/tsconfig#strictNullChecks) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strictFunctionTypes":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict function types](https://www.typescriptlang.org/tsconfig#strictFunctionTypes) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strict":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict mode](https://www.typescriptlang.org/tsconfig#strict) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"}}},{"type":"object","title":"Language Features","properties":{"js/ts.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","scope":"resource","keywords":["JavaScript","TypeScript"]},"typescript.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnFileMove.enabled#` instead.","scope":"resource"},"javascript.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnFileMove.enabled#` instead.","scope":"resource"},"js/ts.autoClosingTags.enabled":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"typescript.autoClosingTags":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.autoClosingTags.enabled#` instead.","scope":"language-overridable"},"javascript.autoClosingTags":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.autoClosingTags.enabled#` instead.","scope":"language-overridable"},"js/ts.workspaceSymbols.scope":{"type":"string","enum":["allOpenProjects","currentProject"],"enumDescriptions":["Search all open JavaScript or TypeScript projects for symbols.","Only search for symbols in the current JavaScript or TypeScript project."],"default":"allOpenProjects","markdownDescription":"Controls which files are searched by [Go to Symbol in Workspace](https://code.visualstudio.com/docs/editor/editingevolved#_open-symbol-by-name).","scope":"window","keywords":["TypeScript"]},"typescript.workspaceSymbols.scope":{"type":"string","enum":["allOpenProjects","currentProject"],"enumDescriptions":["Search all open JavaScript or TypeScript projects for symbols.","Only search for symbols in the current JavaScript or TypeScript project."],"default":"allOpenProjects","markdownDescription":"Controls which files are searched by [Go to Symbol in Workspace](https://code.visualstudio.com/docs/editor/editingevolved#_open-symbol-by-name).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.workspaceSymbols.scope#` instead.","scope":"window"},"js/ts.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","scope":"window","keywords":["JavaScript","TypeScript"]},"typescript.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferGoToSourceDefinition#` instead.","scope":"window"},"javascript.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferGoToSourceDefinition#` instead.","scope":"window"},"js/ts.workspaceSymbols.excludeLibrarySymbols":{"type":"boolean","default":true,"markdownDescription":"Exclude symbols that come from library files in `Go to Symbol in Workspace` results. Requires using TypeScript 5.3+ in the workspace.","scope":"window","keywords":["TypeScript"]},"typescript.workspaceSymbols.excludeLibrarySymbols":{"type":"boolean","default":true,"markdownDescription":"Exclude symbols that come from library files in `Go to Symbol in Workspace` results. Requires using TypeScript 5.3+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.workspaceSymbols.excludeLibrarySymbols#` instead.","scope":"window"},"js/ts.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","keywords":["JavaScript","TypeScript"]},"javascript.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnPaste.enabled#` instead."},"typescript.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnPaste.enabled#` instead."},"js/ts.hover.maximumLength":{"type":"number","default":500,"description":"The maximum number of characters in a hover. If the hover is longer than this, it will be truncated. Requires TypeScript 5.9+.","scope":"resource"}}},{"type":"object","title":"Suggestions","properties":{"js/ts.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.enabled#` instead.","scope":"language-overridable"},"typescript.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.enabled#` instead.","scope":"language-overridable"},"js/ts.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.autoImports#` instead.","scope":"resource"},"typescript.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.autoImports#` instead.","scope":"resource"},"js/ts.suggest.names":{"type":"boolean","default":true,"markdownDescription":"Enable/disable including unique names from the file in JavaScript suggestions. Note that name suggestions are always disabled in JavaScript code that is semantically checked using `@ts-check` or `checkJs`.","scope":"language-overridable","keywords":["JavaScript"]},"javascript.suggest.names":{"type":"boolean","default":true,"markdownDescription":"Enable/disable including unique names from the file in JavaScript suggestions. Note that name suggestions are always disabled in JavaScript code that is semantically checked using `@ts-check` or `checkJs`.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.names#` instead.","scope":"resource"},"js/ts.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.completeFunctionCalls#` instead.","scope":"resource"},"typescript.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.completeFunctionCalls#` instead.","scope":"resource"},"js/ts.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.paths#` instead.","scope":"resource"},"typescript.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.paths#` instead.","scope":"resource"},"js/ts.suggest.jsdoc.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.completeJSDocs":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.enabled#` instead.","scope":"language-overridable"},"typescript.suggest.completeJSDocs":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.enabled#` instead.","scope":"language-overridable"},"js/ts.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.generateReturns#` instead.","scope":"language-overridable"},"typescript.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.generateReturns#` instead.","scope":"language-overridable"},"js/ts.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeAutomaticOptionalChainCompletions#` instead.","scope":"resource"},"typescript.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeAutomaticOptionalChainCompletions#` instead.","scope":"resource"},"js/ts.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeCompletionsForImportStatements#` instead.","scope":"resource"},"typescript.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeCompletionsForImportStatements#` instead.","scope":"resource"},"js/ts.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.classMemberSnippets.enabled#` instead.","scope":"resource"},"typescript.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.classMemberSnippets.enabled#` instead.","scope":"resource"},"js/ts.suggest.objectLiteralMethodSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for methods in object literals.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.suggest.objectLiteralMethodSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for methods in object literals.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.objectLiteralMethodSnippets.enabled#` instead.","scope":"resource"}}},{"type":"object","title":"CodeLens","properties":{"js/ts.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.enabled#` instead.","scope":"window"},"typescript.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.enabled#` instead.","scope":"window"},"js/ts.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.showOnAllFunctions#` instead.","scope":"window"},"typescript.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.showOnAllFunctions#` instead.","scope":"window"},"js/ts.implementationsCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable implementations CodeLens in TypeScript files. This CodeLens shows the implementers of TypeScript interfaces.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable implementations CodeLens in TypeScript files. This CodeLens shows the implementers of TypeScript interfaces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.enabled#` instead.","scope":"window"},"js/ts.implementationsCodeLens.showOnInterfaceMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) on TypeScript interface methods.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.showOnInterfaceMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) on TypeScript interface methods.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.showOnInterfaceMethods#` instead.","scope":"window"},"js/ts.implementationsCodeLens.showOnAllClassMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable showing [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) above all TypeScript class methods instead of only on abstract methods.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.showOnAllClassMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable showing [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) above all TypeScript class methods instead of only on abstract methods.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.showOnAllClassMethods#` instead.","scope":"window"}}},{"type":"object","title":"Inlay Hints","properties":{"js/ts.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.enabled#` instead.","scope":"resource"},"typescript.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName#` instead.","scope":"resource"},"typescript.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName#` instead.","scope":"resource"},"js/ts.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName#` instead.","scope":"resource"},"typescript.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName#` instead.","scope":"resource"},"js/ts.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.propertyDeclarationTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.propertyDeclarationTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.functionLikeReturnTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.functionLikeReturnTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.enumMemberValues.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for member values in enum declarations:\n```typescript\n\nenum MyValue {\n\tA /* = 0 */;\n\tB /* = 1 */;\n}\n \n```","scope":"language-overridable","keywords":["TypeScript"]},"typescript.inlayHints.enumMemberValues.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for member values in enum declarations:\n```typescript\n\nenum MyValue {\n\tA /* = 0 */;\n\tB /* = 1 */;\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.enumMemberValues.enabled#` instead.","scope":"resource"}}},{"type":"object","title":"TS Server Advanced Settings","properties":{"js/ts.tsdk.promptToUseWorkspaceVersion":{"type":"boolean","default":false,"description":"Enables prompting of users to use the TypeScript version configured in the workspace for Intellisense.","scope":"window","keywords":["TypeScript"]},"typescript.enablePromptUseWorkspaceTsdk":{"type":"boolean","default":false,"description":"Enables prompting of users to use the TypeScript version configured in the workspace for Intellisense.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsdk.promptToUseWorkspaceVersion#` instead.","scope":"window"},"js/ts.tsserver.automaticTypeAcquisition.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable [automatic type acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition). Automatic type acquisition fetches `@types` packages from npm to improve IntelliSense for external libraries.","scope":"window","keywords":["TypeScript","usesOnlineServices"]},"typescript.disableAutomaticTypeAcquisition":{"type":"boolean","default":false,"markdownDescription":"Disables [automatic type acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition). Automatic type acquisition fetches `@types` packages from npm to improve IntelliSense for external libraries.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.automaticTypeAcquisition.enabled#` instead.","scope":"window","keywords":["usesOnlineServices"]},"js/ts.tsserver.node.path":{"type":"string","markdownDescription":"Run TS Server on a custom Node installation. This can be a path to a Node executable, or `node` if you want VS Code to detect a Node installation.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.nodePath":{"type":"string","markdownDescription":"Run TS Server on a custom Node installation. This can be a path to a Node executable, or `node` if you want VS Code to detect a Node installation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.node.path#` instead.","scope":"window"},"js/ts.tsserver.npm.path":{"type":"string","markdownDescription":"Specifies the path to the npm executable used for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","scope":"machine","keywords":["TypeScript"]},"typescript.npm":{"type":"string","markdownDescription":"Specifies the path to the npm executable used for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.npm.path#` instead.","scope":"machine"},"js/ts.tsserver.checkNpmIsInstalled":{"type":"boolean","default":true,"markdownDescription":"Check if npm is installed for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","scope":"window","keywords":["TypeScript"]},"typescript.check.npmIsInstalled":{"type":"boolean","default":true,"markdownDescription":"Check if npm is installed for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.checkNpmIsInstalled#` instead.","scope":"window"},"js/ts.tsserver.web.projectWideIntellisense.enabled":{"type":"boolean","default":true,"description":"Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.projectWideIntellisense.enabled":{"type":"boolean","default":true,"description":"Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.projectWideIntellisense.enabled#` instead.","scope":"window"},"js/ts.tsserver.web.projectWideIntellisense.suppressSemanticErrors":{"type":"boolean","default":false,"description":"Suppresses semantic errors on web even when project wide IntelliSense is enabled. This is always on when project wide IntelliSense is not enabled or available. See `#js/ts.tsserver.web.projectWideIntellisense.enabled#`","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.projectWideIntellisense.suppressSemanticErrors":{"type":"boolean","default":false,"description":"Suppresses semantic errors on web even when project wide IntelliSense is enabled. This is always on when project wide IntelliSense is not enabled or available. See `#js/ts.tsserver.web.projectWideIntellisense.enabled#`","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.projectWideIntellisense.suppressSemanticErrors#` instead.","scope":"window"},"js/ts.tsserver.web.typeAcquisition.enabled":{"type":"boolean","default":true,"description":"Enable/disable package acquisition on the web. This enables IntelliSense for imported packages. Requires `#js/ts.tsserver.web.projectWideIntellisense.enabled#`. Currently not supported for Safari.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.typeAcquisition.enabled":{"type":"boolean","default":true,"description":"Enable/disable package acquisition on the web. This enables IntelliSense for imported packages. Requires `#js/ts.tsserver.web.projectWideIntellisense.enabled#`. Currently not supported for Safari.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.typeAcquisition.enabled#` instead.","scope":"window"},"js/ts.tsserver.useSyntaxServer":{"type":"string","scope":"window","description":"Controls if TypeScript launches a dedicated server to more quickly handle syntax related operations, such as computing code folding.","default":"auto","enum":["always","never","auto"],"enumDescriptions":["Use a lighter weight syntax server to handle all IntelliSense operations. This disables project-wide features including auto-imports, cross-file completions, and go to definition for symbols in other files. Only use this for very large projects where performance is critical.","Don't use a dedicated syntax server. Use a single server to handle all IntelliSense operations.","Spawn both a full server and a lighter weight server dedicated to syntax operations. The syntax server is used to speed up syntax operations and provide IntelliSense while projects are loading."],"keywords":["TypeScript"]},"typescript.tsserver.useSyntaxServer":{"type":"string","scope":"window","description":"Controls if TypeScript launches a dedicated server to more quickly handle syntax related operations, such as computing code folding.","default":"auto","enum":["always","never","auto"],"enumDescriptions":["Use a lighter weight syntax server to handle all IntelliSense operations. This disables project-wide features including auto-imports, cross-file completions, and go to definition for symbols in other files. Only use this for very large projects where performance is critical.","Don't use a dedicated syntax server. Use a single server to handle all IntelliSense operations.","Spawn both a full server and a lighter weight server dedicated to syntax operations. The syntax server is used to speed up syntax operations and provide IntelliSense while projects are loading."],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.useSyntaxServer#` instead."},"js/ts.tsserver.maxMemory":{"type":"number","default":3072,"markdownDescription":"The maximum amount of memory (in MB) to allocate to the TypeScript server process. To use a memory limit greater than 4 GB, use `#js/ts.tsserver.node.path#` to run TS Server with a custom Node installation.","scope":"window","keywords":["TypeScript"]},"js/ts.tsserver.diagnosticDir":{"type":"string","markdownDescription":"Directory where TypeScript server writes Node diagnostic output by passing `--diagnostic-dir`.","scope":"machine","keywords":["TypeScript","diagnostic","memory"]},"typescript.tsserver.maxTsServerMemory":{"type":"number","default":3072,"markdownDescription":"The maximum amount of memory (in MB) to allocate to the TypeScript server process. To use a memory limit greater than 4 GB, use `#js/ts.tsserver.node.path#` to run TS Server with a custom Node installation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.maxMemory#` instead.","scope":"window"},"js/ts.tsserver.heapSnapshot":{"type":"number","default":0,"minimum":0,"markdownDescription":"Controls how many near-heap-limit snapshots TypeScript server writes by passing `--heapsnapshot-near-heap-limit`. Set to `0` to disable.","scope":"window","keywords":["TypeScript","memory","diagnostics"]},"js/ts.tsserver.heapProfile":{"type":"object","default":{"enabled":false},"markdownDescription":"Configures heap profiling for TypeScript server.","scope":"machine","properties":{"enabled":{"type":"boolean","default":false,"description":"Enable heap profiling for TypeScript server by passing `--heap-prof`."},"dir":{"type":"string","description":"Directory where TypeScript server writes heap profiles by passing `--heap-prof-dir`."},"interval":{"type":"number","minimum":1,"description":"Sampling interval in bytes for TypeScript server heap profiling by passing `--heap-prof-interval`."}},"keywords":["TypeScript","memory","heap","profile"]},"js/ts.tsserver.watchOptions":{"description":"Configure which watching strategies should be used to keep track of files and directories.","scope":"window","default":"vscode","oneOf":[{"type":"string","const":"vscode","description":"Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace."},{"type":"object","properties":{"watchFile":{"type":"string","description":"Strategy for how individual files are watched.","enum":["fixedChunkSizePolling","fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling","useFsEvents","useFsEventsOnParentDirectory"],"enumDescriptions":["Polls files in chunks at regular interval.","Check every file for changes several times a second at a fixed interval.","Check every file for changes several times a second, but use heuristics to check certain types of files less frequently than others.","Use a dynamic queue where less-frequently modified files will be checked less often.","Attempt to use the operating system/file system's native events for file changes.","Attempt to use the operating system/file system's native events to listen for changes on a file's containing directories. This can use fewer file watchers, but might be less accurate."],"default":"useFsEvents"},"watchDirectory":{"type":"string","description":"Strategy for how entire directory trees are watched under systems that lack recursive file-watching functionality.","enum":["fixedChunkSizePolling","fixedPollingInterval","dynamicPriorityPolling","useFsEvents"],"enumDescriptions":["Polls directories in chunks at regular interval.","Check every directory for changes several times a second at a fixed interval.","Use a dynamic queue where less-frequently modified directories will be checked less often.","Attempt to use the operating system/file system's native events for directory changes."],"default":"useFsEvents"},"fallbackPolling":{"type":"string","description":"When using file system events, this option specifies the polling strategy that gets used when the system runs out of native file watchers and/or doesn't support native file watchers.","enum":["fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling"],"enumDescriptions":["configuration.tsserver.watchOptions.fallbackPolling.fixedPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.priorityPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.dynamicPriorityPolling"]},"synchronousWatchDirectory":{"type":"boolean","description":"Disable deferred watching on directories. Deferred watching is useful when lots of file changes might occur at once (e.g. a change in node_modules from running npm install), but you might want to disable it with this flag for some less-common setups."}}}],"keywords":["TypeScript"]},"typescript.tsserver.watchOptions":{"description":"Configure which watching strategies should be used to keep track of files and directories.","scope":"window","default":"vscode","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.watchOptions#` instead.","oneOf":[{"type":"string","const":"vscode","description":"Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace."},{"type":"object","properties":{"watchFile":{"type":"string","description":"Strategy for how individual files are watched.","enum":["fixedChunkSizePolling","fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling","useFsEvents","useFsEventsOnParentDirectory"],"enumDescriptions":["Polls files in chunks at regular interval.","Check every file for changes several times a second at a fixed interval.","Check every file for changes several times a second, but use heuristics to check certain types of files less frequently than others.","Use a dynamic queue where less-frequently modified files will be checked less often.","Attempt to use the operating system/file system's native events for file changes.","Attempt to use the operating system/file system's native events to listen for changes on a file's containing directories. This can use fewer file watchers, but might be less accurate."],"default":"useFsEvents"},"watchDirectory":{"type":"string","description":"Strategy for how entire directory trees are watched under systems that lack recursive file-watching functionality.","enum":["fixedChunkSizePolling","fixedPollingInterval","dynamicPriorityPolling","useFsEvents"],"enumDescriptions":["Polls directories in chunks at regular interval.","Check every directory for changes several times a second at a fixed interval.","Use a dynamic queue where less-frequently modified directories will be checked less often.","Attempt to use the operating system/file system's native events for directory changes."],"default":"useFsEvents"},"fallbackPolling":{"type":"string","description":"When using file system events, this option specifies the polling strategy that gets used when the system runs out of native file watchers and/or doesn't support native file watchers.","enum":["fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling"],"enumDescriptions":["configuration.tsserver.watchOptions.fallbackPolling.fixedPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.priorityPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.dynamicPriorityPolling"]},"synchronousWatchDirectory":{"type":"boolean","description":"Disable deferred watching on directories. Deferred watching is useful when lots of file changes might occur at once (e.g. a change in node_modules from running npm install), but you might want to disable it with this flag for some less-common setups."}}}]},"js/ts.tsserver.tracing.enabled":{"type":"boolean","default":false,"description":"Enables tracing TS server performance to a directory. These trace files can be used to diagnose TS Server performance issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.enableTracing":{"type":"boolean","default":false,"description":"Enables tracing TS server performance to a directory. These trace files can be used to diagnose TS Server performance issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.tracing.enabled#` instead.","scope":"window"},"js/ts.tsserver.log":{"type":"string","enum":["off","terse","normal","verbose","requestTime"],"default":"off","description":"Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.log":{"type":"string","enum":["off","terse","normal","verbose","requestTime"],"default":"off","description":"Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.log#` instead.","scope":"window"},"js/ts.tsserver.pluginPaths":{"type":"array","items":{"type":"string","description":"Either an absolute or relative path. Relative path will be resolved against workspace folder(s)."},"default":[],"description":"Additional paths to discover TypeScript Language Service plugins.","scope":"machine","keywords":["TypeScript"]},"typescript.tsserver.pluginPaths":{"type":"array","items":{"type":"string","description":"Either an absolute or relative path. Relative path will be resolved against workspace folder(s)."},"default":[],"description":"Additional paths to discover TypeScript Language Service plugins.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.pluginPaths#` instead.","scope":"machine"}}}],"commands":[{"command":"typescript.reloadProjects","title":"Reload Project","category":"TypeScript"},{"command":"javascript.reloadProjects","title":"Reload Project","category":"JavaScript"},{"command":"typescript.selectTypeScriptVersion","title":"Select TypeScript Version...","category":"TypeScript"},{"command":"typescript.goToProjectConfig","title":"Go to Project Configuration (tsconfig)","category":"TypeScript"},{"command":"javascript.goToProjectConfig","title":"Go to Project Configuration (jsconfig / tsconfig)","category":"JavaScript"},{"command":"typescript.openTsServerLog","title":"Open TS Server log","category":"TypeScript"},{"command":"typescript.restartTsServer","title":"Restart TS Server","category":"TypeScript"},{"command":"typescript.findAllFileReferences","title":"Find File References","category":"TypeScript"},{"command":"typescript.goToSourceDefinition","title":"Go to Source Definition","category":"TypeScript"},{"command":"typescript.sortImports","title":"Sort Imports","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"javascript.sortImports","title":"Sort Imports","category":"JavaScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"typescript.removeUnusedImports","title":"Remove Unused Imports","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"javascript.removeUnusedImports","title":"Remove Unused Imports","category":"JavaScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"typescript.experimental.enableTsgo","title":"Use TypeScript Go (Experimental)","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && config.typescript-go.executablePath"},{"command":"typescript.experimental.disableTsgo","title":"Stop using TypeScript Go (Experimental)","category":"TypeScript","enablement":"config.js/ts.experimental.useTsgo || config.typescript.experimental.useTsgo"}],"menus":{"commandPalette":[{"command":"typescript.reloadProjects","when":"editorLangId == typescript && typescript.isManagedFile"},{"command":"typescript.reloadProjects","when":"editorLangId == typescriptreact && typescript.isManagedFile"},{"command":"javascript.reloadProjects","when":"editorLangId == javascript && typescript.isManagedFile"},{"command":"javascript.reloadProjects","when":"editorLangId == javascriptreact && typescript.isManagedFile"},{"command":"typescript.goToProjectConfig","when":"editorLangId == typescript && typescript.isManagedFile"},{"command":"typescript.goToProjectConfig","when":"editorLangId == typescriptreact && typescript.isManagedFile"},{"command":"javascript.goToProjectConfig","when":"editorLangId == javascript && typescript.isManagedFile"},{"command":"javascript.goToProjectConfig","when":"editorLangId == javascriptreact && typescript.isManagedFile"},{"command":"typescript.selectTypeScriptVersion","when":"typescript.isManagedFile"},{"command":"typescript.openTsServerLog","when":"typescript.isManagedFile"},{"command":"typescript.restartTsServer","when":"typescript.isManagedFile"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && typescript.isManagedFile"},{"command":"typescript.goToSourceDefinition","when":"tsSupportsSourceDefinition && typescript.isManagedFile"},{"command":"typescript.sortImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.sortImports\\b/ && editorLangId =~ /^typescript(react)?$/"},{"command":"javascript.sortImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.sortImports\\b/ && editorLangId =~ /^javascript(react)?$/"},{"command":"typescript.removeUnusedImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.removeUnusedImports\\b/ && editorLangId =~ /^typescript(react)?$/"},{"command":"javascript.removeUnusedImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.removeUnusedImports\\b/ && editorLangId =~ /^javascript(react)?$/"}],"editor/context":[{"command":"typescript.goToSourceDefinition","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && tsSupportsSourceDefinition && (resourceLangId == typescript || resourceLangId == typescriptreact || resourceLangId == javascript || resourceLangId == javascriptreact)","group":"navigation@1.41"}],"explorer/context":[{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescript","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescriptreact","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascript","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascriptreact","group":"4_search"}],"editor/title/context":[{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascript"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascriptreact"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescript"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescriptreact"}]},"breakpoints":[{"language":"typescript"},{"language":"typescriptreact"}],"taskDefinitions":[{"type":"typescript","required":["tsconfig"],"properties":{"tsconfig":{"type":"string","description":"The tsconfig file that defines the TS build."},"option":{"type":"string"}},"when":"shellExecutionSupported"}],"problemPatterns":[{"name":"tsc","regexp":"^([^\\s].*)[\\(:](\\d+)[,:](\\d+)(?:\\):\\s+|\\s+-\\s+)(error|warning|info)\\s+TS(\\d+)\\s*:\\s*(.*)$","file":1,"line":2,"column":3,"severity":4,"code":5,"message":6}],"problemMatchers":[{"name":"tsc","label":"TypeScript problems","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc"},{"name":"tsgo-watch","label":"TypeScript problems (watch mode)","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc","background":{"activeOnStart":true,"beginsPattern":{"regexp":"^build starting at .*$"},"endsPattern":{"regexp":"^build finished in .*$"}}},{"name":"tsc-watch","label":"TypeScript problems (watch mode)","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc","background":{"activeOnStart":true,"beginsPattern":{"regexp":"^\\s*(?:message TS6032:|\\[?\\D*.{1,2}[:.].{1,2}[:.].{1,2}\\D*(├\\D*\\d{1,2}\\D+┤)?(?:\\]| -)) (Starting compilation in watch mode|File change detected\\. Starting incremental compilation)\\.\\.\\."},"endsPattern":{"regexp":"^\\s*(?:message TS6042:|\\[?\\D*.{1,2}[:.].{1,2}[:.].{1,2}\\D*(├\\D*\\d{1,2}\\D+┤)?(?:\\]| -)) (?:Compilation complete\\.|Found \\d+ errors?\\.) Watching for file changes\\."}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["workspaceTrust","multiDocumentHighlightProvider","codeActionAI","codeActionRanges","editorHoverVerbosityLevel"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/typescript-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vb"},"manifest":{"name":"vb","displayName":"Visual Basic Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Visual Basic files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/asp.vb.net.tmbundle Syntaxes/ASP%20VB.net.plist ./syntaxes/asp-vb-net.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"vb","extensions":[".vb",".brs",".vbs",".bas",".vba"],"aliases":["Visual Basic","vb"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"vb","scopeName":"source.asp.vb.net","path":"./syntaxes/asp-vb-net.tmLanguage.json"}],"snippets":[{"language":"vb","path":"./snippets/vb.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/vb","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.xml"},"manifest":{"name":"xml","displayName":"XML Language Basics","description":"Provides syntax highlighting and bracket matching in XML files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"xml","extensions":[".xml",".xsd",".ascx",".atom",".axml",".axaml",".bpmn",".cpt",".csl",".csproj",".csproj.user",".dita",".ditamap",".dtd",".ent",".mod",".dtml",".fsproj",".fxml",".iml",".isml",".jmx",".launch",".menu",".mxml",".nuspec",".opml",".owl",".proj",".props",".pt",".publishsettings",".pubxml",".pubxml.user",".rbxlx",".rbxmx",".rdf",".rng",".rss",".shproj",".slnx",".storyboard",".svg",".targets",".tld",".tmx",".vbproj",".vbproj.user",".vcxproj",".vcxproj.filters",".wixproj",".wsdl",".wxi",".wxl",".wxs",".xaml",".xbl",".xib",".xlf",".xliff",".xpdl",".xul",".xoml"],"firstLine":"(\\<\\?xml.*)|(\\{if(t&&typeof t=="object"||typeof t=="function")for(let n of l(t))!d.call(s,n)&&n!==e&&S(s,n,{get:()=>t[n],enumerable:!(o=f(t,n))||o.enumerable});return s};var _=(s,t,e)=>(e=s!=null?E(T(s)):{},C(t||!s||!s.__esModule?S(e,"default",{value:s,enumerable:!0}):e,s));var P=_(require("fs"));var h=_(require("http")),c=class{constructor(t){this.handlerName=t;let e=process.env.VSCODE_GIT_IPC_HANDLE;if(!e)throw new Error("Missing VSCODE_GIT_IPC_HANDLE");this.ipcHandlePath=e}handlerName;ipcHandlePath;call(t){let e={socketPath:this.ipcHandlePath,path:`/${this.handlerName}`,method:"POST"};return new Promise((o,n)=>{let p=h.request(e,r=>{if(r.statusCode!==200)return n(new Error(`Bad status code: ${r.statusCode}`));let a=[];r.on("data",u=>a.push(u)),r.on("end",()=>o(JSON.parse(Buffer.concat(a).toString("utf8"))))});p.on("error",r=>n(r)),p.write(JSON.stringify(t)),p.end()})}};function i(s){console.error("Missing or invalid credentials."),console.error(s),process.exit(1)}function v(s){if(!process.env.VSCODE_GIT_ASKPASS_PIPE)return i("Missing pipe");if(!process.env.VSCODE_GIT_ASKPASS_TYPE)return i("Missing type");if(process.env.VSCODE_GIT_ASKPASS_TYPE!=="https"&&process.env.VSCODE_GIT_ASKPASS_TYPE!=="ssh")return i(`Invalid type: ${process.env.VSCODE_GIT_ASKPASS_TYPE}`);if(process.env.VSCODE_GIT_COMMAND==="fetch"&&process.env.VSCODE_GIT_FETCH_SILENT)return i("Skip silent fetch commands");let t=process.env.VSCODE_GIT_ASKPASS_PIPE,e=process.env.VSCODE_GIT_ASKPASS_TYPE;new c("askpass").call({askpassType:e,argv:s}).then(n=>{P.writeFileSync(t,n+` +`),setTimeout(()=>process.exit(0),0)}).catch(n=>i(n))}v(process.argv); +//# sourceMappingURL=askpass-main.js.map diff --git a/Extension/artifacts/index-host/user2/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh b/Extension/artifacts/index-host/user2/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh new file mode 100644 index 000000000..93a08c389 --- /dev/null +++ b/Extension/artifacts/index-host/user2/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh @@ -0,0 +1,5 @@ +#!/bin/sh +VSCODE_GIT_ASKPASS_PIPE=`mktemp` +ELECTRON_RUN_AS_NODE="1" VSCODE_GIT_ASKPASS_PIPE="$VSCODE_GIT_ASKPASS_PIPE" VSCODE_GIT_ASKPASS_TYPE="https" "$VSCODE_GIT_ASKPASS_NODE" "$VSCODE_GIT_ASKPASS_MAIN" $VSCODE_GIT_ASKPASS_EXTRA_ARGS $* +cat $VSCODE_GIT_ASKPASS_PIPE +rm $VSCODE_GIT_ASKPASS_PIPE diff --git a/Extension/artifacts/index-host/user2/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh b/Extension/artifacts/index-host/user2/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh new file mode 100644 index 000000000..8fb014e5c --- /dev/null +++ b/Extension/artifacts/index-host/user2/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh @@ -0,0 +1,2 @@ +#!/bin/sh +echo '' \ No newline at end of file diff --git a/Extension/artifacts/index-host/user2/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh b/Extension/artifacts/index-host/user2/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh new file mode 100644 index 000000000..dca45bc84 --- /dev/null +++ b/Extension/artifacts/index-host/user2/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh @@ -0,0 +1,5 @@ +#!/bin/sh +VSCODE_GIT_ASKPASS_PIPE=`mktemp` +ELECTRON_RUN_AS_NODE="1" VSCODE_GIT_ASKPASS_PIPE="$VSCODE_GIT_ASKPASS_PIPE" VSCODE_GIT_ASKPASS_TYPE="ssh" "$VSCODE_GIT_ASKPASS_NODE" "$VSCODE_GIT_ASKPASS_MAIN" $VSCODE_GIT_ASKPASS_EXTRA_ARGS $* +cat $VSCODE_GIT_ASKPASS_PIPE +rm $VSCODE_GIT_ASKPASS_PIPE diff --git a/Extension/artifacts/index-host/user2/User/workspaceStorage/3a48387e6f0931eefa6192603b76a653/meta.json b/Extension/artifacts/index-host/user2/User/workspaceStorage/3a48387e6f0931eefa6192603b76a653/meta.json new file mode 100644 index 000000000..a1961848e --- /dev/null +++ b/Extension/artifacts/index-host/user2/User/workspaceStorage/3a48387e6f0931eefa6192603b76a653/meta.json @@ -0,0 +1,4 @@ +{ + "id": "3a48387e6f0931eefa6192603b76a653", + "name": "project" +} \ No newline at end of file diff --git a/Extension/artifacts/index-host/user2/User/workspaceStorage/83f6259fa35f7b06566a1bde4d3f182d/meta.json b/Extension/artifacts/index-host/user2/User/workspaceStorage/83f6259fa35f7b06566a1bde4d3f182d/meta.json new file mode 100644 index 000000000..cebe972f4 --- /dev/null +++ b/Extension/artifacts/index-host/user2/User/workspaceStorage/83f6259fa35f7b06566a1bde4d3f182d/meta.json @@ -0,0 +1,4 @@ +{ + "id": "83f6259fa35f7b06566a1bde4d3f182d", + "name": "project2" +} \ No newline at end of file diff --git a/Extension/artifacts/index-host/user2/languagepacks.json b/Extension/artifacts/index-host/user2/languagepacks.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/index-host/user2/languagepacks.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/agenthost.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/agenthost.log new file mode 100644 index 000000000..6710952f4 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T080818/agenthost.log @@ -0,0 +1,32 @@ +2026-09-09 08:08:19.362 [info] Agent Host process started successfully +2026-09-09 08:08:19.376 [info] AgentService initialized +2026-09-09 08:08:19.380 [info] Registering agent provider: copilotcli +2026-09-09 08:08:19.382 [info] Registering agent provider: claude +2026-09-09 08:08:19.394 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-09 08:08:19.405 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-09 08:08:19.411 [info] [Claude] Models refreshed (merged). Count: 0, +2026-09-09 08:08:19.596 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-09 08:08:19.608 [info] [CommandAutoApprover] Tree-sitter initialized (bash=available, powershell=available) +2026-09-09 08:08:19.622 [info] [ProtocolServer] Initialize: clientId=5751b5f9-99e2-4d9d-97e0-6d2a5f20a1d3, protocolVersions=[1.0.0, 0.9.0, 0.8.0, 0.7.0, 0.6.0, 0.5.2, 0.5.1] +2026-09-09 08:08:19.666 [info] [Copilot] Listing chats to migrate... +2026-09-09 08:08:19.666 [info] [Copilot] Starting CopilotClient... +2026-09-09 08:08:19.667 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-09 08:08:19.670 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-09 08:08:19.728 [info] [AgentService] showExternalSessions changed 'none' -> 'recent'; queueing session list reconciliation +2026-09-09 08:08:19.742 [info] [Claude] SDK not downloaded yet; deferring the migratable chat list +2026-09-09 08:08:19.899 [info] [WebSocketProtocol] Server listening on socket \\.\pipe\vscode-agent-host-c943231cc024af7a56378cf0e8a37206ef7061693540b8b118beb07f4a949413-s3I0niF2Lfjw5fmkcHj60w +2026-09-09 08:08:20.376 [info] [Claude] Auth token unchanged +2026-09-09 08:08:20.565 [info] [Copilot] CopilotClient started successfully +2026-09-09 08:08:20.568 [info] [Copilot] Listed 0 SDK session(s) for chats to migrate +2026-09-09 08:08:20.568 [info] [Copilot] Found 0 legacy sessions +2026-09-09 08:08:20.574 [info] [Copilot] Listing discoverable chats... +2026-09-09 08:08:20.576 [info] [Copilot] Listed 0 SDK session(s) for discoverable chats +2026-09-09 08:08:20.576 [info] [AgentService] pruned 0 stale external session row(s) older than 30 days +2026-09-09 08:08:20.577 [info] [Copilot] Chat discovery: 0 SDK session(s) -> 0 external, 0 adoptable legacy extension-host, 0 suppressed adoptable legacy extension-host, 0 suppressed archived legacy extension-host, 0 already known to Agent Host, 0 without a working directory, 0 with unsupported or missing client name, 0 outside the import window, 0 without repository metadata, 0 failed to classify (adopt legacy extension-host chats: false) +2026-09-09 08:08:20.577 [info] [Claude] SDK not downloaded yet; deferring chat discovery +2026-09-09 08:08:20.840 [info] [Copilot] Restarting CopilotClient (CAPI proxy configuration changed (proxy (none) -> http://127.0.0.1:7890)) +2026-09-09 08:08:21.517 [info] [ProtocolServer] Client disconnected: 5751b5f9-99e2-4d9d-97e0-6d2a5f20a1d3, subscriptions=1 +2026-09-09 08:08:21.518 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-09 08:08:21.518 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-09 08:08:21.519 [info] AgentService: shutting down all providers... +2026-09-09 08:08:21.520 [info] [Copilot] Shutting down... diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/editSessions.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/editSessions.log new file mode 100644 index 000000000..1d7cce954 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T080818/editSessions.log @@ -0,0 +1 @@ +2026-09-09 08:08:20.577 [info] Prompting to enable cloud changes, has application previously launched from Continue On flow: false diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/main.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/main.log new file mode 100644 index 000000000..89d294717 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T080818/main.log @@ -0,0 +1,12 @@ +2026-09-09 08:08:18.251 [info] StorageMainService: creating application shared storage +2026-09-09 08:08:18.252 [info] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +2026-09-09 08:08:18.252 [info] [shared storage] Initializing fallback application storage (path: in-memory) +2026-09-09 08:08:18.252 [error] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +2026-09-09 08:08:18.262 [info] [shared storage] Fallback application storage initialized with 3 items +2026-09-09 08:08:19.002 [info] update#setState idle +2026-09-09 08:08:19.026 [info] AgentHostProcessManager: agent host started +2026-09-09 08:08:19.400 [error] [AgentHost:stderr] (node:6688) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +2026-09-09 08:08:21.565 [info] Extension host with pid 21228 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/mcpGateway.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/mcpGateway.log new file mode 100644 index 000000000..58d34c5af --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T080818/mcpGateway.log @@ -0,0 +1 @@ +2026-09-09 08:08:18.255 [info] [McpGatewayService] Initialized diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/network-shared.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/network-shared.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/remoteTunnelService.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/remoteTunnelService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/sharedprocess.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/sharedprocess.log new file mode 100644 index 000000000..4d42fcb38 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T080818/sharedprocess.log @@ -0,0 +1,2 @@ +2026-09-09 08:08:19.625 [info] Started initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/index-host/extensions +2026-09-09 08:08:19.717 [info] Completed initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/index-host/extensions diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/telemetry.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/telemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/terminal.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/terminal.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/tunnelHostService.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/tunnelHostService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/userDataSync.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/userDataSync.log new file mode 100644 index 000000000..94383955a --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T080818/userDataSync.log @@ -0,0 +1,2 @@ +2026-09-09 08:08:19.587 [info] [AutoSync] Using settings sync service https://vscode-sync.trafficmanager.net/ +2026-09-09 08:08:19.587 [info] [AutoSync] Disabled. diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/extHostTelemetry.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/extHostTelemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/exthost.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/exthost.log new file mode 100644 index 000000000..cc1eb747f --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/exthost.log @@ -0,0 +1,75 @@ +2026-09-09 08:08:20.008 [info] Extension host with pid 21228 started +2026-09-09 08:08:20.008 [info] Skipping acquiring lock for i:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\user2\User\workspaceStorage\3a48387e6f0931eefa6192603b76a653. +2026-09-09 08:08:20.132 [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onLanguage' +2026-09-09 08:08:20.151 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github' +2026-09-09 08:08:20.231 [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.git +2026-09-09 08:08:20.320 [info] ExtensionService#_doActivateExtension vscode.git, startup: true, activationEvent: '*' +2026-09-09 08:08:20.357 [info] ExtensionService#_doActivateExtension vscode.github, startup: true, activationEvent: '*' +2026-09-09 08:08:20.399 [info] ExtensionService#_doActivateExtension hornet.hornet-cpp, startup: true, activationEvent: 'workspaceContains:**/CMakeLists.txt,**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}' +2026-09-09 08:08:20.715 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.openRepositoryInParentFolders', provide the URI of a resource or 'null' for any resource. +2026-09-09 08:08:20.715 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.showProgress', provide the URI of a resource or 'null' for any resource. +2026-09-09 08:08:20.736 [info] Eager extensions activated +2026-09-09 08:08:20.760 [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: false, activationEvent: 'onStartupFinished' +2026-09-09 08:08:20.762 [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished' +2026-09-09 08:08:21.509 [info] Extension host terminating: received terminate message from renderer +2026-09-09 08:08:21.531 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14014:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-09 08:08:21.532 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14014:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-09 08:08:21.550 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14014:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-09 08:08:21.550 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14014:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-09 08:08:21.550 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14014:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-09 08:08:21.556 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14014:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-09 08:08:21.565 [info] Extension host with pid 21228 exiting with code 0 diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/output_logging_20260909T080820/1-Hornet CC++.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/output_logging_20260909T080820/1-Hornet CC++.log new file mode 100644 index 000000000..1a3d8d3f0 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/output_logging_20260909T080820/1-Hornet CC++.log @@ -0,0 +1,91 @@ +Hornet C/C++ 0.1.3 (i:\BackFile\code\hornet-cpptools\Extension) +[2026-09-09T15:08:20.463Z] [project] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-09T15:08:20.489Z] [project] [Compiler] No compilation database: inferred browsing commands for 2 source files. Build flags and macros may still be incomplete. +[2026-09-09T15:08:20.490Z] [project] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-09T15:08:20.553Z] [project] [Compiler] I[08:08:20.548] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[08:08:20.549] Features: windows+grpc +I[08:08:20.549] PID: 28340 +I[08:08:20.549] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project +I[08:08:20.549] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[08:08:20.549] argv[1]: --background-index +I[08:08:20.549] argv[2]: --enable-config=0 +I[08:08:20.549] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project\.vscode\hornet\compile-db\fallback +I[08:08:20.549] argv[4]: -j=10 +I[08:08:20.549] Starting LSP over stdin/stdout +I[08:08:20.549] <-- initialize(0) +[2026-09-09T15:08:20.570Z] [project] [Compiler] I[08:08:20.571] --> reply:initialize(0) 21 ms +[2026-09-09T15:08:20.572Z] [project] [Compiler] Compiler ready +[2026-09-09T15:08:20.577Z] [project] [Compiler] I[08:08:20.572] <-- initialized +[2026-09-09T15:08:20.578Z] [project] [Compiler] I[08:08:20.579] <-- textDocument/didOpen +[2026-09-09T15:08:20.578Z] [project] [Compiler] I[08:08:20.579] <-- textDocument/documentSymbol(1) +[2026-09-09T15:08:20.579Z] [project] [Compiler] I[08:08:20.580] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project\.vscode\hornet\compile-db\fallback\compile_commands.json +[2026-09-09T15:08:20.579Z] [project] [Compiler] I[08:08:20.580] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\a.cpp" +I[08:08:20.580] --> window/workDoneProgress/create(0) +I[08:08:20.580] Enqueueing 2 commands for indexing +[2026-09-09T15:08:20.581Z] [project] [Compiler] I[08:08:20.581] <-- reply(0) +I[08:08:20.581] --> $/progress +I[08:08:20.581] --> $/progress +[2026-09-09T15:08:20.586Z] [project] [Compiler] I[08:08:20.587] --> $/progress +[2026-09-09T15:08:20.587Z] [project] [Compiler] I[08:08:20.587] --> $/progress +I[08:08:20.587] --> $/progress +I[08:08:20.587] --> $/progress +[2026-09-09T15:08:20.597Z] [project] [Compiler] I[08:08:20.597] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project\b.cpp (1 symbols, 1 refs, 1 files) +[2026-09-09T15:08:20.597Z] [project] [Compiler] I[08:08:20.598] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project\a.cpp (1 symbols, 1 refs, 1 files) +[2026-09-09T15:08:20.604Z] [project] [Compiler] I[08:08:20.605] --> $/progress +[2026-09-09T15:08:20.604Z] [project] [Compiler] I[08:08:20.605] --> $/progress +[2026-09-09T15:08:20.607Z] [project] [Compiler] I[08:08:20.607] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project\a.cpp version 0 in 0.01 seconds +[2026-09-09T15:08:20.629Z] [project] [Compiler] I[08:08:20.630] --> textDocument/publishDiagnostics +[2026-09-09T15:08:20.630Z] [project] [Compiler] I[08:08:20.630] --> reply:textDocument/documentSymbol(1) 51 ms +[2026-09-09T15:08:20.755Z] [project] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-09T15:08:20.758Z] [project] [Compiler] I[08:08:20.759] <-- shutdown(2) +I[08:08:20.759] --> reply:shutdown(2) 0 ms +[2026-09-09T15:08:20.796Z] [project] [Compiler] I[08:08:20.789] <-- exit +I[08:08:20.789] LSP finished, exiting with status 0 +[2026-09-09T15:08:20.808Z] [project] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-09T15:08:20.809Z] [project] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-09T15:08:20.841Z] [project] [Compiler] Index build: Error: Index build interrupted by a language-service restart. +[2026-09-09T15:08:20.869Z] [project] [Compiler] I[08:08:20.869] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[08:08:20.870] Features: windows+grpc +I[08:08:20.870] PID: 27656 +I[08:08:20.870] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project +I[08:08:20.870] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[08:08:20.870] argv[1]: --background-index +I[08:08:20.870] argv[2]: --enable-config=0 +I[08:08:20.870] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project\.vscode\hornet\compile-db\fallback +I[08:08:20.870] argv[4]: -j=10 +[2026-09-09T15:08:20.869Z] [project] [Compiler] I[08:08:20.870] Starting LSP over stdin/stdout +I[08:08:20.870] <-- initialize(0) +[2026-09-09T15:08:20.890Z] [project] [Compiler] I[08:08:20.890] --> reply:initialize(0) 20 ms +[2026-09-09T15:08:20.890Z] [project] [Compiler] Compiler ready +[2026-09-09T15:08:20.894Z] [project] [Compiler] I[08:08:20.891] <-- initialized +[2026-09-09T15:08:20.895Z] [project] [Compiler] I[08:08:20.895] <-- textDocument/didOpen +[2026-09-09T15:08:20.895Z] [project] [Compiler] I[08:08:20.896] <-- textDocument/documentSymbol(1) +[2026-09-09T15:08:20.896Z] [project] [Compiler] I[08:08:20.896] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project\.vscode\hornet\compile-db\fallback\compile_commands.json +[2026-09-09T15:08:20.896Z] [project] [Compiler] I[08:08:20.897] --> window/workDoneProgress/create(0) +I[08:08:20.897] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project\\a.cpp" +I[08:08:20.897] Enqueueing 3 commands for indexing +[2026-09-09T15:08:20.897Z] [project] [Compiler] I[08:08:20.897] <-- reply(0) +I[08:08:20.897] --> $/progress +I[08:08:20.898] --> $/progress +[2026-09-09T15:08:20.905Z] [project] [Compiler] I[08:08:20.906] --> $/progress +I[08:08:20.906] --> $/progress +[2026-09-09T15:08:20.906Z] [project] [Compiler] I[08:08:20.906] --> $/progress +[2026-09-09T15:08:20.917Z] [project] [Compiler] I[08:08:20.918] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project\new.cpp (1 symbols, 1 refs, 1 files) +[2026-09-09T15:08:20.922Z] [project] [Compiler] I[08:08:20.922] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project\a.cpp version 0 in 0.01 seconds +[2026-09-09T15:08:20.923Z] [project] [Compiler] I[08:08:20.924] --> $/progress +[2026-09-09T15:08:20.942Z] [project] [Compiler] I[08:08:20.943] --> textDocument/publishDiagnostics +I[08:08:20.943] --> reply:textDocument/documentSymbol(1) 47 ms +[2026-09-09T15:08:20.952Z] [project] [Compiler] I[08:08:20.952] <-- workspace/didChangeWatchedFiles +[2026-09-09T15:08:20.952Z] [project] [Compiler] I[08:08:20.952] <-- workspace/didChangeWatchedFiles +[2026-09-09T15:08:21.465Z] [project] [Compiler] I[08:08:21.465] <-- shutdown(2) +I[08:08:21.465] --> reply:shutdown(2) 0 ms +[2026-09-09T15:08:21.470Z] [project] [Compiler] I[08:08:21.466] <-- exit +I[08:08:21.466] LSP finished, exiting with status 0 +[2026-09-09T15:08:21.477Z] [project] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-09T15:08:21.477Z] [project] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-09T15:08:21.501Z] [project] [Compiler] Index build: Error: Index build interrupted by a language-service restart. +[2026-09-09T15:08:21.501Z] [ERROR] Index build interrupted by a language-service restart. diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/vscode.git/Git.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/vscode.git/Git.log new file mode 100644 index 000000000..1cafb081c --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/vscode.git/Git.log @@ -0,0 +1,13 @@ +2026-09-09 08:08:20.451 [info] [main] Log level: Info +2026-09-09 08:08:20.451 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-09 08:08:20.451 [info] [main] Validating found git in: "C:\Program Files (x86)\Git\cmd\git.exe" +2026-09-09 08:08:20.451 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-09 08:08:20.451 [info] [main] Validating found git in: "C:\Users\LiXueqiang\AppData\Local\Programs\Git\cmd\git.exe" +2026-09-09 08:08:20.551 [info] [main] Validating found git in: "D:\Software\Git\cmd\git.exe" +2026-09-09 08:08:20.621 [info] [askpassManager] Creating content-addressed askpass scripts at i:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\user2\User\globalStorage\vscode.git\askpass\70789581cae28aa7 +2026-09-09 08:08:20.711 [info] [askpassManager] Successfully created content-addressed askpass scripts +2026-09-09 08:08:20.733 [info] [main] Using git "2.53.0.windows.1" from "D:\Software\Git\cmd\git.exe" +2026-09-09 08:08:20.733 [info] [Model][doInitialScan] Initial repository scan started +2026-09-09 08:08:20.843 [info] > git rev-parse --show-toplevel [98ms] +2026-09-09 08:08:20.924 [info] > git rev-parse --show-toplevel [74ms] +2026-09-09 08:08:20.927 [info] [Model][doInitialScan] Initial repository scan completed - repositories (0), closed repositories (0), parent repositories (1), unsafe repositories (0) diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/vscode.github-authentication/GitHub Authentication.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/vscode.github-authentication/GitHub Authentication.log new file mode 100644 index 000000000..19c295a46 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/vscode.github-authentication/GitHub Authentication.log @@ -0,0 +1,217 @@ +2026-09-09 08:08:20.269 [info] Reading sessions from keychain... +2026-09-09 08:08:20.269 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.269 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.269 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.269 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.269 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.269 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.269 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.269 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.280 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.280 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.375 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.375 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.387 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.388 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.388 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.388 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.388 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.389 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.389 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.389 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.389 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.389 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.389 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.389 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.389 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.389 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.389 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.389 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.390 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.390 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.390 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.390 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.390 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.390 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.390 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.390 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.425 [info] Getting sessions for repo... +2026-09-09 08:08:20.426 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.429 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.429 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.429 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.429 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.429 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.429 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.430 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.430 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.430 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.430 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.430 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.430 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.430 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.430 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.430 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.430 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.430 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.430 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.431 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.431 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.431 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.431 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.431 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.431 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.436 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.436 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.437 [info] Getting sessions for repo... +2026-09-09 08:08:20.437 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.437 [info] Getting sessions for repo... +2026-09-09 08:08:20.437 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.437 [info] Getting sessions for repo... +2026-09-09 08:08:20.437 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.437 [info] Getting sessions for repo... +2026-09-09 08:08:20.437 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.437 [info] Getting sessions for repo... +2026-09-09 08:08:20.437 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.437 [info] Getting sessions for repo... +2026-09-09 08:08:20.437 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.438 [info] Getting sessions for repo... +2026-09-09 08:08:20.438 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.438 [info] Getting sessions for repo... +2026-09-09 08:08:20.438 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.438 [info] Getting sessions for repo... +2026-09-09 08:08:20.438 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.438 [info] Getting sessions for repo... +2026-09-09 08:08:20.438 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.439 [info] Getting sessions for repo... +2026-09-09 08:08:20.439 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.439 [info] Getting sessions for repo... +2026-09-09 08:08:20.439 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.443 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.443 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.443 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.443 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.443 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.443 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.448 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.448 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.448 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.448 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.448 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.448 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.449 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.449 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.449 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.449 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.449 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.449 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.449 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.449 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.449 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.449 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.450 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.450 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.454 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.454 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.454 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.455 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.455 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.455 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.455 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.455 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.456 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.456 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.456 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.456 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.456 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.456 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.456 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.456 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.457 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.457 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.457 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.457 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.457 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.457 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.458 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.458 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.458 [info] Getting sessions for read:user,user:email... +2026-09-09 08:08:20.458 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:08:20.460 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.460 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.461 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.461 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.461 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.461 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.461 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.461 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.462 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.462 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.462 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.462 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.462 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.462 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.462 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.462 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.463 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.463 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.463 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.463 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.463 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.463 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.468 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.468 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.469 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.469 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.476 [info] Getting sessions for repo... +2026-09-09 08:08:20.476 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.476 [info] Getting sessions for repo... +2026-09-09 08:08:20.476 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.476 [info] Getting sessions for repo... +2026-09-09 08:08:20.476 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.476 [info] Getting sessions for repo... +2026-09-09 08:08:20.476 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.476 [info] Getting sessions for repo... +2026-09-09 08:08:20.476 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.477 [info] Getting sessions for repo... +2026-09-09 08:08:20.477 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.477 [info] Getting sessions for repo... +2026-09-09 08:08:20.477 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.477 [info] Getting sessions for repo... +2026-09-09 08:08:20.477 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.477 [info] Getting sessions for repo... +2026-09-09 08:08:20.477 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.477 [info] Getting sessions for repo... +2026-09-09 08:08:20.477 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.478 [info] Getting sessions for repo... +2026-09-09 08:08:20.478 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.478 [info] Getting sessions for repo... +2026-09-09 08:08:20.478 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.478 [info] Getting sessions for repo... +2026-09-09 08:08:20.478 [info] Got 0 sessions for repo... +2026-09-09 08:08:20.479 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.479 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.479 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.479 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.479 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.479 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.480 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.480 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.480 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.480 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.480 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.480 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.481 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.481 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.481 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.481 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.481 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.481 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.481 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.481 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.483 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.483 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.483 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.483 [info] Got 0 sessions for all scopes... +2026-09-09 08:08:20.484 [info] Getting sessions for all scopes... +2026-09-09 08:08:20.484 [info] Got 0 sessions for all scopes... diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/vscode.github/GitHub.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/vscode.github/GitHub.log new file mode 100644 index 000000000..0f0345de9 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/exthost/vscode.github/GitHub.log @@ -0,0 +1 @@ +2026-09-09 08:08:20.452 [info] Log level: Info diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/network.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/network.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/notebook.rendering.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/notebook.rendering.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/output_20260909T080819/agentSessionsOutput.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/output_20260909T080819/agentSessionsOutput.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/output_20260909T080819/tasks.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/output_20260909T080819/tasks.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/renderer.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/renderer.log new file mode 100644 index 000000000..1871efa99 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/renderer.log @@ -0,0 +1,69 @@ +2026-09-09 08:08:19.021 [info] [AgentHost:renderer] Acquiring MessagePort to agent host... +2026-09-09 08:08:19.192 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-09 08:08:19.375 [info] [AgentHost:renderer] MessagePort acquired, creating client... +2026-09-09 08:08:19.414 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NjQzYTVhNzUtYjAyOS00MjY5LTlkYjAtNDAwNmRiZDliNGQz" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-09 08:08:19.471 [info] Started initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/index-host/extensions +2026-09-09 08:08:19.481 [info] Started local extension host with pid 21228. +2026-09-09 08:08:19.669 [info] [AgentHost:renderer] Protocol connection established; clientId=5751b5f9-99e2-4d9d-97e0-6d2a5f20a1d3 +2026-09-09 08:08:19.736 [info] Completed initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/index-host/extensions +2026-09-09 08:08:19.798 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-09 08:08:19.853 [info] Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +2026-09-09 08:08:19.862 [error] [hornet.hornet-cpp]: 'configuration.semanticTokenType.description' must be defined and can not be empty +2026-09-09 08:08:20.376 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.391 [info] [AgentHost] Clearing authentication for resource: https://api.github.com +2026-09-09 08:08:20.430 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.432 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.433 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.434 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.434 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.435 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.436 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.437 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.438 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.439 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.439 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.440 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.441 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.448 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.451 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.453 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.454 [info] [AgentHost] Clearing authentication for resource: https://api.github.com/repos +2026-09-09 08:08:20.456 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.457 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.458 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.459 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.460 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.460 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.461 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.462 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.463 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.470 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.471 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.472 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.473 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.475 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.476 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.477 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.477 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.478 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.479 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.479 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.480 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.481 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:08:20.484 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.485 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.485 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.486 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.487 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.487 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.488 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.490 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.491 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.492 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.493 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.494 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.495 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NjQzYTVhNzUtYjAyOS00MjY5LTlkYjAtNDAwNmRiZDliNGQz" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-09 08:08:20.501 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:08:20.582 [info] Settings Sync: Account status changed from uninitialized to unavailable +2026-09-09 08:08:21.508 [error] AssertionError [ERR_ASSERTION]: [] + at exports.run (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:31:16) diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/textModelChanges.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/textModelChanges.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/views.log b/Extension/artifacts/index-host/user2/logs/20260909T080818/window1/views.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/agenthost.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/agenthost.log new file mode 100644 index 000000000..a5909ab38 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T081006/agenthost.log @@ -0,0 +1,35 @@ +2026-09-09 08:10:07.508 [info] Agent Host process started successfully +2026-09-09 08:10:07.522 [info] AgentService initialized +2026-09-09 08:10:07.525 [info] Registering agent provider: copilotcli +2026-09-09 08:10:07.527 [info] Registering agent provider: claude +2026-09-09 08:10:07.538 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-09 08:10:07.544 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-09 08:10:07.552 [info] [Claude] Models refreshed (merged). Count: 0, +2026-09-09 08:10:07.565 [info] [Claude] SDK not downloaded yet; deferring the migratable chat list +2026-09-09 08:10:07.571 [info] [CommandAutoApprover] Tree-sitter initialized (bash=available, powershell=available) +2026-09-09 08:10:07.588 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-09 08:10:07.608 [info] [ProtocolServer] Initialize: clientId=74392238-a2c8-4ae0-8b45-b180b0c8b01e, protocolVersions=[1.0.0, 0.9.0, 0.8.0, 0.7.0, 0.6.0, 0.5.2, 0.5.1] +2026-09-09 08:10:07.795 [info] [WebSocketProtocol] Server listening on socket \\.\pipe\vscode-agent-host-c943231cc024af7a56378cf0e8a37206ef7061693540b8b118beb07f4a949413-tyBfGyzLGv0Tqi1ZMRyoSw +2026-09-09 08:10:08.236 [info] [Claude] Auth token unchanged +2026-09-09 08:10:08.252 [info] [AgentService] pruned 0 stale external session row(s) older than 30 days +2026-09-09 08:10:08.252 [info] [Copilot] Listing discoverable chats... +2026-09-09 08:10:08.252 [info] [Copilot] Starting CopilotClient... +2026-09-09 08:10:08.253 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-09 08:10:08.254 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-09 08:10:08.298 [info] [Claude] SDK not downloaded yet; deferring chat discovery +2026-09-09 08:10:08.985 [info] [Copilot] CopilotClient started successfully +2026-09-09 08:10:08.985 [info] [Copilot] Restarting CopilotClient (CAPI proxy configuration changed (proxy (none) -> http://127.0.0.1:7890)) +2026-09-09 08:10:08.987 [warning] [Copilot] Failed to emit discovered chats SERVER_SHUTTING_DOWN +2026-09-09 08:10:09.251 [info] [Copilot] Listing discoverable chats... +2026-09-09 08:10:09.251 [info] [Copilot] Starting CopilotClient... +2026-09-09 08:10:09.251 [info] [Copilot] Resolved CAPI proxy and forwarded HTTP_PROXY/HTTPS_PROXY to Copilot SDK +2026-09-09 08:10:09.251 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-09 08:10:09.251 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-09 08:10:09.894 [info] [Copilot] CopilotClient started successfully +2026-09-09 08:10:09.895 [info] [Copilot] Listed 0 SDK session(s) for discoverable chats +2026-09-09 08:10:09.896 [info] [Copilot] Chat discovery: 0 SDK session(s) -> 0 external, 0 adoptable legacy extension-host, 0 suppressed adoptable legacy extension-host, 0 suppressed archived legacy extension-host, 0 already known to Agent Host, 0 without a working directory, 0 with unsupported or missing client name, 0 outside the import window, 0 without repository metadata, 0 failed to classify (adopt legacy extension-host chats: false) +2026-09-09 08:10:10.211 [info] [ProtocolServer] Client disconnected: 74392238-a2c8-4ae0-8b45-b180b0c8b01e, subscriptions=1 +2026-09-09 08:10:10.212 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-09 08:10:10.212 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-09 08:10:10.214 [info] AgentService: shutting down all providers... +2026-09-09 08:10:10.214 [info] [Copilot] Shutting down... diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/editSessions.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/editSessions.log new file mode 100644 index 000000000..8c07e732f --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T081006/editSessions.log @@ -0,0 +1 @@ +2026-09-09 08:10:08.452 [info] Prompting to enable cloud changes, has application previously launched from Continue On flow: false diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/main.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/main.log new file mode 100644 index 000000000..3acacbb75 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T081006/main.log @@ -0,0 +1,12 @@ +2026-09-09 08:10:06.806 [info] StorageMainService: creating application shared storage +2026-09-09 08:10:06.806 [info] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +2026-09-09 08:10:06.806 [info] [shared storage] Initializing fallback application storage (path: in-memory) +2026-09-09 08:10:06.806 [error] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +2026-09-09 08:10:06.816 [info] [shared storage] Fallback application storage initialized with 3 items +2026-09-09 08:10:07.160 [info] update#setState idle +2026-09-09 08:10:07.187 [info] AgentHostProcessManager: agent host started +2026-09-09 08:10:07.544 [error] [AgentHost:stderr] (node:26212) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +2026-09-09 08:10:10.220 [info] Extension host with pid 27744 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/mcpGateway.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/mcpGateway.log new file mode 100644 index 000000000..6559e87f1 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T081006/mcpGateway.log @@ -0,0 +1 @@ +2026-09-09 08:10:06.809 [info] [McpGatewayService] Initialized diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/network-shared.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/network-shared.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/remoteTunnelService.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/remoteTunnelService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/sharedprocess.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/sharedprocess.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/telemetry.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/telemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/terminal.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/terminal.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/tunnelHostService.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/tunnelHostService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/userDataSync.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/userDataSync.log new file mode 100644 index 000000000..e9bebfe92 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T081006/userDataSync.log @@ -0,0 +1,2 @@ +2026-09-09 08:10:07.696 [info] [AutoSync] Using settings sync service https://vscode-sync.trafficmanager.net/ +2026-09-09 08:10:07.696 [info] [AutoSync] Disabled. diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/extHostTelemetry.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/extHostTelemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/exthost.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/exthost.log new file mode 100644 index 000000000..76efe67c9 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/exthost.log @@ -0,0 +1,35 @@ +2026-09-09 08:10:07.933 [info] Extension host with pid 27744 started +2026-09-09 08:10:07.933 [info] Skipping acquiring lock for i:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\user2\User\workspaceStorage\83f6259fa35f7b06566a1bde4d3f182d. +2026-09-09 08:10:08.007 [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onLanguage' +2026-09-09 08:10:08.022 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github' +2026-09-09 08:10:08.118 [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.git +2026-09-09 08:10:08.151 [info] ExtensionService#_doActivateExtension vscode.git, startup: true, activationEvent: '*' +2026-09-09 08:10:08.188 [info] ExtensionService#_doActivateExtension vscode.github, startup: true, activationEvent: '*' +2026-09-09 08:10:08.236 [info] ExtensionService#_doActivateExtension hornet.hornet-cpp, startup: true, activationEvent: 'workspaceContains:**/CMakeLists.txt,**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}' +2026-09-09 08:10:08.429 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.openRepositoryInParentFolders', provide the URI of a resource or 'null' for any resource. +2026-09-09 08:10:08.429 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.showProgress', provide the URI of a resource or 'null' for any resource. +2026-09-09 08:10:08.454 [info] Eager extensions activated +2026-09-09 08:10:08.533 [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: false, activationEvent: 'onStartupFinished' +2026-09-09 08:10:08.535 [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished' +2026-09-09 08:10:10.204 [info] Extension host terminating: received terminate message from renderer +2026-09-09 08:10:10.212 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14023:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-09 08:10:10.217 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14023:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-09 08:10:10.220 [info] Extension host with pid 27744 exiting with code 0 diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/output_logging_20260909T081007/1-Hornet CC++.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/output_logging_20260909T081007/1-Hornet CC++.log new file mode 100644 index 000000000..69c351ce5 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/output_logging_20260909T081007/1-Hornet CC++.log @@ -0,0 +1,86 @@ +Hornet C/C++ 0.1.3 (i:\BackFile\code\hornet-cpptools\Extension) +[2026-09-09T15:10:08.276Z] [project2] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-09T15:10:08.304Z] [project2] [Compiler] No compilation database: inferred browsing commands for 2 source files. Build flags and macros may still be incomplete. +[2026-09-09T15:10:08.305Z] [project2] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-09T15:10:08.358Z] [project2] [Compiler] I[08:10:08.357] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[08:10:08.358] Features: windows+grpc +I[08:10:08.358] PID: 15780 +I[08:10:08.358] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2 +I[08:10:08.358] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[08:10:08.358] argv[1]: --background-index +I[08:10:08.358] argv[2]: --enable-config=0 +I[08:10:08.358] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2\.vscode\hornet\compile-db\fallback +I[08:10:08.358] argv[4]: -j=10 +[2026-09-09T15:10:08.359Z] [project2] [Compiler] I[08:10:08.358] Starting LSP over stdin/stdout +I[08:10:08.358] <-- initialize(0) +[2026-09-09T15:10:08.378Z] [project2] [Compiler] I[08:10:08.378] --> reply:initialize(0) 19 ms +[2026-09-09T15:10:08.380Z] [project2] [Compiler] Compiler ready +[2026-09-09T15:10:08.384Z] [project2] [Compiler] I[08:10:08.380] <-- initialized +[2026-09-09T15:10:08.386Z] [project2] [Compiler] I[08:10:08.386] <-- textDocument/didOpen +[2026-09-09T15:10:08.386Z] [project2] [Compiler] I[08:10:08.386] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2\.vscode\hornet\compile-db\fallback\compile_commands.json +I[08:10:08.386] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\a.cpp" +[2026-09-09T15:10:08.386Z] [project2] [Compiler] I[08:10:08.386] --> window/workDoneProgress/create(0) +I[08:10:08.386] Enqueueing 2 commands for indexing +I[08:10:08.387] <-- textDocument/documentSymbol(1) +[2026-09-09T15:10:08.388Z] [project2] [Compiler] I[08:10:08.388] <-- reply(0) +I[08:10:08.388] --> $/progress +I[08:10:08.388] --> $/progress +[2026-09-09T15:10:08.395Z] [project2] [Compiler] I[08:10:08.395] --> $/progress +I[08:10:08.395] --> $/progress +I[08:10:08.395] --> $/progress +[2026-09-09T15:10:08.395Z] [project2] [Compiler] I[08:10:08.395] --> $/progress +[2026-09-09T15:10:08.406Z] [project2] [Compiler] I[08:10:08.406] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2\a.cpp (1 symbols, 1 refs, 1 files) +[2026-09-09T15:10:08.407Z] [project2] [Compiler] I[08:10:08.407] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2\b.cpp (1 symbols, 1 refs, 1 files) +[2026-09-09T15:10:08.409Z] [project2] [Compiler] I[08:10:08.409] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2\a.cpp version 0 in 0.01 seconds +[2026-09-09T15:10:08.411Z] [project2] [Compiler] I[08:10:08.411] --> $/progress +[2026-09-09T15:10:08.413Z] [project2] [Compiler] I[08:10:08.413] --> $/progress +[2026-09-09T15:10:08.469Z] [project2] [Compiler] I[08:10:08.435] --> textDocument/publishDiagnostics +I[08:10:08.435] --> reply:textDocument/documentSymbol(1) 48 ms +[2026-09-09T15:10:08.479Z] [project2] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-09T15:10:08.481Z] [project2] [Compiler] I[08:10:08.481] <-- shutdown(2) +I[08:10:08.481] --> reply:shutdown(2) 0 ms +[2026-09-09T15:10:08.489Z] [project2] [Compiler] I[08:10:08.482] <-- exit +I[08:10:08.482] LSP finished, exiting with status 0 +[2026-09-09T15:10:08.499Z] [project2] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-09T15:10:08.500Z] [project2] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-09T15:10:08.567Z] [project2] [Compiler] I[08:10:08.562] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[08:10:08.564] Features: windows+grpc +I[08:10:08.564] PID: 13040 +I[08:10:08.564] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2 +I[08:10:08.564] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[08:10:08.564] argv[1]: --background-index +I[08:10:08.564] argv[2]: --enable-config=0 +I[08:10:08.564] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2\.vscode\hornet\compile-db\fallback +I[08:10:08.564] argv[4]: -j=10 +I[08:10:08.564] Starting LSP over stdin/stdout +[2026-09-09T15:10:08.567Z] [project2] [Compiler] I[08:10:08.567] <-- initialize(0) +[2026-09-09T15:10:08.573Z] [project2] [Compiler] Index build: Error: Index build interrupted by a language-service restart. +[2026-09-09T15:10:08.586Z] [project2] [Compiler] I[08:10:08.586] --> reply:initialize(0) 19 ms +[2026-09-09T15:10:08.587Z] [project2] [Compiler] Compiler ready +[2026-09-09T15:10:08.591Z] [project2] [Compiler] I[08:10:08.587] <-- initialized +[2026-09-09T15:10:08.592Z] [project2] [Compiler] I[08:10:08.592] <-- textDocument/didOpen +[2026-09-09T15:10:08.592Z] [project2] [Compiler] I[08:10:08.592] <-- textDocument/documentSymbol(1) +[2026-09-09T15:10:08.592Z] [project2] [Compiler] I[08:10:08.593] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2\.vscode\hornet\compile-db\fallback\compile_commands.json +I[08:10:08.593] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\index-host\\project2\\a.cpp" +I[08:10:08.593] --> window/workDoneProgress/create(0) +[2026-09-09T15:10:08.593Z] [project2] [Compiler] I[08:10:08.593] Enqueueing 3 commands for indexing +[2026-09-09T15:10:08.593Z] [project2] [Compiler] I[08:10:08.594] <-- reply(0) +I[08:10:08.594] --> $/progress +I[08:10:08.594] --> $/progress +[2026-09-09T15:10:08.601Z] [project2] [Compiler] I[08:10:08.601] --> $/progress +I[08:10:08.601] --> $/progress +I[08:10:08.601] --> $/progress +[2026-09-09T15:10:08.613Z] [project2] [Compiler] I[08:10:08.613] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2\new.cpp (1 symbols, 1 refs, 1 files) +[2026-09-09T15:10:08.617Z] [project2] [Compiler] I[08:10:08.617] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\index-host\project2\a.cpp version 0 in 0.01 seconds +[2026-09-09T15:10:08.619Z] [project2] [Compiler] I[08:10:08.620] --> $/progress +[2026-09-09T15:10:08.639Z] [project2] [Compiler] I[08:10:08.639] <-- workspace/didChangeWatchedFiles +[2026-09-09T15:10:08.642Z] [project2] [Compiler] I[08:10:08.642] --> textDocument/publishDiagnostics +[2026-09-09T15:10:08.642Z] [project2] [Compiler] I[08:10:08.643] --> reply:textDocument/documentSymbol(1) 50 ms +[2026-09-09T15:10:08.674Z] [project2] [Compiler] I[08:10:08.675] <-- workspace/didChangeWatchedFiles +[2026-09-09T15:10:10.182Z] [project2] [Compiler] Index ready: 3 source files (cached for next startup) +[2026-09-09T15:10:10.199Z] [project2] [Compiler] I[08:10:10.200] <-- workspace/symbol(2) +[2026-09-09T15:10:10.200Z] [project2] [Compiler] I[08:10:10.200] --> reply:workspace/symbol(2) 0 ms diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/vscode.git/Git.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/vscode.git/Git.log new file mode 100644 index 000000000..199904701 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/vscode.git/Git.log @@ -0,0 +1,15 @@ +2026-09-09 08:10:08.266 [info] [main] Log level: Info +2026-09-09 08:10:08.266 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-09 08:10:08.266 [info] [main] Validating found git in: "C:\Program Files (x86)\Git\cmd\git.exe" +2026-09-09 08:10:08.266 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-09 08:10:08.266 [info] [main] Validating found git in: "C:\Users\LiXueqiang\AppData\Local\Programs\Git\cmd\git.exe" +2026-09-09 08:10:08.355 [info] [main] Validating found git in: "D:\Software\Git\cmd\git.exe" +2026-09-09 08:10:08.449 [info] [main] Using git "2.53.0.windows.1" from "D:\Software\Git\cmd\git.exe" +2026-09-09 08:10:08.449 [info] [Model][doInitialScan] Initial repository scan started +2026-09-09 08:10:08.567 [info] > git rev-parse --show-toplevel [99ms] +2026-09-09 08:10:08.650 [info] > git rev-parse --show-toplevel [76ms] +2026-09-09 08:10:08.726 [info] > git rev-parse --show-toplevel [70ms] +2026-09-09 08:10:08.728 [info] [Model][doInitialScan] Initial repository scan completed - repositories (0), closed repositories (0), parent repositories (1), unsafe repositories (0) +2026-09-09 08:10:09.337 [info] > git rev-parse --show-toplevel [67ms] +2026-09-09 08:10:10.013 [info] > git rev-parse --show-toplevel [67ms] +2026-09-09 08:10:10.097 [info] > git rev-parse --show-toplevel [70ms] diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/vscode.github-authentication/GitHub Authentication.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/vscode.github-authentication/GitHub Authentication.log new file mode 100644 index 000000000..feddb48ec --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/vscode.github-authentication/GitHub Authentication.log @@ -0,0 +1,29 @@ +2026-09-09 08:10:08.114 [info] Reading sessions from keychain... +2026-09-09 08:10:08.114 [info] Getting sessions for all scopes... +2026-09-09 08:10:08.114 [info] Got 0 sessions for all scopes... +2026-09-09 08:10:08.114 [info] Getting sessions for all scopes... +2026-09-09 08:10:08.114 [info] Got 0 sessions for all scopes... +2026-09-09 08:10:08.114 [info] Getting sessions for all scopes... +2026-09-09 08:10:08.114 [info] Got 0 sessions for all scopes... +2026-09-09 08:10:08.114 [info] Getting sessions for all scopes... +2026-09-09 08:10:08.114 [info] Got 0 sessions for all scopes... +2026-09-09 08:10:08.121 [info] Getting sessions for all scopes... +2026-09-09 08:10:08.121 [info] Got 0 sessions for all scopes... +2026-09-09 08:10:08.204 [info] Getting sessions for read:user,user:email... +2026-09-09 08:10:08.204 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:10:08.233 [info] Getting sessions for all scopes... +2026-09-09 08:10:08.233 [info] Got 0 sessions for all scopes... +2026-09-09 08:10:08.257 [info] Getting sessions for repo... +2026-09-09 08:10:08.257 [info] Got 0 sessions for repo... +2026-09-09 08:10:08.265 [info] Getting sessions for all scopes... +2026-09-09 08:10:08.265 [info] Got 0 sessions for all scopes... +2026-09-09 08:10:08.334 [info] Getting sessions for read:user,user:email... +2026-09-09 08:10:08.334 [info] Got 0 sessions for read:user,user:email... +2026-09-09 08:10:08.337 [info] Getting sessions for all scopes... +2026-09-09 08:10:08.337 [info] Got 0 sessions for all scopes... +2026-09-09 08:10:08.343 [info] Getting sessions for repo... +2026-09-09 08:10:08.343 [info] Got 0 sessions for repo... +2026-09-09 08:10:08.347 [info] Getting sessions for all scopes... +2026-09-09 08:10:08.347 [info] Got 0 sessions for all scopes... +2026-09-09 08:10:10.082 [info] Getting sessions for all scopes... +2026-09-09 08:10:10.082 [info] Got 0 sessions for all scopes... diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/vscode.github/GitHub.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/vscode.github/GitHub.log new file mode 100644 index 000000000..099d9f479 --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/exthost/vscode.github/GitHub.log @@ -0,0 +1 @@ +2026-09-09 08:10:08.269 [info] Log level: Info diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/network.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/network.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/notebook.rendering.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/notebook.rendering.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/output_20260909T081007/agentSessionsOutput.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/output_20260909T081007/agentSessionsOutput.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/output_20260909T081007/tasks.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/output_20260909T081007/tasks.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/renderer.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/renderer.log new file mode 100644 index 000000000..cf75f26eb --- /dev/null +++ b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/renderer.log @@ -0,0 +1,17 @@ +2026-09-09 08:10:07.182 [info] [AgentHost:renderer] Acquiring MessagePort to agent host... +2026-09-09 08:10:07.350 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-09 08:10:07.533 [info] [AgentHost:renderer] MessagePort acquired, creating client... +2026-09-09 08:10:07.572 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/MGQ1NWE2NzYtM2NjZC00YjhlLWE5YmEtNzcxY2I0NTFkYTM4" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-09 08:10:07.615 [info] Started local extension host with pid 27744. +2026-09-09 08:10:07.621 [info] [AgentHost:renderer] Protocol connection established; clientId=74392238-a2c8-4ae0-8b45-b180b0c8b01e +2026-09-09 08:10:07.639 [info] Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +2026-09-09 08:10:07.645 [error] [hornet.hornet-cpp]: 'configuration.semanticTokenType.description' must be defined and can not be empty +2026-09-09 08:10:08.134 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-09 08:10:08.235 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:10:08.238 [info] [AgentHost] Clearing authentication for resource: https://api.github.com +2026-09-09 08:10:08.278 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:10:08.312 [info] [AgentHost] Clearing authentication for resource: https://api.github.com/repos +2026-09-09 08:10:08.343 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-09 08:10:08.348 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-09 08:10:08.356 [info] Settings Sync: Account status changed from uninitialized to unavailable +2026-09-09 08:10:08.398 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/MGQ1NWE2NzYtM2NjZC00YjhlLWE5YmEtNzcxY2I0NTFkYTM4" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/textModelChanges.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/textModelChanges.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/views.log b/Extension/artifacts/index-host/user2/logs/20260909T081006/window1/views.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/index-host/user2/machineid b/Extension/artifacts/index-host/user2/machineid new file mode 100644 index 000000000..b86788b67 --- /dev/null +++ b/Extension/artifacts/index-host/user2/machineid @@ -0,0 +1 @@ +d63dc320-abc6-4bcd-9c18-23bccaf399c4 \ No newline at end of file diff --git a/Extension/artifacts/index-tests.log b/Extension/artifacts/index-tests.log new file mode 100644 index 000000000..fa87df699 Binary files /dev/null and b/Extension/artifacts/index-tests.log differ diff --git a/Extension/artifacts/layout-tests.log b/Extension/artifacts/layout-tests.log new file mode 100644 index 000000000..b94a2aeb5 Binary files /dev/null and b/Extension/artifacts/layout-tests.log differ diff --git a/Extension/artifacts/mars-debug.log b/Extension/artifacts/mars-debug.log new file mode 100644 index 000000000..e25c6db19 Binary files /dev/null and b/Extension/artifacts/mars-debug.log differ diff --git a/Extension/artifacts/mars-graph.json b/Extension/artifacts/mars-graph.json new file mode 100644 index 000000000..4eb6762b9 --- /dev/null +++ b/Extension/artifacts/mars-graph.json @@ -0,0 +1 @@ +{"generation":1,"root":"n0","nodes":[{"id":"n0","name":"MarsRover_Move","detail":"","uri":"file:///C:/Users/LiXueqiang/AppData/Local/Temp/hornet-mars-BNiUAl/src/mars_rover.c","line":71,"layer":0,"incoming":{"open":true,"loaded":true,"loading":false,"count":1,"action":"collapse"},"outgoing":{"open":true,"loaded":true,"loading":false,"count":4,"action":"collapse"}},{"id":"n5","name":"MarsRover_ExecuteOne","detail":"MarsRover_ExecuteOne","uri":"file:///C:/Users/LiXueqiang/AppData/Local/Temp/hornet-mars-BNiUAl/src/mars_rover.c","line":103,"layer":-1,"incoming":{"open":true,"loaded":true,"loading":false,"count":1,"action":"collapse"},"outgoing":{"open":false,"loaded":true,"loading":false,"count":3,"action":"expand"}},{"id":"n6","name":"MarsRover_Execute","detail":"MarsRover_Execute","uri":"file:///C:/Users/LiXueqiang/AppData/Local/Temp/hornet-mars-BNiUAl/src/mars_rover.c","line":149,"layer":-2,"incoming":{"open":true,"loaded":true,"loading":false,"count":1,"action":"collapse"},"outgoing":{"open":false,"loaded":true,"loading":false,"count":2,"action":"expand"}},{"id":"n7","name":"main","detail":"main","uri":"file:///C:/Users/LiXueqiang/AppData/Local/Temp/hornet-mars-BNiUAl/app/main.c","line":5,"layer":-3,"incoming":{"open":true,"loaded":true,"loading":false,"count":0,"action":"none"},"outgoing":{"open":false,"loaded":true,"loading":false,"count":5,"action":"expand"}},{"id":"n1","name":"MarsRover_GetForwardDelta","detail":"MarsRover_GetForwardDelta","uri":"file:///C:/Users/LiXueqiang/AppData/Local/Temp/hornet-mars-BNiUAl/src/mars_rover.c","line":33,"layer":1,"incoming":{"open":false,"loaded":true,"loading":false,"count":1,"action":"none"},"outgoing":{"open":true,"loaded":true,"loading":false,"count":0,"action":"none"}},{"id":"n2","name":"MarsRover_IsInsideArea","detail":"MarsRover_IsInsideArea","uri":"file:///C:/Users/LiXueqiang/AppData/Local/Temp/hornet-mars-BNiUAl/src/mars_rover.c","line":16,"layer":1,"incoming":{"open":false,"loaded":true,"loading":false,"count":2,"action":"expand"},"outgoing":{"open":true,"loaded":true,"loading":false,"count":0,"action":"none"}},{"id":"n3","name":"MarsRover_WrapTarget","detail":"MarsRover_WrapTarget","uri":"file:///C:/Users/LiXueqiang/AppData/Local/Temp/hornet-mars-BNiUAl/src/mars_rover.c","line":56,"layer":1,"incoming":{"open":false,"loaded":true,"loading":false,"count":1,"action":"none"},"outgoing":{"open":true,"loaded":true,"loading":false,"count":0,"action":"none"}},{"id":"n4","name":"MarsSensor_HasObstacle","detail":"MarsSensor_HasObstacle","uri":"file:///C:/Users/LiXueqiang/AppData/Local/Temp/hornet-mars-BNiUAl/src/mars_rover_port.c","line":5,"layer":1,"incoming":{"open":false,"loaded":true,"loading":false,"count":1,"action":"none"},"outgoing":{"open":true,"loaded":true,"loading":false,"count":0,"action":"none"}}],"edges":[{"from":"n5","to":"n0"},{"from":"n6","to":"n5"},{"from":"n7","to":"n6"},{"from":"n0","to":"n1"},{"from":"n0","to":"n2"},{"from":"n0","to":"n3"},{"from":"n0","to":"n4"}]} \ No newline at end of file diff --git a/Extension/artifacts/package-0.1.2-pre.log b/Extension/artifacts/package-0.1.2-pre.log new file mode 100644 index 000000000..fe1c9592c Binary files /dev/null and b/Extension/artifacts/package-0.1.2-pre.log differ diff --git a/Extension/artifacts/package-0.1.2.log b/Extension/artifacts/package-0.1.2.log new file mode 100644 index 000000000..e9ac9a6ec Binary files /dev/null and b/Extension/artifacts/package-0.1.2.log differ diff --git a/Extension/artifacts/package-pre-release.log b/Extension/artifacts/package-pre-release.log new file mode 100644 index 000000000..60226e721 Binary files /dev/null and b/Extension/artifacts/package-pre-release.log differ diff --git a/Extension/artifacts/package-refresh.log b/Extension/artifacts/package-refresh.log new file mode 100644 index 000000000..fa6b692e4 Binary files /dev/null and b/Extension/artifacts/package-refresh.log differ diff --git a/Extension/artifacts/panel-host/extensions/extensions.json b/Extension/artifacts/panel-host/extensions/extensions.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/Extension/artifacts/panel-host/extensions/extensions.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project/.vscode/hornet/compile-db/compile_commands.json b/Extension/artifacts/panel-host/project/.vscode/hornet/compile-db/compile_commands.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/Extension/artifacts/panel-host/project/.vscode/hornet/compile-db/compile_commands.json @@ -0,0 +1 @@ +[] diff --git a/Extension/artifacts/panel-host/project/.vscode/hornet/compile-db/fallback/compile_commands.json b/Extension/artifacts/panel-host/project/.vscode/hornet/compile-db/fallback/compile_commands.json new file mode 100644 index 000000000..a09171569 --- /dev/null +++ b/Extension/artifacts/panel-host/project/.vscode/hornet/compile-db/fallback/compile_commands.json @@ -0,0 +1,32 @@ +[ + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project\\a.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project\\a.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project\\b.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project\\b.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project\\new.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project\\new.cpp" + ] + } +] \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project/.vscode/hornet/compile-db/sources.json b/Extension/artifacts/panel-host/project/.vscode/hornet/compile-db/sources.json new file mode 100644 index 000000000..10312c091 --- /dev/null +++ b/Extension/artifacts/panel-host/project/.vscode/hornet/compile-db/sources.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "sources": [], + "provenance": {} +} diff --git a/Extension/artifacts/panel-host/project/a.cpp b/Extension/artifacts/panel-host/project/a.cpp new file mode 100644 index 000000000..d8f8e3c75 --- /dev/null +++ b/Extension/artifacts/panel-host/project/a.cpp @@ -0,0 +1 @@ +int seed() { return 1; } diff --git a/Extension/artifacts/panel-host/project/b.cpp b/Extension/artifacts/panel-host/project/b.cpp new file mode 100644 index 000000000..f30f8cb49 --- /dev/null +++ b/Extension/artifacts/panel-host/project/b.cpp @@ -0,0 +1,2 @@ +int seed(); +int main() { return seed(); } diff --git a/Extension/artifacts/panel-host/project/index-host-result.json b/Extension/artifacts/panel-host/project/index-host-result.json new file mode 100644 index 000000000..9e8828a6e --- /dev/null +++ b/Extension/artifacts/panel-host/project/index-host-result.json @@ -0,0 +1,4 @@ +{ + "passed": false, + "error": "Error: command 'workbench.view.extension.hornet-cpp.graphPanel' not found\n at qgt._tryExecuteCommand (vscode-file://vscode-app/d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/workbench.desktop.main.js:2003:4832)\n at qgt.executeCommand (vscode-file://vscode-app/d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/workbench.desktop.main.js:2003:4732)" +} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project/new.cpp b/Extension/artifacts/panel-host/project/new.cpp new file mode 100644 index 000000000..dab1f2e4a --- /dev/null +++ b/Extension/artifacts/panel-host/project/new.cpp @@ -0,0 +1 @@ +int addedThroughManualBuild() { return 3; } diff --git a/Extension/artifacts/panel-host/project2/.vscode/hornet/compile-db/compile_commands.json b/Extension/artifacts/panel-host/project2/.vscode/hornet/compile-db/compile_commands.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/Extension/artifacts/panel-host/project2/.vscode/hornet/compile-db/compile_commands.json @@ -0,0 +1 @@ +[] diff --git a/Extension/artifacts/panel-host/project2/.vscode/hornet/compile-db/fallback/compile_commands.json b/Extension/artifacts/panel-host/project2/.vscode/hornet/compile-db/fallback/compile_commands.json new file mode 100644 index 000000000..556cc22bb --- /dev/null +++ b/Extension/artifacts/panel-host/project2/.vscode/hornet/compile-db/fallback/compile_commands.json @@ -0,0 +1,32 @@ +[ + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2\\a.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2\\a.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2\\b.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2\\b.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2\\new.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2\\new.cpp" + ] + } +] \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project2/.vscode/hornet/compile-db/sources.json b/Extension/artifacts/panel-host/project2/.vscode/hornet/compile-db/sources.json new file mode 100644 index 000000000..10312c091 --- /dev/null +++ b/Extension/artifacts/panel-host/project2/.vscode/hornet/compile-db/sources.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "sources": [], + "provenance": {} +} diff --git a/Extension/artifacts/panel-host/project2/a.cpp b/Extension/artifacts/panel-host/project2/a.cpp new file mode 100644 index 000000000..d8f8e3c75 --- /dev/null +++ b/Extension/artifacts/panel-host/project2/a.cpp @@ -0,0 +1 @@ +int seed() { return 1; } diff --git a/Extension/artifacts/panel-host/project2/b.cpp b/Extension/artifacts/panel-host/project2/b.cpp new file mode 100644 index 000000000..f30f8cb49 --- /dev/null +++ b/Extension/artifacts/panel-host/project2/b.cpp @@ -0,0 +1,2 @@ +int seed(); +int main() { return seed(); } diff --git a/Extension/artifacts/panel-host/project2/index-host-result.json b/Extension/artifacts/panel-host/project2/index-host-result.json new file mode 100644 index 000000000..be9b3cb2a --- /dev/null +++ b/Extension/artifacts/panel-host/project2/index-host-result.json @@ -0,0 +1,9 @@ +{ + "passed": true, + "version": "0.1.5", + "shards": [ + ".vscode\\hornet\\compile-db\\fallback\\.cache\\clangd\\index\\a.cpp.304F1DDA49C590B3.idx", + ".vscode\\hornet\\compile-db\\fallback\\.cache\\clangd\\index\\b.cpp.F5024A8E3FDD5BFD.idx", + ".vscode\\hornet\\compile-db\\fallback\\.cache\\clangd\\index\\new.cpp.D8A24C50A8721013.idx" + ] +} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project2/new.cpp b/Extension/artifacts/panel-host/project2/new.cpp new file mode 100644 index 000000000..dab1f2e4a --- /dev/null +++ b/Extension/artifacts/panel-host/project2/new.cpp @@ -0,0 +1 @@ +int addedThroughManualBuild() { return 3; } diff --git a/Extension/artifacts/panel-host/project2/panel-captured.json b/Extension/artifacts/panel-host/project2/panel-captured.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/panel-host/project2/panel-captured.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project2/panel-ready.json b/Extension/artifacts/panel-host/project2/panel-ready.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/panel-host/project2/panel-ready.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project3/.vscode/hornet/compile-db/compile_commands.json b/Extension/artifacts/panel-host/project3/.vscode/hornet/compile-db/compile_commands.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/Extension/artifacts/panel-host/project3/.vscode/hornet/compile-db/compile_commands.json @@ -0,0 +1 @@ +[] diff --git a/Extension/artifacts/panel-host/project3/.vscode/hornet/compile-db/fallback/compile_commands.json b/Extension/artifacts/panel-host/project3/.vscode/hornet/compile-db/fallback/compile_commands.json new file mode 100644 index 000000000..8caefc55b --- /dev/null +++ b/Extension/artifacts/panel-host/project3/.vscode/hornet/compile-db/fallback/compile_commands.json @@ -0,0 +1,32 @@ +[ + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3\\a.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3\\a.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3\\b.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3\\b.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3\\new.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3\\new.cpp" + ] + } +] \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project3/.vscode/hornet/compile-db/sources.json b/Extension/artifacts/panel-host/project3/.vscode/hornet/compile-db/sources.json new file mode 100644 index 000000000..10312c091 --- /dev/null +++ b/Extension/artifacts/panel-host/project3/.vscode/hornet/compile-db/sources.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "sources": [], + "provenance": {} +} diff --git a/Extension/artifacts/panel-host/project3/a.cpp b/Extension/artifacts/panel-host/project3/a.cpp new file mode 100644 index 000000000..d8f8e3c75 --- /dev/null +++ b/Extension/artifacts/panel-host/project3/a.cpp @@ -0,0 +1 @@ +int seed() { return 1; } diff --git a/Extension/artifacts/panel-host/project3/b.cpp b/Extension/artifacts/panel-host/project3/b.cpp new file mode 100644 index 000000000..f30f8cb49 --- /dev/null +++ b/Extension/artifacts/panel-host/project3/b.cpp @@ -0,0 +1,2 @@ +int seed(); +int main() { return seed(); } diff --git a/Extension/artifacts/panel-host/project3/index-host-result.json b/Extension/artifacts/panel-host/project3/index-host-result.json new file mode 100644 index 000000000..e7424c17e --- /dev/null +++ b/Extension/artifacts/panel-host/project3/index-host-result.json @@ -0,0 +1,4 @@ +{ + "passed": false, + "error": "Error: Timed out: panel screenshot\n\tat waitFor (i:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\hornet\\index.vscode.cjs:16:15)\n\tat async exports.run (i:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\hornet\\index.vscode.cjs:46:13)" +} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project3/new.cpp b/Extension/artifacts/panel-host/project3/new.cpp new file mode 100644 index 000000000..dab1f2e4a --- /dev/null +++ b/Extension/artifacts/panel-host/project3/new.cpp @@ -0,0 +1 @@ +int addedThroughManualBuild() { return 3; } diff --git a/Extension/artifacts/panel-host/project3/panel-captured.json b/Extension/artifacts/panel-host/project3/panel-captured.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/panel-host/project3/panel-captured.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project3/panel-ready.json b/Extension/artifacts/panel-host/project3/panel-ready.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/panel-host/project3/panel-ready.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project4/.vscode/hornet/compile-db/compile_commands.json b/Extension/artifacts/panel-host/project4/.vscode/hornet/compile-db/compile_commands.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/Extension/artifacts/panel-host/project4/.vscode/hornet/compile-db/compile_commands.json @@ -0,0 +1 @@ +[] diff --git a/Extension/artifacts/panel-host/project4/.vscode/hornet/compile-db/fallback/compile_commands.json b/Extension/artifacts/panel-host/project4/.vscode/hornet/compile-db/fallback/compile_commands.json new file mode 100644 index 000000000..9c7dc2f04 --- /dev/null +++ b/Extension/artifacts/panel-host/project4/.vscode/hornet/compile-db/fallback/compile_commands.json @@ -0,0 +1,32 @@ +[ + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\a.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\a.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\b.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\b.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\new.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\new.cpp" + ] + } +] \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project4/.vscode/hornet/compile-db/sources.json b/Extension/artifacts/panel-host/project4/.vscode/hornet/compile-db/sources.json new file mode 100644 index 000000000..10312c091 --- /dev/null +++ b/Extension/artifacts/panel-host/project4/.vscode/hornet/compile-db/sources.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "sources": [], + "provenance": {} +} diff --git a/Extension/artifacts/panel-host/project4/a.cpp b/Extension/artifacts/panel-host/project4/a.cpp new file mode 100644 index 000000000..d8f8e3c75 --- /dev/null +++ b/Extension/artifacts/panel-host/project4/a.cpp @@ -0,0 +1 @@ +int seed() { return 1; } diff --git a/Extension/artifacts/panel-host/project4/b.cpp b/Extension/artifacts/panel-host/project4/b.cpp new file mode 100644 index 000000000..f30f8cb49 --- /dev/null +++ b/Extension/artifacts/panel-host/project4/b.cpp @@ -0,0 +1,2 @@ +int seed(); +int main() { return seed(); } diff --git a/Extension/artifacts/panel-host/project4/index-host-result.json b/Extension/artifacts/panel-host/project4/index-host-result.json new file mode 100644 index 000000000..11ec822ae --- /dev/null +++ b/Extension/artifacts/panel-host/project4/index-host-result.json @@ -0,0 +1,4 @@ +{ + "passed": false, + "error": "Error: Timed out: panel screenshot\n\tat waitFor (i:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\hornet\\index.vscode.cjs:16:15)\n\tat async exports.run (i:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\hornet\\index.vscode.cjs:48:13)" +} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project4/new.cpp b/Extension/artifacts/panel-host/project4/new.cpp new file mode 100644 index 000000000..dab1f2e4a --- /dev/null +++ b/Extension/artifacts/panel-host/project4/new.cpp @@ -0,0 +1 @@ +int addedThroughManualBuild() { return 3; } diff --git a/Extension/artifacts/panel-host/project4/panel-captured.json b/Extension/artifacts/panel-host/project4/panel-captured.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/panel-host/project4/panel-captured.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project4/panel-ready.json b/Extension/artifacts/panel-host/project4/panel-ready.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/panel-host/project4/panel-ready.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project5/.vscode/hornet/compile-db/compile_commands.json b/Extension/artifacts/panel-host/project5/.vscode/hornet/compile-db/compile_commands.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/Extension/artifacts/panel-host/project5/.vscode/hornet/compile-db/compile_commands.json @@ -0,0 +1 @@ +[] diff --git a/Extension/artifacts/panel-host/project5/.vscode/hornet/compile-db/fallback/compile_commands.json b/Extension/artifacts/panel-host/project5/.vscode/hornet/compile-db/fallback/compile_commands.json new file mode 100644 index 000000000..31e35c0a3 --- /dev/null +++ b/Extension/artifacts/panel-host/project5/.vscode/hornet/compile-db/fallback/compile_commands.json @@ -0,0 +1,32 @@ +[ + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5\\a.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5\\a.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5\\b.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5\\b.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5\\new.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5\\new.cpp" + ] + } +] \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project5/.vscode/hornet/compile-db/sources.json b/Extension/artifacts/panel-host/project5/.vscode/hornet/compile-db/sources.json new file mode 100644 index 000000000..10312c091 --- /dev/null +++ b/Extension/artifacts/panel-host/project5/.vscode/hornet/compile-db/sources.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "sources": [], + "provenance": {} +} diff --git a/Extension/artifacts/panel-host/project5/a.cpp b/Extension/artifacts/panel-host/project5/a.cpp new file mode 100644 index 000000000..d8f8e3c75 --- /dev/null +++ b/Extension/artifacts/panel-host/project5/a.cpp @@ -0,0 +1 @@ +int seed() { return 1; } diff --git a/Extension/artifacts/panel-host/project5/b.cpp b/Extension/artifacts/panel-host/project5/b.cpp new file mode 100644 index 000000000..f30f8cb49 --- /dev/null +++ b/Extension/artifacts/panel-host/project5/b.cpp @@ -0,0 +1,2 @@ +int seed(); +int main() { return seed(); } diff --git a/Extension/artifacts/panel-host/project5/index-host-result.json b/Extension/artifacts/panel-host/project5/index-host-result.json new file mode 100644 index 000000000..11ec822ae --- /dev/null +++ b/Extension/artifacts/panel-host/project5/index-host-result.json @@ -0,0 +1,4 @@ +{ + "passed": false, + "error": "Error: Timed out: panel screenshot\n\tat waitFor (i:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\hornet\\index.vscode.cjs:16:15)\n\tat async exports.run (i:\\BackFile\\code\\hornet-cpptools\\Extension\\test\\hornet\\index.vscode.cjs:48:13)" +} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project5/new.cpp b/Extension/artifacts/panel-host/project5/new.cpp new file mode 100644 index 000000000..dab1f2e4a --- /dev/null +++ b/Extension/artifacts/panel-host/project5/new.cpp @@ -0,0 +1 @@ +int addedThroughManualBuild() { return 3; } diff --git a/Extension/artifacts/panel-host/project5/panel-captured.json b/Extension/artifacts/panel-host/project5/panel-captured.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/panel-host/project5/panel-captured.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project5/panel-ready.json b/Extension/artifacts/panel-host/project5/panel-ready.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/panel-host/project5/panel-ready.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project6/.vscode/hornet/compile-db/compile_commands.json b/Extension/artifacts/panel-host/project6/.vscode/hornet/compile-db/compile_commands.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/Extension/artifacts/panel-host/project6/.vscode/hornet/compile-db/compile_commands.json @@ -0,0 +1 @@ +[] diff --git a/Extension/artifacts/panel-host/project6/.vscode/hornet/compile-db/fallback/compile_commands.json b/Extension/artifacts/panel-host/project6/.vscode/hornet/compile-db/fallback/compile_commands.json new file mode 100644 index 000000000..cdf767dcc --- /dev/null +++ b/Extension/artifacts/panel-host/project6/.vscode/hornet/compile-db/fallback/compile_commands.json @@ -0,0 +1,32 @@ +[ + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6\\a.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6\\a.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6\\b.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6\\b.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6\\new.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6\\new.cpp" + ] + } +] \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project6/.vscode/hornet/compile-db/sources.json b/Extension/artifacts/panel-host/project6/.vscode/hornet/compile-db/sources.json new file mode 100644 index 000000000..10312c091 --- /dev/null +++ b/Extension/artifacts/panel-host/project6/.vscode/hornet/compile-db/sources.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "sources": [], + "provenance": {} +} diff --git a/Extension/artifacts/panel-host/project6/a.cpp b/Extension/artifacts/panel-host/project6/a.cpp new file mode 100644 index 000000000..d8f8e3c75 --- /dev/null +++ b/Extension/artifacts/panel-host/project6/a.cpp @@ -0,0 +1 @@ +int seed() { return 1; } diff --git a/Extension/artifacts/panel-host/project6/b.cpp b/Extension/artifacts/panel-host/project6/b.cpp new file mode 100644 index 000000000..f30f8cb49 --- /dev/null +++ b/Extension/artifacts/panel-host/project6/b.cpp @@ -0,0 +1,2 @@ +int seed(); +int main() { return seed(); } diff --git a/Extension/artifacts/panel-host/project6/index-host-result.json b/Extension/artifacts/panel-host/project6/index-host-result.json new file mode 100644 index 000000000..63fe8aa15 --- /dev/null +++ b/Extension/artifacts/panel-host/project6/index-host-result.json @@ -0,0 +1,9 @@ +{ + "passed": true, + "version": "0.1.5", + "shards": [ + ".vscode\\hornet\\compile-db\\fallback\\.cache\\clangd\\index\\a.cpp.31FAE8FBA598A383.idx", + ".vscode\\hornet\\compile-db\\fallback\\.cache\\clangd\\index\\b.cpp.62EB8C98160C5AF9.idx", + ".vscode\\hornet\\compile-db\\fallback\\.cache\\clangd\\index\\new.cpp.EDF73B0CDA9B567A.idx" + ] +} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project6/new.cpp b/Extension/artifacts/panel-host/project6/new.cpp new file mode 100644 index 000000000..dab1f2e4a --- /dev/null +++ b/Extension/artifacts/panel-host/project6/new.cpp @@ -0,0 +1 @@ +int addedThroughManualBuild() { return 3; } diff --git a/Extension/artifacts/panel-host/project6/panel-captured.json b/Extension/artifacts/panel-host/project6/panel-captured.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/panel-host/project6/panel-captured.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/project6/panel-ready.json b/Extension/artifacts/panel-host/project6/panel-ready.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/panel-host/project6/panel-ready.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/stderr.log b/Extension/artifacts/panel-host/stderr.log new file mode 100644 index 000000000..b184077b1 --- /dev/null +++ b/Extension/artifacts/panel-host/stderr.log @@ -0,0 +1,24 @@ +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel + +DevTools listening on ws://127.0.0.1:9337/devtools/browser/562b008c-9fb0-4aec-b49d-8ab4b0904ed4 +Warning: 'remote-debugging-port' is not in the list of known options, but still passed to Electron/Chromium. +Warning: 'remote-debugging-address' is not in the list of known options, but still passed to Electron/Chromium. +[main 2026-09-10T13:13:56.683Z] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +[main 2026-09-10T13:13:58.020Z] [AgentHost:stderr] (node:9732) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +[hornet.hornet-cpp]: property `id` is mandatory and must be of type `string` with non-empty value. Only alphanumeric characters, '_', and '-' are allowed. +[hornet.hornet-cpp]: View container 'hornet-cpp.graphPanel' does not exist and all views registered to it will be added to 'Explorer'. +Unknown channel: agentHostClientByokLm +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy +(node:18136) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) +Unknown channel: agentHostClientProxy +Error: command 'workbench.view.extension.hornet-cpp.graphPanel' not found + at qgt._tryExecuteCommand (vscode-file://vscode-app/d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/workbench.desktop.main.js:2003:4832) + at qgt.executeCommand (vscode-file://vscode-app/d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/workbench.desktop.main.js:2003:4732) diff --git a/Extension/artifacts/panel-host/stderr2.log b/Extension/artifacts/panel-host/stderr2.log new file mode 100644 index 000000000..2d4716b8d --- /dev/null +++ b/Extension/artifacts/panel-host/stderr2.log @@ -0,0 +1,19 @@ +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel + +DevTools listening on ws://127.0.0.1:9337/devtools/browser/ea42b5b1-76c4-4de3-bdad-008a32c31545 +Warning: 'remote-debugging-port' is not in the list of known options, but still passed to Electron/Chromium. +Warning: 'remote-debugging-address' is not in the list of known options, but still passed to Electron/Chromium. +[main 2026-09-10T13:15:03.872Z] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +[main 2026-09-10T13:15:04.783Z] [AgentHost:stderr] (node:13864) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +[hornet.hornet-cpp]: property `id` is mandatory and must be of type `string` with non-empty value. Only alphanumeric characters, '_', and '-' are allowed. +[hornet.hornet-cpp]: View container 'hornet-cpp.graphPanel' does not exist and all views registered to it will be added to 'Explorer'. +Unknown channel: agentHostClientByokLm +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy diff --git a/Extension/artifacts/panel-host/stderr3.log b/Extension/artifacts/panel-host/stderr3.log new file mode 100644 index 000000000..ec4a45cfa --- /dev/null +++ b/Extension/artifacts/panel-host/stderr3.log @@ -0,0 +1,20 @@ +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel + +DevTools listening on ws://127.0.0.1:9337/devtools/browser/41ff48e9-02fb-4a90-a989-f318bedd10ad +Warning: 'remote-debugging-port' is not in the list of known options, but still passed to Electron/Chromium. +Warning: 'remote-debugging-address' is not in the list of known options, but still passed to Electron/Chromium. +[main 2026-09-10T13:16:56.030Z] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +[main 2026-09-10T13:16:57.260Z] [AgentHost:stderr] (node:26900) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +Unknown channel: agentHostClientByokLm +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy +Error: Timed out: panel screenshot + at waitFor (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:16:15) + at async exports.run (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:46:13) diff --git a/Extension/artifacts/panel-host/stderr4.log b/Extension/artifacts/panel-host/stderr4.log new file mode 100644 index 000000000..865dba3d7 --- /dev/null +++ b/Extension/artifacts/panel-host/stderr4.log @@ -0,0 +1,20 @@ +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel + +DevTools listening on ws://127.0.0.1:9337/devtools/browser/8fd690cf-200a-4e1c-af08-28e71f3142e8 +Warning: 'remote-debugging-port' is not in the list of known options, but still passed to Electron/Chromium. +Warning: 'remote-debugging-address' is not in the list of known options, but still passed to Electron/Chromium. +[main 2026-09-10T13:18:26.579Z] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +[main 2026-09-10T13:18:27.544Z] [AgentHost:stderr] (node:19976) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +Unknown channel: agentHostClientByokLm +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy +Error: Timed out: panel screenshot + at waitFor (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:16:15) + at async exports.run (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:48:13) diff --git a/Extension/artifacts/panel-host/stderr5.log b/Extension/artifacts/panel-host/stderr5.log new file mode 100644 index 000000000..4982b6350 --- /dev/null +++ b/Extension/artifacts/panel-host/stderr5.log @@ -0,0 +1,20 @@ +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel + +DevTools listening on ws://127.0.0.1:9337/devtools/browser/681385b0-79b9-4bad-b127-c54fda59ebd6 +Warning: 'remote-debugging-port' is not in the list of known options, but still passed to Electron/Chromium. +Warning: 'remote-debugging-address' is not in the list of known options, but still passed to Electron/Chromium. +[main 2026-09-10T13:19:57.244Z] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +[main 2026-09-10T13:19:58.106Z] [AgentHost:stderr] (node:10628) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +Unknown channel: agentHostClientByokLm +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy +Error: Timed out: panel screenshot + at waitFor (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:16:15) + at async exports.run (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:48:13) diff --git a/Extension/artifacts/panel-host/stderr6.log b/Extension/artifacts/panel-host/stderr6.log new file mode 100644 index 000000000..6ff68c7b6 --- /dev/null +++ b/Extension/artifacts/panel-host/stderr6.log @@ -0,0 +1,17 @@ +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel +libpng warning: tRNS: invalid with alpha channel + +DevTools listening on ws://127.0.0.1:9337/devtools/browser/38f0f884-195e-44c8-a385-7d3bd2f8adbd +Warning: 'remote-debugging-port' is not in the list of known options, but still passed to Electron/Chromium. +Warning: 'remote-debugging-address' is not in the list of known options, but still passed to Electron/Chromium. +[main 2026-09-10T13:22:05.948Z] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +[main 2026-09-10T13:22:07.555Z] [AgentHost:stderr] (node:10800) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +Unknown channel: agentHostClientByokLm +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy diff --git a/Extension/artifacts/panel-host/stdout.log b/Extension/artifacts/panel-host/stdout.log new file mode 100644 index 000000000..21e50ffa6 --- /dev/null +++ b/Extension/artifacts/panel-host/stdout.log @@ -0,0 +1,76 @@ + +[main 2026-09-10T13:13:56.599Z] StorageMainService: creating application shared storage +[main 2026-09-10T13:13:56.668Z] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +[main 2026-09-10T13:13:56.672Z] [shared storage] Initializing fallback application storage (path: in-memory) +[main 2026-09-10T13:13:56.706Z] [shared storage] Fallback application storage initialized with 3 items +[main 2026-09-10T13:13:57.515Z] update#disable - updates are disabled by user preference +[main 2026-09-10T13:13:57.518Z] update#setState disabled +[AgentHost:renderer] Acquiring MessagePort to agent host... +[main 2026-09-10T13:13:57.538Z] AgentHostProcessManager: agent host started +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] MessagePort acquired, creating client... +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NzJjOTI0ZjEtM2FhYS00N2I5LWI1YTQtNjIxMmE5OGIzMmIz" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +Started initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/panel-host/extensions +Started local extension host with pid 18136. +[AgentHost:renderer] Protocol connection established; clientId=80079ff9-c38e-422c-a80c-8bfa71a80dc1 +Completed initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/panel-host/extensions +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] Clearing authentication for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] Clearing authentication for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NzJjOTI0ZjEtM2FhYS00N2I5LWI1YTQtNjIxMmE5OGIzMmIz" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +Settings Sync: Account status changed from uninitialized to unavailable +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NzJjOTI0ZjEtM2FhYS00N2I5LWI1YTQtNjIxMmE5OGIzMmIz" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[main 2026-09-10T13:14:01.968Z] Extension host with pid 18136 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/panel-host/stdout2.log b/Extension/artifacts/panel-host/stdout2.log new file mode 100644 index 000000000..21ecda576 --- /dev/null +++ b/Extension/artifacts/panel-host/stdout2.log @@ -0,0 +1,26 @@ + +[main 2026-09-10T13:15:03.770Z] StorageMainService: creating application shared storage +[main 2026-09-10T13:15:03.866Z] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +[main 2026-09-10T13:15:03.870Z] [shared storage] Initializing fallback application storage (path: in-memory) +[main 2026-09-10T13:15:03.897Z] [shared storage] Fallback application storage initialized with 3 items +[main 2026-09-10T13:15:04.319Z] update#disable - updates are disabled by user preference +[main 2026-09-10T13:15:04.322Z] update#setState disabled +[AgentHost:renderer] Acquiring MessagePort to agent host... +[main 2026-09-10T13:15:04.349Z] AgentHostProcessManager: agent host started +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] MessagePort acquired, creating client... +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NWYzNjhmZTEtZDNhNy00YWE4LTg3YzItZWY0ZjY1ZjgxM2Ey" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] Protocol connection established; clientId=a8f19e77-f58c-4971-99c7-be824a717734 +Started local extension host with pid 7504. +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] Clearing authentication for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] Clearing authentication for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NWYzNjhmZTEtZDNhNy00YWE4LTg3YzItZWY0ZjY1ZjgxM2Ey" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +Settings Sync: Account status changed from uninitialized to unavailable +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NWYzNjhmZTEtZDNhNy00YWE4LTg3YzItZWY0ZjY1ZjgxM2Ey" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[main 2026-09-10T13:15:08.752Z] Extension host with pid 7504 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/panel-host/stdout3.log b/Extension/artifacts/panel-host/stdout3.log new file mode 100644 index 000000000..08ddd7009 --- /dev/null +++ b/Extension/artifacts/panel-host/stdout3.log @@ -0,0 +1,75 @@ + +[main 2026-09-10T13:16:55.953Z] StorageMainService: creating application shared storage +[main 2026-09-10T13:16:56.026Z] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +[main 2026-09-10T13:16:56.028Z] [shared storage] Initializing fallback application storage (path: in-memory) +[main 2026-09-10T13:16:56.051Z] [shared storage] Fallback application storage initialized with 3 items +[main 2026-09-10T13:16:56.841Z] update#disable - updates are disabled by user preference +[main 2026-09-10T13:16:56.844Z] update#setState disabled +[AgentHost:renderer] Acquiring MessagePort to agent host... +[main 2026-09-10T13:16:56.863Z] AgentHostProcessManager: agent host started +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] MessagePort acquired, creating client... +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/N2Y5Mjk4MjItNDY3MC00NjdlLTk3ZTktODFkYjIzNDg2YzM2" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] Protocol connection established; clientId=f2f357aa-6775-4368-bd52-0a2e3f520d18 +Started local extension host with pid 30312. +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] Clearing authentication for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] Clearing authentication for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/N2Y5Mjk4MjItNDY3MC00NjdlLTk3ZTktODFkYjIzNDg2YzM2" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com/repos +Settings Sync: Account status changed from uninitialized to unavailable +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/N2Y5Mjk4MjItNDY3MC00NjdlLTk3ZTktODFkYjIzNDg2YzM2" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +[main 2026-09-10T13:17:31.386Z] Extension host with pid 30312 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/panel-host/stdout4.log b/Extension/artifacts/panel-host/stdout4.log new file mode 100644 index 000000000..3833b763a --- /dev/null +++ b/Extension/artifacts/panel-host/stdout4.log @@ -0,0 +1,27 @@ + +[main 2026-09-10T13:18:26.465Z] StorageMainService: creating application shared storage +[main 2026-09-10T13:18:26.571Z] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +[main 2026-09-10T13:18:26.575Z] [shared storage] Initializing fallback application storage (path: in-memory) +[main 2026-09-10T13:18:26.608Z] [shared storage] Fallback application storage initialized with 3 items +[main 2026-09-10T13:18:27.002Z] update#disable - updates are disabled by user preference +[main 2026-09-10T13:18:27.005Z] update#setState disabled +[AgentHost:renderer] Acquiring MessagePort to agent host... +[main 2026-09-10T13:18:27.027Z] AgentHostProcessManager: agent host started +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] MessagePort acquired, creating client... +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NzM4NGIzMWYtNDlhNi00MmVjLTkwOGUtNzAzYjE0MmM1MGQw" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] Protocol connection established; clientId=ef05cfb1-6b4c-49e8-a6ad-929054893c6b +Started local extension host with pid 13948. +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] Clearing authentication for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] Clearing authentication for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +Settings Sync: Account status changed from uninitialized to unavailable +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NzM4NGIzMWYtNDlhNi00MmVjLTkwOGUtNzAzYjE0MmM1MGQw" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NzM4NGIzMWYtNDlhNi00MmVjLTkwOGUtNzAzYjE0MmM1MGQw" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +[main 2026-09-10T13:19:02.861Z] Extension host with pid 13948 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/panel-host/stdout5.log b/Extension/artifacts/panel-host/stdout5.log new file mode 100644 index 000000000..97358179b --- /dev/null +++ b/Extension/artifacts/panel-host/stdout5.log @@ -0,0 +1,27 @@ + +[main 2026-09-10T13:19:57.140Z] StorageMainService: creating application shared storage +[main 2026-09-10T13:19:57.233Z] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +[main 2026-09-10T13:19:57.240Z] [shared storage] Initializing fallback application storage (path: in-memory) +[main 2026-09-10T13:19:57.276Z] [shared storage] Fallback application storage initialized with 3 items +[main 2026-09-10T13:19:57.654Z] update#disable - updates are disabled by user preference +[main 2026-09-10T13:19:57.657Z] update#setState disabled +[AgentHost:renderer] Acquiring MessagePort to agent host... +[main 2026-09-10T13:19:57.679Z] AgentHostProcessManager: agent host started +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] MessagePort acquired, creating client... +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NWZiM2Q4MTQtNjhiYS00ZGNlLTk1NzctODRiYmM1YjBjZDY5" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] Protocol connection established; clientId=d3402dc1-013f-4b91-a29b-b1e3eaa52a08 +Started local extension host with pid 4536. +Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +Settings Sync: Account status changed from uninitialized to unavailable +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NWZiM2Q4MTQtNjhiYS00ZGNlLTk1NzctODRiYmM1YjBjZDY5" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] Clearing authentication for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] Clearing authentication for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NWZiM2Q4MTQtNjhiYS00ZGNlLTk1NzctODRiYmM1YjBjZDY5" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +[main 2026-09-10T13:20:34.258Z] Extension host with pid 4536 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/panel-host/stdout6.log b/Extension/artifacts/panel-host/stdout6.log new file mode 100644 index 000000000..32fff90d5 --- /dev/null +++ b/Extension/artifacts/panel-host/stdout6.log @@ -0,0 +1,27 @@ + +[main 2026-09-10T13:22:05.766Z] StorageMainService: creating application shared storage +[main 2026-09-10T13:22:05.937Z] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +[main 2026-09-10T13:22:05.941Z] [shared storage] Initializing fallback application storage (path: in-memory) +[main 2026-09-10T13:22:06.134Z] [shared storage] Fallback application storage initialized with 3 items +[main 2026-09-10T13:22:06.770Z] update#disable - updates are disabled by user preference +[main 2026-09-10T13:22:06.773Z] update#setState disabled +[AgentHost:renderer] Acquiring MessagePort to agent host... +[main 2026-09-10T13:22:06.814Z] AgentHostProcessManager: agent host started +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/ZjZjYjc0NDMtMDFhMy00ZGNjLTgzMDItY2E3ZGZiNmYwNDU5" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] MessagePort acquired, creating client... +[AgentHost:renderer] Protocol connection established; clientId=14fe13b1-25bf-4f81-8116-77c4ce21bcd9 +Started local extension host with pid 28800. +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] Clearing authentication for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[AgentHost] Clearing authentication for resource: https://api.github.com/repos +[AgentHost] No token resolved for resource: https://api.github.com +[AgentHost] No token resolved for resource: https://api.github.com/repos +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/ZjZjYjc0NDMtMDFhMy00ZGNjLTgzMDItY2E3ZGZiNmYwNDU5" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +Settings Sync: Account status changed from uninitialized to unavailable +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/ZjZjYjc0NDMtMDFhMy00ZGNjLTgzMDItY2E3ZGZiNmYwNDU5" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[main 2026-09-10T13:22:16.712Z] Extension host with pid 28800 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/panel-host/user/Cache/Cache_Data/data_0 b/Extension/artifacts/panel-host/user/Cache/Cache_Data/data_0 new file mode 100644 index 000000000..af316be86 Binary files /dev/null and b/Extension/artifacts/panel-host/user/Cache/Cache_Data/data_0 differ diff --git a/Extension/artifacts/panel-host/user/Cache/Cache_Data/data_1 b/Extension/artifacts/panel-host/user/Cache/Cache_Data/data_1 new file mode 100644 index 000000000..0ac0cd4ac Binary files /dev/null and b/Extension/artifacts/panel-host/user/Cache/Cache_Data/data_1 differ diff --git a/Extension/artifacts/panel-host/user/Cache/Cache_Data/data_2 b/Extension/artifacts/panel-host/user/Cache/Cache_Data/data_2 new file mode 100644 index 000000000..c7e2eb9ad Binary files /dev/null and b/Extension/artifacts/panel-host/user/Cache/Cache_Data/data_2 differ diff --git a/Extension/artifacts/panel-host/user/Cache/Cache_Data/data_3 b/Extension/artifacts/panel-host/user/Cache/Cache_Data/data_3 new file mode 100644 index 000000000..7adb87c37 Binary files /dev/null and b/Extension/artifacts/panel-host/user/Cache/Cache_Data/data_3 differ diff --git a/Extension/artifacts/panel-host/user/Cache/Cache_Data/index b/Extension/artifacts/panel-host/user/Cache/Cache_Data/index new file mode 100644 index 000000000..da5d4c1d6 Binary files /dev/null and b/Extension/artifacts/panel-host/user/Cache/Cache_Data/index differ diff --git a/Extension/artifacts/panel-host/user/Cache/No_Vary_Search/journal.baj b/Extension/artifacts/panel-host/user/Cache/No_Vary_Search/journal.baj new file mode 100644 index 000000000..54fe66eb5 --- /dev/null +++ b/Extension/artifacts/panel-host/user/Cache/No_Vary_Search/journal.baj @@ -0,0 +1 @@ +$F~ \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user/Cache/No_Vary_Search/snapshot.baf b/Extension/artifacts/panel-host/user/Cache/No_Vary_Search/snapshot.baf new file mode 100644 index 000000000..8912405f3 Binary files /dev/null and b/Extension/artifacts/panel-host/user/Cache/No_Vary_Search/snapshot.baf differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/0e47db1e25d548b5_0 b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/0e47db1e25d548b5_0 new file mode 100644 index 000000000..d135b696e Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/0e47db1e25d548b5_0 differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/14d28c6853f58508_0 b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/14d28c6853f58508_0 new file mode 100644 index 000000000..b26faff62 Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/14d28c6853f58508_0 differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/3f578c145a84d19f_0 b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/3f578c145a84d19f_0 new file mode 100644 index 000000000..fcd9b535e Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/3f578c145a84d19f_0 differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4029b16ba7c77307_0 b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4029b16ba7c77307_0 new file mode 100644 index 000000000..0d0a927e4 Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4029b16ba7c77307_0 differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4e4a8674c1b1dad1_0 b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4e4a8674c1b1dad1_0 new file mode 100644 index 000000000..8ccce82a1 Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4e4a8674c1b1dad1_0 differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5a4441e8b154785f_0 b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5a4441e8b154785f_0 new file mode 100644 index 000000000..0515868e7 Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5a4441e8b154785f_0 differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5cd5a55cf624c9d4_0 b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5cd5a55cf624c9d4_0 new file mode 100644 index 000000000..40d02b698 Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5cd5a55cf624c9d4_0 differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/6706124f05459316_0 b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/6706124f05459316_0 new file mode 100644 index 000000000..dd0f765e9 Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/6706124f05459316_0 differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/76a004898163bb11_0 b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/76a004898163bb11_0 new file mode 100644 index 000000000..e9e24e3d3 Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/76a004898163bb11_0 differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/a5f6702cfaf384a3_0 b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/a5f6702cfaf384a3_0 new file mode 100644 index 000000000..abc0ed72c Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/a5f6702cfaf384a3_0 differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index-dir/the-real-index b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index-dir/the-real-index new file mode 100644 index 000000000..997b4ff4c Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index-dir/the-real-index differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index differ diff --git a/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index-dir/the-real-index b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index-dir/the-real-index new file mode 100644 index 000000000..4fb9ca15e Binary files /dev/null and b/Extension/artifacts/panel-host/user/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index-dir/the-real-index differ diff --git a/Extension/artifacts/panel-host/user/CachedProfilesData/__default__profile__/extensions.builtin.cache b/Extension/artifacts/panel-host/user/CachedProfilesData/__default__profile__/extensions.builtin.cache new file mode 100644 index 000000000..973827471 --- /dev/null +++ b/Extension/artifacts/panel-host/user/CachedProfilesData/__default__profile__/extensions.builtin.cache @@ -0,0 +1 @@ +{"input":{"location":{"$mid":1,"fsPath":"d:\\Software\\Microsoft\\Visual Studio Code\\88e44fa0e0\\resources\\app\\extensions","_sep":1,"external":"file:///d%3A/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/extensions","path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions","scheme":"file"},"mtime":1788955827471,"profile":false,"type":0,"validate":true,"productVersion":"1.136.2","productDate":"2026-09-04T21:40:42Z","productCommit":"88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f","devMode":false,"translations":{}},"result":[{"type":0,"identifier":{"id":"typescriptteam.jsts-chat-features"},"manifest":{"name":"jsts-chat-features","displayName":"JS/TS Chat Features","description":"Provides extensions to VS Family to improve the Copilot experience in JavaScript and TypeScript contexts","publisher":"TypeScriptTeam","author":"Microsoft Corp.","private":true,"version":"0.0.4","icon":"logo.png","license":"SEE LICENSE IN LICENSE.txt","engines":{"vscode":"^1.109.0"},"categories":["AI","Programming Languages"],"extensionKind":["workspace"],"contributes":{"chatSkills":[{"path":"./skills/typescript-setup/SKILL.md","when":"config.jsts-chat-features.skills.enabled"},{"path":"./skills/typescript-update/SKILL.md","when":"config.jsts-chat-features.skills.enabled"}],"configuration":{"title":"JS/TS Chat Features","type":"object","properties":{"jsts-chat-features.skills.enabled":{"type":"boolean","tags":["onExp"],"default":false,"description":"These skills provide helpful prompts and features to enhance your experience when using Copilot to work with JavaScript and TypeScript."}}}},"files":["LICENSE.txt","README.md","logo.png","skills/typescript-setup/SKILL.md","skills/typescript-update/SKILL.md","skills/typescript-update/4to5.md","skills/typescript-update/5to6.md","skills/typescript-update/6to7.md"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/TypeScriptTeam.jsts-chat-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[[2,"property `extensionKind` can be defined only if property `main` is also defined."]],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.bat"},"manifest":{"name":"bat","displayName":"Windows Bat Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Windows batch files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.52.0"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin mmims/language-batchfile grammars/batchfile.cson ./syntaxes/batchfile.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"bat","extensions":[".bat",".cmd"],"aliases":["Batch","bat"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"bat","scopeName":"source.batchfile","path":"./syntaxes/batchfile.tmLanguage.json"}],"snippets":[{"language":"bat","path":"./snippets/batchfile.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/bat","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.clojure"},"manifest":{"name":"clojure","displayName":"Clojure Language Basics","description":"Provides syntax highlighting and bracket matching in Clojure files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-clojure grammars/clojure.cson ./syntaxes/clojure.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"clojure","aliases":["Clojure","clojure"],"extensions":[".clj",".cljs",".cljc",".cljx",".clojure",".edn"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"clojure","scopeName":"source.clojure","path":"./syntaxes/clojure.tmLanguage.json"}],"configurationDefaults":{"[clojure]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/clojure","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.coffeescript"},"manifest":{"name":"coffeescript","displayName":"CoffeeScript Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in CoffeeScript files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-coffee-script grammars/coffeescript.cson ./syntaxes/coffeescript.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"coffeescript","extensions":[".coffee",".cson",".iced"],"aliases":["CoffeeScript","coffeescript","coffee"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"coffeescript","scopeName":"source.coffee","path":"./syntaxes/coffeescript.tmLanguage.json"}],"breakpoints":[{"language":"coffeescript"}],"snippets":[{"language":"coffeescript","path":"./snippets/coffeescript.code-snippets"}],"configurationDefaults":{"[coffeescript]":{"diffEditor.ignoreTrimWhitespace":false,"editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/coffeescript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.configuration-editing"},"manifest":{"name":"configuration-editing","displayName":"Configuration Editing","description":"Provides capabilities (advanced IntelliSense, auto-fixing) in configuration files like settings, launch, and extension recommendation files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.0.0"},"icon":"images/icon.png","activationEvents":["onProfile","onProfile:github","onLanguage:json","onLanguage:jsonc"],"enabledApiProposals":["profileContentHandlers"],"main":"./dist/configurationEditingMain","browser":"./dist/browser/configurationEditingMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"languages":[{"id":"jsonc","extensions":[".code-workspace","language-configuration.json","icon-theme.json","color-theme.json"],"filenames":["settings.json","launch.json","tasks.json","mcp.json","keybindings.json","extensions.json","argv.json","profiles.json","devcontainer.json",".devcontainer.json"]},{"id":"json","extensions":[".code-profile"]}],"jsonValidation":[{"fileMatch":"vscode://defaultsettings/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"%APP_SETTINGS_HOME%/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"vscode://defaultsettings/*.json","url":"vscode://schemas/settings/default"},{"fileMatch":"%APP_SETTINGS_HOME%/settings.json","url":"vscode://schemas/settings/user"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/settings.json","url":"vscode://schemas/settings/profile"},{"fileMatch":"%MACHINE_SETTINGS_HOME%/settings.json","url":"vscode://schemas/settings/machine"},{"fileMatch":"%APP_WORKSPACES_HOME%/*/workspace.json","url":"vscode://schemas/workspaceConfig"},{"fileMatch":"**/*.code-workspace","url":"vscode://schemas/workspaceConfig"},{"fileMatch":"**/argv.json","url":"vscode://schemas/argv"},{"fileMatch":"/.vscode/settings.json","url":"vscode://schemas/settings/folder"},{"fileMatch":"/.vscode/launch.json","url":"vscode://schemas/launch"},{"fileMatch":"/.vscode/tasks.json","url":"vscode://schemas/tasks"},{"fileMatch":"/.vscode/mcp.json","url":"vscode://schemas/mcp"},{"fileMatch":"%APP_SETTINGS_HOME%/tasks.json","url":"vscode://schemas/tasks"},{"fileMatch":"%APP_SETTINGS_HOME%/chatLanguageModels.json","url":"vscode://schemas/language-models"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/chatLanguageModels.json","url":"vscode://schemas/language-models"},{"fileMatch":"%APP_SETTINGS_HOME%/snippets/*.json","url":"vscode://schemas/snippets"},{"fileMatch":"%APP_SETTINGS_HOME%/prompts/*.toolsets.jsonc","url":"vscode://schemas/toolsets"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/snippets/.json","url":"vscode://schemas/snippets"},{"fileMatch":"%APP_SETTINGS_HOME%/sync/snippets/preview/*.json","url":"vscode://schemas/snippets"},{"fileMatch":"**/*.code-snippets","url":"vscode://schemas/global-snippets"},{"fileMatch":"/.vscode/extensions.json","url":"vscode://schemas/extensions"},{"fileMatch":"devcontainer.json","url":"https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json"},{"fileMatch":".devcontainer.json","url":"https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json"},{"fileMatch":"%APP_SETTINGS_HOME%/globalStorage/ms-vscode-remote.remote-containers/nameConfigs/*.json","url":"./schemas/attachContainer.schema.json"},{"fileMatch":"%APP_SETTINGS_HOME%/globalStorage/ms-vscode-remote.remote-containers/imageConfigs/*.json","url":"./schemas/attachContainer.schema.json"},{"fileMatch":"**/quality/*/product.json","url":"vscode://schemas/vscode-product"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["profileContentHandlers"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/configuration-editing","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"github.copilot-chat"},"manifest":{"name":"copilot-chat","displayName":"GitHub Copilot","description":"AI chat features powered by Copilot","version":"0.64.1","build":"1","completionsCoreVersion":"1.378.1799","internalLargeStorageAriaKey":"ec712b3202c5462fb6877acae7f1f9d7-c19ad55e-3e3c-4f99-984b-827f6d95bd9e-6917","ariaKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","buildType":"prod","publisher":"GitHub","homepage":"https://github.com/features/copilot?editor=vscode","license":"SEE LICENSE IN LICENSE.txt","repository":{"type":"git","url":"https://github.com/microsoft/vscode-copilot-chat"},"bugs":{"url":"https://github.com/microsoft/vscode/issues"},"qna":"https://github.com/github-community/community/discussions/categories/copilot","icon":"assets/copilot.png","pricing":"Trial","engines":{"vscode":"^1.136.2","npm":">=9.0.0","node":">=22.14.0"},"categories":["AI","Chat","Programming Languages","Machine Learning"],"keywords":["ai","openai","codex","pilot","snippets","documentation","autocomplete","intellisense","refactor","javascript","python","typescript","php","go","golang","ruby","c++","c#","java","kotlin","co-pilot"],"badges":[{"url":"https://img.shields.io/badge/GitHub%20Copilot-Subscription%20Required-orange","href":"https://github.com/github-copilot/signup?editor=vscode","description":"Sign up for GitHub Copilot"},{"url":"https://img.shields.io/github/stars/github/copilot-docs?style=social","href":"https://github.com/github/copilot-docs","description":"Star Copilot on GitHub"},{"url":"https://img.shields.io/youtube/channel/views/UC7c3Kb6jYCRj4JOHHZTxKsQ?style=social","href":"https://www.youtube.com/@GitHub/search?query=copilot","description":"Check out GitHub on Youtube"},{"url":"https://img.shields.io/twitter/follow/github?style=social","href":"https://twitter.com/github","description":"Follow GitHub on Twitter"}],"activationEvents":["onStartupFinished","onLanguageModelChat:copilot","onUri","onCommand:_github.copilot.chat.reportModelFeedbackSurvey","onFileSystem:ccreq","onFileSystem:ccsettings"],"main":"./dist/extension","l10n":"./l10n","enabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","chatDebug","chatHooks","extensionsAny","newSymbolNamesProvider","interactive","codeActionAI","activeComment","commentReveal","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","documentFiltersExclusive","embeddings","findTextInFiles","findTextInFiles2","languageModelToolSupportsModel","findFiles2","textSearchProvider","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","chatParticipantAdditions","defaultChatParticipant","contribSourceControlInputBoxMenu","authLearnMore","testObserver","aiTextSearchProvider","chatParticipantPrivate","chatProvider","contribDebugCreateConfiguration","chatReferenceDiagnostic","textSearchProvider2","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelPricing","inlineCompletionsAdditions","chatStatusItem","chatInputNotification","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","languageModelThinkingPart","chatSessionsProvider","devDeviceId","contribEditorContentMenu","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","environmentPower","terminalTitle","toolInvocationApproveCombination","chatSessionCustomizationProvider"],"contributes":{"languageModelTools":[{"name":"copilot_searchCodebase","toolReferenceName":"codebase","displayName":"Codebase","icon":"$(folder)","userDescription":"Find relevant file chunks, symbols, and other information via semantic search","modelDescription":"Run a natural language search for relevant code or documentation comments from the user's current workspace. Returns relevant code snippets from the user's current workspace if it is large, or the full contents of the workspace if it is small.","tags":["codesearch","vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to search the codebase for. Should contain all relevant context. Should ideally be text that might appear in the codebase, such as function names, variable names, or comments."}},"required":["query"]}},{"name":"execution_subagent","toolReferenceName":"executionSubagent","displayName":"Execution Subagent","icon":"$(play)","userDescription":"Launch an execution-focused subagent that runs one or more terminal commands to accomplish a task. This subagent is powered by Google's Gemini-3-Flash model. It is designed to select an efficient summary of the terminal outputs to return to the main agent context.","modelDescription":"Launch an iterative execution-focused subagent that performs an execution-based task.\nUSE THIS INSTEAD OF RUNNING INDIVIDUAL COMMANDS WITH run_in_terminal EXCEPT IN THE RARE CASES THAT YOU NEED THE FULL OUTPUT OF A COMMAND.\nHere are some examples of how it can be used:\n- Run tests and filter the output to summarize which tests failed and why.\n- Install all dependencies of a project.\nReturns: A list of commands that were run, along with relevant excerpts of each command's output.\nInput fields:\n- query: What to execute, and what to look for in the output. Can include exact commands to run, or a description of an execution task.\n- description: Short user-visible invocation message.\nNOTE: In the subagent query, make sure to specify any restrictions or guidelines on running commands provided by the user earlier in the conversation.\nFor example, if the user instructs the agent to not edit files in a particular directory, make sure to include that instruction in the subagent query when relevant.","when":"config.github.copilot.chat.executionSubagent.enabled","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"What to execute, and what to look for in the output. Can include exact commands to run, or a description of an execution task."},"description":{"type":"string","description":"User-visible invocation message shown while the subagent runs."}},"required":["query","description"]}},{"name":"search_subagent","toolReferenceName":"searchSubagent","displayName":"Search Subagent","icon":"$(search)","userDescription":"Launch an iterative search-focused subagent to find relevant code in your workspace.","modelDescription":"Launch a fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns (eg. \"src/components/**/*.tsx\"), search code for keywords (eg. \"API endpoints\"), or answer questions about the codebase (eg. \"how do API endpoints work?\").\nReturns: A list of relevant files/snippet locations in the workspace.\n\nInput fields:\n- query: Natural language description of what to search for.\n- description: Short user-visible invocation message. \n- details: 2-3 sentences detailing the objective of the search agent.","when":"config.github.copilot.chat.searchSubagent.enabled && config.github.copilot.chat.exploreAgent.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language description of what to search for."},"description":{"type":"string","description":"A short (3-5 word) description of the task."},"details":{"type":"string","description":"A more detailed description of the objective for the search subagent. This helps the sub-agent remain on task and understand its purpose."}},"required":["query","description","details"]}},{"name":"explore_subagent","toolReferenceName":"exploreSubagent","displayName":"Search Subagent","icon":"$(search)","userDescription":"Launch an iterative search-focused subagent to find relevant code in your workspace.","modelDescription":"Launch a fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns (eg. \"src/components/**/*.tsx\"), search code for keywords (eg. \"API endpoints\"), or answer questions about the codebase (eg. \"how do API endpoints work?\").\nReturns: A list of relevant files/snippet locations in the workspace.\n\nInput fields:\n- query: Natural language description of what to search for.\n- description: Short user-visible invocation message. \n- details: 2-3 sentences detailing the objective of the search agent.","when":"config.github.copilot.chat.searchSubagent.enabled && !config.github.copilot.chat.exploreAgent.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language description of what to search for."},"description":{"type":"string","description":"A short (3-5 word) description of the task."},"details":{"type":"string","description":"A more detailed description of the objective for the search subagent. This helps the sub-agent remain on task and understand its purpose."}},"required":["query","description","details"]}},{"name":"skill","toolReferenceName":"skill","displayName":"Skill","icon":"$(book)","userDescription":"Execute a skill by name. Skills provide specialized capabilities, domain knowledge, and refined workflows.","modelDescription":"Invoke a skill to handle a user's request with specialized instructions and workflows.\n\nSkills are domain-specific capabilities discovered from SKILL.md files. When a user's task matches an available skill, call this tool to load and apply it. If the user types a slash command (e.g. \"/deploy\", \"/test\"), treat it as a skill invocation.\n\nUsage:\n- Pass the skill name only (no arguments).\n- Examples: skill: \"docx\", skill: \"deploy\", skill: \"fix-ci-failures\"\n\nRules:\n- Available skills appear in system-reminder messages earlier in the conversation.\n- BLOCKING: When a matching skill exists, you MUST call this tool before producing any other output about the task.\n- Never reference a skill without calling this tool.\n- Do not call this tool for a skill that is already active in the current turn (indicated by a tag).\n- Do not use this tool for built-in commands such as /help or /clear.","when":"config.github.copilot.chat.skillTool.enabled","inputSchema":{"type":"object","properties":{"skill":{"type":"string","description":"The skill name. E.g., \"commit\", \"review-pr\", or \"pdf\""}},"required":["skill"]}},{"name":"copilot_searchWorkspaceSymbols","toolReferenceName":"symbols","displayName":"Workspace Symbols","icon":"$(symbol)","userDescription":"Search for workspace symbols using language services.","modelDescription":"Search the user's workspace for code symbols using language services. Use this tool when the user is looking for a specific symbol in their workspace.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"symbolName":{"type":"string","description":"The symbol to search for, such as a function name, class name, or variable name."}},"required":["symbolName"]}},{"name":"copilot_getVSCodeAPI","toolReferenceName":"vscodeAPI","displayName":"Get VS Code API References","icon":"$(references)","userDescription":"Use VS Code API references to answer questions about VS Code extension development.","modelDescription":"Get comprehensive VS Code API documentation and references for extension development. This tool provides authoritative documentation for VS Code's extensive API surface, including proposed APIs, contribution points, and best practices. Use this tool for understanding complex VS Code API interactions.\n\nWhen to use this tool:\n- User asks about specific VS Code APIs, interfaces, or extension capabilities\n- Need documentation for VS Code extension contribution points (commands, views, settings, etc.)\n- Questions about proposed APIs and their usage patterns\n- Understanding VS Code extension lifecycle, activation events, and packaging\n- Best practices for VS Code extension development architecture\n- API examples and code patterns for extension features\n- Troubleshooting extension-specific issues or API limitations\n\nWhen NOT to use this tool:\n- Creating simple standalone files or scripts unrelated to VS Code extensions\n- General programming questions not specific to VS Code extension development\n- Questions about using VS Code as an editor (user-facing features)\n- Non-extension related development tasks\n- File creation or editing that doesn't involve VS Code extension APIs\n\nCRITICAL usage guidelines:\n1. Always include specific API names, interfaces, or concepts in your query\n2. Mention the extension feature you're trying to implement\n3. Include context about proposed vs stable APIs when relevant\n4. Reference specific contribution points when asking about extension manifest\n5. Be specific about the VS Code version or API version when known\n\nScope: This tool is for EXTENSION DEVELOPMENT ONLY - building tools that extend VS Code itself, not for general file creation or non-extension programming tasks.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to search vscode documentation for. Should contain all relevant context."}},"required":["query"]},"tags":[]},{"name":"copilot_findFiles","toolReferenceName":"fileSearch","displayName":"Find Files","userDescription":"Find files by name using a glob pattern","modelDescription":"Search for files in the workspace by glob pattern. This only returns the paths of matching files. Use this tool when you know the exact filename pattern of the files you're searching for. Glob patterns match from the root of the workspace folder. Examples:\n- **/*.{js,ts} to match all js/ts files in the workspace.\n- src/** to match all files under the top-level src folder.\n- **/foo/**/*.js to match all js files under any foo folder in the workspace.\n\nIn a multi-root workspace, you can scope the search to a specific workspace folder by using the absolute path to the folder as the query, e.g. /path/to/folder/**/*.ts.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search for files with names or paths matching this glob pattern. Can also be an absolute path to a workspace folder to scope the search in a multi-root workspace."},"maxResults":{"type":"number","description":"The maximum number of results to return. Do not use this unless necessary, it can slow things down. By default, only some matches are returned. If you use this and don't see what you're looking for, you can try again with a more specific query or a larger maxResults."}},"required":["query"]}},{"name":"copilot_findTextInFiles","toolReferenceName":"textSearch","displayName":"Find Text In Files","userDescription":"Search for text in files by regular expression","modelDescription":"Do a fast text search in the workspace. Use this tool when you want to search with an exact string or regex. If you are not sure what words will appear in the workspace, prefer using regex patterns with alternation (|) or character classes to search for multiple potential words at once instead of making separate searches. For example, use 'function|method|procedure' to look for all of those words at once. Use includePattern to search within files matching a specific pattern, or in a specific file, using a relative path. Use 'includeIgnoredFiles' to include files normally ignored by .gitignore, other ignore files, and `files.exclude` and `search.exclude` settings. Warning: using this may cause the search to be slower, only set it when you want to search in ignored folders like node_modules or build outputs. Use this tool when you want to see an overview of a particular file, instead of using read_file many times to look for code within a file.\n\nIn a multi-root workspace, you can scope the search to a specific workspace folder by using the absolute path to the folder as the includePattern, e.g. /path/to/folder.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The pattern to search for in files in the workspace. Use regex with alternation (e.g., 'word1|word2|word3') or character classes to find multiple potential words in a single search. Be sure to set the isRegexp property properly to declare whether it's a regex or plain text pattern. Is case-insensitive."},"isRegexp":{"type":"boolean","description":"Whether the pattern is a regex."},"includePattern":{"type":"string","description":"Search files matching this glob pattern. Will be applied to the relative path of files within the workspace. To search recursively inside a folder, use a proper glob pattern like \"src/folder/**\". Do not use | in includePattern. Can also be an absolute path to a workspace folder to scope the search in a multi-root workspace."},"maxResults":{"type":"number","description":"The maximum number of results to return. Do not use this unless necessary, it can slow things down. By default, only some matches are returned. If you use this and don't see what you're looking for, you can try again with a more specific query or a larger maxResults."},"includeIgnoredFiles":{"type":"boolean","description":"Whether to include files that would normally be ignored according to .gitignore, other ignore files and `files.exclude` and `search.exclude` settings. Warning: using this may cause the search to be slower. Only set it when you want to search in ignored folders like node_modules or build outputs."}},"required":["query","isRegexp"]}},{"name":"copilot_applyPatch","displayName":"Apply Patch","toolReferenceName":"applyPatch","userDescription":"Edit text files in the workspace","modelDescription":"Edit text files. Do not use this tool to edit Jupyter notebooks. `apply_patch` allows you to execute a diff/patch against a text file, but the format of the diff specification is unique to this task, so pay careful attention to these instructions. To use the `apply_patch` command, you should pass a message of the following structure as \"input\":\n\n*** Begin Patch\n[YOUR_PATCH]\n*** End Patch\n\nWhere [YOUR_PATCH] is the actual content of your patch, specified in the following V4A diff format.\n\n*** [ACTION] File: [/absolute/path/to/file] -> ACTION can be one of Add, Update, or Delete.\nAn example of a message that you might pass as \"input\" to this function, in order to apply a patch, is shown below.\n\n*** Begin Patch\n*** Update File: /Users/someone/pygorithm/searching/binary_search.py\n@@class BaseClass\n@@ def search():\n- pass\n+ raise NotImplementedError()\n\n@@class Subclass\n@@ def search():\n- pass\n+ raise NotImplementedError()\n\n*** End Patch\nDo not use line numbers in this diff format.","inputSchema":{"type":"object","properties":{"input":{"type":"string","description":"The edit patch to apply."},"explanation":{"type":"string","description":"A short description of what the tool call is aiming to achieve."}},"required":["input","explanation"]}},{"name":"copilot_readFile","toolReferenceName":"readFile","legacyToolReferenceFullNames":["search/readFile"],"displayName":"Read File","userDescription":"Read the contents of a file","modelDescription":"Read the contents of a file.\n\nYou must specify the line range you're interested in. Line numbers are 1-indexed. If the file contents returned are insufficient for your task, you may call this tool again to retrieve more content. Prefer reading larger ranges over doing many small reads. Binary files use startLine/endLine as byte offsets.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"filePath":{"description":"The absolute path of the file to read.","type":"string"},"startLine":{"type":"number","description":"The line number to start reading from, 1-based."},"endLine":{"type":"number","description":"The inclusive line number to end reading at, 1-based."}},"required":["filePath","startLine","endLine"]}},{"name":"copilot_viewImage","toolReferenceName":"viewImage","displayName":"View Image","userDescription":"View the contents of an image file","when":"config.github.copilot.chat.tools.viewImage.enabled","modelDescription":"View the contents of an image file. Use this instead of read_file for supported image files such as png, jpg, jpeg, gif, and webp. The tool returns the image directly to multimodal models and does not take line ranges or offsets.","inputSchema":{"type":"object","properties":{"filePath":{"description":"The absolute path of the image file to view.","type":"string"}},"required":["filePath"]}},{"name":"copilot_listDirectory","toolReferenceName":"listDirectory","displayName":"List Dir","userDescription":"List the contents of a directory","modelDescription":"List the contents of a directory. Result will have the name of the child. If the name ends in /, it's a folder, otherwise a file","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"The absolute path to the directory to list."}},"required":["path"]}},{"name":"copilot_getErrors","displayName":"Get Problems","toolReferenceName":"problems","legacyToolReferenceFullNames":["problems"],"icon":"$(error)","userDescription":"Check errors for a particular file","modelDescription":"Get any compile or lint errors in a specific file or across all files. If the user mentions errors or problems in a file, they may be referring to these. Use the tool to see the same errors that the user is seeing. If the user asks you to analyze all errors, or does not specify a file, use this tool to gather errors for all files. Also use this tool after editing a file to validate the change.","tags":[],"inputSchema":{"type":"object","properties":{"filePaths":{"description":"The absolute paths to the files or folders to check for errors. Omit 'filePaths' when retrieving all errors.","type":"array","items":{"type":"string"}}}}},{"name":"copilot_readProjectStructure","displayName":"Project Structure","modelDescription":"Get a file tree representation of the workspace.","tags":[]},{"name":"copilot_getChangedFiles","displayName":"Git Changes","toolReferenceName":"changes","legacyToolReferenceFullNames":["changes"],"icon":"$(diff)","userDescription":"Get diffs of changed files","modelDescription":"Get git diffs of current file changes in a git repository. Don't forget that you can use run_in_terminal to run git commands in a terminal as well.","when":"config.github.copilot.chat.getChangedFilesTool.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"repositoryPath":{"type":"string","description":"The absolute path to the git repository to look for changes in. If not provided, the active git repository will be used."},"sourceControlState":{"type":"array","items":{"type":"string","enum":["staged","unstaged","merge-conflicts"]},"description":"The kinds of git state to filter by. Allowed values are: 'staged', 'unstaged', and 'merge-conflicts'. If not provided, all states will be included."}}}},{"name":"copilot_createNewWorkspace","displayName":"Create New Workspace","toolReferenceName":"newWorkspace","legacyToolReferenceFullNames":["new/newWorkspace"],"icon":"$(new-folder)","userDescription":"Scaffold a new workspace in VS Code","when":"config.github.copilot.chat.newWorkspaceCreation.enabled","modelDescription":"Get comprehensive setup steps to help the user create complete project structures in a VS Code workspace. This tool is designed for full project initialization and scaffolding, not for creating individual files.\n\nWhen to use this tool:\n- User wants to create a new complete project from scratch\n- Setting up entire project frameworks (TypeScript projects, React apps, Node.js servers, etc.)\n- Initializing Model Context Protocol (MCP) servers with full structure\n- Creating VS Code extensions with proper scaffolding\n- Setting up Next.js, Vite, or other framework-based projects\n- User asks for \"new project\", \"create a workspace\", \"set up a [framework] project\"\n- Need to establish complete development environment with dependencies, config files, and folder structure\n\nWhen NOT to use this tool:\n- Creating single files or small code snippets\n- Adding individual files to existing projects\n- Making modifications to existing codebases\n- User asks to \"create a file\" or \"add a component\"\n- Simple code examples or demonstrations\n- Debugging or fixing existing code\n\nThis tool provides complete project setup including:\n- Folder structure creation\n- Package.json and dependency management\n- Configuration files (tsconfig, eslint, etc.)\n- Initial boilerplate code\n- Development environment setup\n- Build and run instructions\n\nUse other file creation tools for individual files within existing projects.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to use to generate the new workspace. This should be a clear and concise description of the workspace the user wants to create."}},"required":["query"]},"tags":["enable_other_tool_install_extension"]},{"name":"copilot_installExtension","displayName":"Install Extension in VS Code","when":"!config.github.copilot.chat.installExtensionSkill.enabled","toolReferenceName":"installExtension","legacyToolReferenceFullNames":["new/installExtension"],"modelDescription":"Install an extension in VS Code. Use this tool to install an extension in Visual Studio Code as part of a new workspace creation process only.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the extension to install. This should be in the format .."},"name":{"type":"string","description":"The name of the extension to install. This should be a clear and concise description of the extension."}},"required":["id","name"]},"tags":[]},{"name":"copilot_runVscodeCommand","displayName":"Run VS Code Command","toolReferenceName":"runCommand","legacyToolReferenceFullNames":["new/runVscodeCommand"],"modelDescription":"Run a command in VS Code. Use this tool to run a command in Visual Studio Code as part of a new workspace creation process only.","inputSchema":{"type":"object","properties":{"commandId":{"type":"string","description":"The ID of the command to execute. This should be in the format ."},"name":{"type":"string","description":"The name of the command to execute. This should be a clear and concise description of the command."},"args":{"type":"array","description":"The arguments to pass to the command. This should be an array of strings.","items":{"type":"string"}},"skipCheck":{"type":"boolean","description":"If true, skip checking whether the command exists before executing it."}},"required":["commandId","name"]},"tags":[]},{"name":"copilot_createNewJupyterNotebook","displayName":"Create New Jupyter Notebook","icon":"$(notebook)","toolReferenceName":"createJupyterNotebook","legacyToolReferenceFullNames":["newJupyterNotebook"],"modelDescription":"Generates a new Jupyter Notebook (.ipynb) in VS Code. Jupyter Notebooks are interactive documents commonly used for data exploration, analysis, visualization, and combining code with narrative text. Prefer creating plain Python files or similar unless a user explicitly requests creating a new Jupyter Notebook or already has a Jupyter Notebook opened or exists in the workspace.","userDescription":"Create a new Jupyter Notebook","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to use to generate the jupyter notebook. This should be a clear and concise description of the notebook the user wants to create."}},"required":["query"]},"tags":[]},{"name":"copilot_insertEdit","toolReferenceName":"insertEdit","displayName":"Edit File","modelDescription":"Insert new code into an existing file in the workspace. Use this tool once per file that needs to be modified, even if there are multiple changes for a file. Generate the \"explanation\" property first.\nThe system is very smart and can understand how to apply your edits to the files, you just need to provide minimal hints.\nAvoid repeating existing code, instead use comments to represent regions of unchanged code. Be as concise as possible. For example:\n// ...existing code...\n{ changed code }\n// ...existing code...\n{ changed code }\n// ...existing code...\n\nHere is an example of how you should use format an edit to an existing Person class:\nclass Person {\n\t// ...existing code...\n\tage: number;\n\t// ...existing code...\n\tgetAge() {\n\treturn this.age;\n\t}\n}","tags":[],"inputSchema":{"type":"object","properties":{"explanation":{"type":"string","description":"A short explanation of the edit being made."},"filePath":{"type":"string","description":"An absolute path to the file to edit."},"code":{"type":"string","description":"The code change to apply to the file.\nThe system is very smart and can understand how to apply your edits to the files, you just need to provide minimal hints.\nAvoid repeating existing code, instead use comments to represent regions of unchanged code. Be as concise as possible. For example:\n// ...existing code...\n{ changed code }\n// ...existing code...\n{ changed code }\n// ...existing code...\n\nHere is an example of how you should use format an edit to an existing Person class:\nclass Person {\n\t// ...existing code...\n\tage: number;\n\t// ...existing code...\n\tgetAge() {\n\t\treturn this.age;\n\t}\n}"}},"required":["explanation","filePath","code"]}},{"name":"copilot_createFile","toolReferenceName":"createFile","legacyToolReferenceFullNames":["createFile"],"displayName":"Create File","userDescription":"Create new files","modelDescription":"This is a tool for creating a new file in the workspace. The file will be created with the specified content. The directory will be created if it does not already exist. Never use this tool to edit a file that already exists.","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"The absolute path to the file to create."},"content":{"type":"string","description":"The content to write to the file."}},"required":["filePath","content"]}},{"name":"copilot_createDirectory","toolReferenceName":"createDirectory","legacyToolReferenceFullNames":["createDirectory"],"displayName":"Create Directory","userDescription":"Create new directories in your workspace","modelDescription":"Create a new directory structure in the workspace. Will recursively create all directories in the path, like mkdir -p. You do not need to use this tool before using create_file, that tool will automatically create the needed directories.","tags":[],"inputSchema":{"type":"object","properties":{"dirPath":{"type":"string","description":"The absolute path to the directory to create."}},"required":["dirPath"]}},{"name":"copilot_replaceString","toolReferenceName":"replaceString","displayName":"Replace String in File","modelDescription":"This is a tool for making edits in an existing file in the workspace. For moving or renaming files, use run in terminal tool with the 'mv' command instead. For larger edits, split them into smaller edits and call the edit tool multiple times to ensure accuracy. Before editing, always ensure you have the context to understand the file's contents and context. To edit a file, provide: 1) filePath (absolute path), 2) oldString (MUST be the exact literal text to replace including all whitespace, indentation, newlines, and surrounding code etc), and 3) newString (MUST be the exact literal text to replace \\`oldString\\` with (also including all whitespace, indentation, newlines, and surrounding code etc.). Ensure the resulting code is correct and idiomatic.). Each use of this tool replaces exactly ONE occurrence of oldString.\n\nCRITICAL for \\`oldString\\`: Must uniquely identify the single instance to change. Include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string matches multiple locations, or does not match exactly, the tool will fail. Never use 'Lines 123-456 omitted' from summarized documents or ...existing code... comments in the oldString or newString.","when":"!config.github.copilot.chat.disableReplaceTool","inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the file to edit."},"oldString":{"type":"string","description":"The exact literal text to replace, preferably unescaped. For single replacements (default), include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. For multiple replacements, specify expected_replacements parameter. If this string is not the exact literal text (i.e. you escaped it) or does not match exactly, the tool will fail."},"newString":{"type":"string","description":"The exact literal text to replace `old_string` with, preferably unescaped. Provide the EXACT text. Ensure the resulting code is correct and idiomatic."}},"required":["filePath","oldString","newString"]}},{"name":"copilot_multiReplaceString","toolReferenceName":"multiReplaceString","displayName":"Multi-Replace String in Files","modelDescription":"This tool allows you to apply multiple replace_string_in_file operations in a single call, which is more efficient than calling replace_string_in_file multiple times. It takes an array of replacement operations and applies them sequentially. Each replacement operation has the same parameters as replace_string_in_file: filePath, oldString, newString, and explanation. This tool is ideal when you need to make multiple edits across different files or multiple edits in the same file. The tool will provide a summary of successful and failed operations.","when":"!config.github.copilot.chat.disableReplaceTool","inputSchema":{"type":"object","properties":{"explanation":{"type":"string","description":"A brief explanation of what the multi-replace operation will accomplish."},"replacements":{"type":"array","description":"An array of replacement operations to apply sequentially.","items":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the file to edit."},"oldString":{"type":"string","description":"The exact literal text to replace, preferably unescaped. Include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string is not the exact literal text or does not match exactly, this replacement will fail."},"newString":{"type":"string","description":"The exact literal text to replace `oldString` with, preferably unescaped. Provide the EXACT text. Ensure the resulting code is correct and idiomatic."}},"required":["filePath","oldString","newString"]},"minItems":1}},"required":["explanation","replacements"]}},{"name":"copilot_editNotebook","toolReferenceName":"editNotebook","icon":"$(pencil)","displayName":"Edit Notebook","userDescription":"Edit a notebook file in the workspace","modelDescription":"This is a tool for editing an existing Notebook file in the workspace. Generate the \"explanation\" property first.\nThe system is very smart and can understand how to apply your edits to the notebooks.\nWhen updating the content of an existing cell, ensure newCode preserves whitespace and indentation exactly and does NOT include any code markers such as (...existing code...).","tags":["enable_other_tool_copilot_getNotebookSummary"],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file to edit, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1."},"cellId":{"type":"string","description":"Id of the cell that needs to be deleted or edited. Use the value `TOP`, `BOTTOM` when inserting a cell at the top or bottom of the notebook, else provide the id of the cell after which a new cell is to be inserted. Remember, if a cellId is provided and editType=insert, then a cell will be inserted after the cell with the provided cellId."},"newCode":{"anyOf":[{"type":"string","description":"The code for the new or existing cell to be edited. Code should not be wrapped within tags. Do NOT include code markers such as (...existing code...) to indicate existing code."},{"type":"array","items":{"type":"string","description":"The code for the new or existing cell to be edited. Code should not be wrapped within tags"}}]},"language":{"type":"string","description":"The language of the cell. `markdown`, `python`, `javascript`, `julia`, etc."},"editType":{"type":"string","enum":["insert","delete","edit"],"description":"The operation peformed on the cell, whether `insert`, `delete` or `edit`.\nUse the `editType` field to specify the operation: `insert` to add a new cell, `edit` to modify an existing cell's content, and `delete` to remove a cell."}},"required":["filePath","editType","cellId"]}},{"name":"copilot_runNotebookCell","displayName":"Run Notebook Cell","toolReferenceName":"runNotebookCell","legacyToolReferenceFullNames":["runNotebooks/runCell"],"icon":"$(play)","modelDescription":"This is a tool for running a code cell in a notebook file directly in the notebook editor. The output from the execution will be returned. Code cells should be run as they are added or edited when working through a problem to bring the kernel state up to date and ensure the code executes successfully. Code cells are ready to run and don't require any pre-processing. If asked to run the first cell in a notebook, you should run the first code cell since markdown cells cannot be executed. NOTE: Avoid executing Markdown cells or providing Markdown cell IDs, as Markdown cells cannot be executed.","userDescription":"Trigger the execution of a cell in a notebook file","tags":["enable_other_tool_copilot_getNotebookSummary"],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"},"reason":{"type":"string","description":"An optional explanation of why the cell is being run. This will be shown to the user before the tool is run and is not necessary if it's self-explanatory."},"cellId":{"type":"string","description":"The ID for the code cell to execute. Avoid providing markdown cell IDs as nothing will be executed."},"continueOnError":{"type":"boolean","description":"Whether or not execution should continue for remaining cells if an error is encountered. Default to false unless instructed otherwise."}},"required":["filePath","cellId"]}},{"name":"copilot_getNotebookSummary","toolReferenceName":"getNotebookSummary","legacyToolReferenceFullNames":["runNotebooks/getNotebookSummary"],"displayName":"Get the structure of a notebook","modelDescription":"This is a tool returns the list of the Notebook cells along with the id, cell types, line ranges, language, execution information and output mime types for each cell. This is useful to get Cell Ids when executing a notebook or determine what cells have been executed and what order, or what cells have outputs. If required to read contents of a cell use this to determine the line range of a cells, and then use read_file tool to read a specific line range. Requery this tool if the contents of the notebook change.","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"}},"required":["filePath"]}},{"name":"copilot_readNotebookCellOutput","displayName":"Get Notebook Cell Output","toolReferenceName":"readNotebookCellOutput","legacyToolReferenceFullNames":["runNotebooks/readNotebookCellOutput"],"icon":"$(notebook-render-output)","modelDescription":"This tool will retrieve the output for a notebook cell from its most recent execution or restored from disk. The cell may have output even when it has not been run in the current kernel session. This tool has a higher token limit for output length than the runNotebookCell tool.","userDescription":"Read the output of a previously executed cell","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"},"cellId":{"type":"string","description":"The ID of the cell for which output should be retrieved."}},"required":["filePath","cellId"]}},{"name":"copilot_fetchWebPage","displayName":"Fetch Web Page","toolReferenceName":"fetch","legacyToolReferenceFullNames":["fetch"],"when":"!isWeb","icon":"$(globe)","userDescription":"Fetch the main content from a web page. You should include the URL of the page you want to fetch.","modelDescription":"Fetches the main content from a web page. This tool is useful for summarizing or analyzing the content of a webpage. You should use this tool when you think the user is looking for information from a specific webpage.","tags":[],"inputSchema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"},"description":"An array of URLs to fetch content from."},"query":{"type":"string","description":"The query to search for in the web page's content. This should be a clear and concise description of the content you want to find."}},"required":["urls","query"]}},{"name":"copilot_findTestFiles","displayName":"Find Test Files","icon":"$(beaker)","canBeReferencedInPrompt":false,"toolReferenceName":"findTestFiles","userDescription":"For a source code file, find the file that contains the tests. For a test file, find the file that contains the code under test","modelDescription":"For a source code file, find the file that contains the tests. For a test file find the file that contains the code under test.","tags":[],"inputSchema":{"type":"object","properties":{"filePaths":{"type":"array","items":{"type":"string"}}},"required":["filePaths"]}},{"name":"copilot_githubRepo","toolReferenceName":"githubRepo","legacyToolReferenceFullNames":["githubRepo"],"displayName":"Semantic Search GitHub Repository","modelDescription":"Searches a GitHub repository for relevant source code snippets. Only use this tool if the user is very clearly asking for code snippets from a specific GitHub repository. Do not use this tool for Github repos that the user has open in their workspace.","userDescription":"Semantic Search a GitHub repository for relevant source code snippets. You can specify a repository using `owner/repo`","icon":"$(repo)","when":"!config.github.copilot.chat.githubMcpServer.enabled","inputSchema":{"type":"object","properties":{"repo":{"type":"string","description":"The name of the Github repository to search for code in. Should must be formatted as '/'."},"query":{"type":"string","description":"The query to search for repo. Should contain all relevant context."}},"required":["repo","query"]}},{"name":"copilot_githubTextSearch","legacyToolReferenceFullNames":["githubTextSearch"],"toolReferenceName":"githubTextSearch","displayName":"GitHub Text Search","modelDescription":"Lexically searches a GitHub repository or organization for files containing specific keywords or code patterns. Use this when looking for exact strings, function names, or identifiers in a GitHub repo or org. Unlike the semantic search tool, this uses keyword matching rather than meaning-based search.","userDescription":"Text search a GitHub repository or organization for files containing specific keywords or code patterns.","icon":"$(search)","inputSchema":{"type":"object","properties":{"scope":{"type":"string","description":"The GitHub scope to search. Use 'owner/repo' to search a single repository, or an org name (no slash) to search across an entire organization."},"query":{"type":"string","description":"The keyword search query. Supports GitHub code search syntax such as 'language:typescript', 'extension:ts', 'path:src/', etc."},"maxResults":{"type":"number","description":"Optional. The maximum number of search results to return. Defaults to 100."}},"required":["scope","query"]}},{"name":"copilot_switchAgent","toolReferenceName":"switchAgent","displayName":"Switch Agent","userDescription":"Switch to a different agent mode. Currently only the Plan agent is supported.","modelDescription":"Switch to the Plan agent to align on approach before implementing. Plan will explore the codebase, gathers context, clarifies requirements with the user, and creates an actionable implementation plan.\n\nSWITCH TO PLAN when ANY of these apply:\n1. Adding new functionality - where should it go? What patterns to follow?\n2. Multiple valid approaches exist - choosing between technologies, patterns, or strategies\n3. Modifying existing behavior - unclear what should change or what side effects exist\n4. Architectural decisions required - choosing between design patterns or integration approaches\n5. Changes span multiple files - refactoring, migrations, or cross-cutting concerns\n6. Requirements are underspecified - need to explore before understanding scope\n\nEXAMPLES:\n✓ Switch to Plan:\n- \"Add authentication to the app\" → architectural decisions needed (session vs JWT, middleware)\n- \"Refactor this data flow\" → must understand component dependencies first\n- \"Migrate from X to Y\" → requires understanding current structure\n\n✗ Do NOT switch to Plan:\n- User attached a detailed spec, plan, or requirements doc → context already provided\n- You already started editing files in this conversation → too late to switch\n- Single obvious change like fixing a typo or renaming → just do it\n- User gave explicit step-by-step instructions → follow them directly","when":"config.github.copilot.chat.switchAgent.enabled","icon":"$(arrow-swap)","inputSchema":{"type":"object","properties":{"agentName":{"type":"string","description":"The name of the agent to switch to. Currently only 'Plan' is supported.","enum":["Plan"]}},"required":["agentName"]}},{"name":"copilot_memory","displayName":"Memory","toolReferenceName":"memory","userDescription":"Manage persistent memory across conversations","modelDescription":"Manage a persistent memory system with three scopes for storing notes and information across conversations.\n\nMemory is organized under /memories/ with three tiers:\n- `/memories/` — User memory: persistent notes that survive across all workspaces and conversations. Store preferences, patterns, and general insights here.\n- `/memories/session/` — Session memory: notes scoped to the current conversation. Store task-specific context and in-progress notes here. Cleared after the conversation ends.\n- `/memories/repo/` — Repository memory: repository-scoped notes stored locally in the workspace. Store codebase conventions, build commands, project structure facts, and verified practices here.\n\nIMPORTANT: Before creating new memory files, first view the /memories/ directory to understand what already exists. This helps avoid duplicates and maintain organized notes.\n\nCommands:\n- `view`: View contents of a file or list directory contents. Can be used on files or directories (e.g., \"/memories/\" to see all top-level items).\n- `create`: Create a new file at the specified path with the given content. Fails if the file already exists.\n- `str_replace`: Replace an exact string in a file with a new string. The old_str must appear exactly once in the file.\n- `insert`: Insert text at a specific line number in a file. Line 0 inserts at the beginning.\n- `delete`: Delete a file or directory (and all its contents).\n- `rename`: Rename or move a file or directory from path to new_path. Cannot rename across scopes.","inputSchema":{"type":"object","properties":{"command":{"type":"string","enum":["view","create","str_replace","insert","delete","rename"],"description":"The operation to perform on the memory file system."},"path":{"type":"string","description":"The absolute path to the file or directory inside /memories/, e.g. \"/memories/notes.md\". Used by all commands except `rename`."},"file_text":{"type":"string","description":"Required for `create`. The content of the file to create."},"old_str":{"type":"string","description":"Required for `str_replace`. The exact string in the file to replace. Must appear exactly once."},"new_str":{"type":"string","description":"Required for `str_replace`. The new string to replace old_str with."},"insert_line":{"type":"number","description":"Required for `insert`. The 0-based line number to insert text at. 0 inserts before the first line."},"insert_text":{"type":"string","description":"Required for `insert`. The text to insert at the specified line."},"view_range":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2,"description":"Optional for `view`. A two-element array [start_line, end_line] (1-indexed) to view a specific range of lines."},"old_path":{"type":"string","description":"Required for `rename`. The current path of the file or directory to rename."},"new_path":{"type":"string","description":"Required for `rename`. The new path for the file or directory."}},"required":["command"]}},{"name":"copilot_resolveMemoryFileUri","displayName":"Resolve Memory File URI","toolReferenceName":"resolveMemoryFileUri","userDescription":"Resolve a memory file path to its actual URI","modelDescription":"Resolve a memory file path (like /memories/session/plan.md or /memories/repo/notes.md) to its fully qualified URI. Use this when you need the actual URI for a memory file, for example to pass it to setArtifacts. The path must start with /memories/.","tags":[],"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"The memory file path to resolve (e.g. /memories/session/plan.md)."}},"required":["path"]}},{"name":"copilot_editFiles","modelDescription":"This is a placeholder tool, do not use","userDescription":"Edit files","icon":"$(pencil)","displayName":"Edit Files","toolReferenceName":"editFiles","legacyToolReferenceFullNames":["editFiles"]},{"name":"copilot_sessionStoreSql","displayName":"Session Store SQL","toolReferenceName":"sessionStoreSql","when":"github.copilot.sessionSearch.enabled","userDescription":"Query your Copilot session history using SQL","modelDescription":"Query the local session store containing history from past coding sessions. Uses SQLite syntax (NOT DuckDB or Postgres). SQL queries are read-only — only SELECT and WITH are allowed. Use `datetime('now', '-1 day')` for date math (NOT `now() - INTERVAL '1 day'`), FTS5 `MATCH` for text search.\n\nTables: `sessions`, `turns`, `session_files`, `session_refs`, `checkpoints`, `search_index`. For column details and query patterns, use the **chronicle** skill.\n\nActions: 'query' (execute SQL — supports JOINs, FTS5 MATCH, aggregations), 'reindex' (rebuild index from debug logs).","tags":[],"canBeReferencedInPrompt":false,"inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["query","reindex"],"description":"The action to perform. 'query' (default) executes a SQL query. 'reindex' rebuilds the local session index and syncs to cloud if enabled."},"query":{"type":"string","description":"A single read-only SQL query to execute. Required when action is 'query'. Supports SELECT, WITH, JOINs, aggregations, and FTS5 MATCH. Only one statement per call — do not combine multiple queries with semicolons."},"force":{"type":"boolean","description":"When true with action 'reindex', re-processes all sessions including already-indexed ones. Default false (skips already-indexed sessions)."},"description":{"type":"string","description":"A 2-5 word summary of what this call does (e.g. 'Recent sessions overview', 'Generate standup', 'Reindex sessions')."},"subcommand":{"type":"string","enum":["standup","tips","cost-tips","search","improve","reindex"],"description":"The chronicle subcommand that triggered this call (e.g. 'tips' for /chronicle tips). Used for telemetry attribution only — pass this whenever the call originates from a /chronicle slash command."}},"required":["description"]}}],"languageModelToolSets":[{"name":"edit","description":"Edit files in your workspace","icon":"$(pencil)","tools":["createDirectory","createFile","createJupyterNotebook","editFiles","editNotebook","rename"]},{"name":"execute","description":"","tools":["runNotebookCell","executionSubagent"]},{"name":"read","description":"Read files in your workspace","icon":"$(eye)","tools":["getNotebookSummary","problems","readFile","viewImage","readNotebookCellOutput","skill"]},{"name":"search","description":"Search files in your workspace","icon":"$(search)","tools":["changes","codebase","fileSearch","listDirectory","textSearch","searchSubagent","usages"]},{"name":"vscode","description":"","tools":["installExtension","memory","newWorkspace","resolveMemoryFileUri","runCommand","switchAgent","toolSearch","vscodeAPI"]},{"name":"web","description":"Fetch information from the web","icon":"$(globe)","tools":["fetch","githubRepo","githubTextSearch"]}],"chatParticipants":[{"id":"github.copilot.default","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["panel"],"modes":["ask"],"disambiguation":[{"category":"generate_code_sample","description":"The user wants to generate code snippets without referencing the contents of the current workspace. This category does not include generating entire projects.","examples":["Write an example of computing a SHA256 hash."]},{"category":"add_feature_to_file","description":"The user wants to change code in a file that is provided in their request, without referencing the contents of the current workspace. This category does not include generating entire projects.","examples":["Add a refresh button to the table widget."]},{"category":"question_about_specific_files","description":"The user has a question about a specific file or code snippet that they have provided as part of their query, and the question does not require additional workspace context to answer.","examples":["What does this file do?"]}],"commands":[{"name":"explain","description":"Explain how the code in your active editor works"},{"name":"review","description":"Review the selected code in your active editor","when":"github.copilot.advanced.review.intent"},{"name":"tests","description":"Generate unit tests for the selected code","disambiguation":[{"category":"create_tests","description":"The user wants to generate unit tests.","examples":["Generate tests for my selection using pytest."]}]},{"name":"fix","description":"Propose a fix for the problems in the selected code","sampleRequest":"There is a problem in this code. Rewrite the code to show it with the bug fixed."},{"name":"new","description":"Scaffold code for a new file or project in a workspace","sampleRequest":"Create a RESTful API server using typescript","isSticky":true,"disambiguation":[{"category":"create_new_workspace_or_extension","description":"The user wants to create a complete Visual Studio Code workspace from scratch, such as a new application or a Visual Studio Code extension. Use this category only if the question relates to generating or creating new workspaces in Visual Studio Code. Do not use this category for updating existing code or generating sample code snippets","examples":["Scaffold a Node server.","Create a sample project which uses the fileSystemProvider API.","react application"]}]},{"name":"newNotebook","description":"Create a new Jupyter Notebook","sampleRequest":"How do I create a notebook to load data from a csv file?","disambiguation":[{"category":"create_jupyter_notebook","description":"The user wants to create a new Jupyter notebook in Visual Studio Code.","examples":["Create a notebook to analyze this CSV file."]}]},{"name":"semanticSearch","description":"Find relevant code to your query","sampleRequest":"Where is the toolbar code?","when":"config.github.copilot.semanticSearch.enabled"},{"name":"setupTests","description":"Set up tests in your project (Experimental)","sampleRequest":"add playwright tests to my project","when":"config.github.copilot.chat.setupTests.enabled","disambiguation":[{"category":"set_up_tests","description":"The user wants to configure project test setup, framework, or test runner. The user does not want to fix their existing tests.","examples":["Set up tests for this project."]}]}]},{"id":"github.copilot.editingSession","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Edit files in your workspace","isDefault":true,"locations":["panel"],"modes":["edit"]},{"id":"github.copilot.editingSessionEditor","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Edit files in your workspace","isDefault":true,"locations":["editor"],"commands":[]},{"id":"github.copilot.editsAgent","name":"agent","fullName":"GitHub Copilot","description":"Edit files in your workspace in agent mode","locations":["panel"],"modes":["agent"],"isEngine":true,"isDefault":true,"isAgent":true,"when":"config.chat.agent.enabled","commands":[{"name":"error","description":"Make a model request which will result in an error","when":"github.copilot.chat.debug"},{"name":"compact","description":"Free up context by compacting the conversation history. Optionally include extra instructions for compaction."},{"name":"explain","description":"Explain how the code in your active editor works"},{"name":"review","description":"Review the selected code in your active editor","when":"github.copilot.advanced.review.intent"},{"name":"tests","description":"Generate unit tests for the selected code","disambiguation":[{"category":"create_tests","description":"The user wants to generate unit tests.","examples":["Generate tests for my selection using pytest."]}]},{"name":"fix","description":"Propose a fix for the problems in the selected code","sampleRequest":"There is a problem in this code. Rewrite the code to show it with the bug fixed."},{"name":"new","description":"Scaffold code for a new file or project in a workspace","sampleRequest":"Create a RESTful API server using typescript","isSticky":true,"disambiguation":[{"category":"create_new_workspace_or_extension","description":"The user wants to create a complete Visual Studio Code workspace from scratch, such as a new application or a Visual Studio Code extension. Use this category only if the question relates to generating or creating new workspaces in Visual Studio Code. Do not use this category for updating existing code or generating sample code snippets","examples":["Scaffold a Node server.","Create a sample project which uses the fileSystemProvider API.","react application"]}]},{"name":"newNotebook","description":"Create a new Jupyter Notebook","sampleRequest":"How do I create a notebook to load data from a csv file?","disambiguation":[{"category":"create_jupyter_notebook","description":"The user wants to create a new Jupyter notebook in Visual Studio Code.","examples":["Create a notebook to analyze this CSV file."]}]},{"name":"semanticSearch","description":"Find relevant code to your query","sampleRequest":"Where is the toolbar code?","when":"config.github.copilot.semanticSearch.enabled"},{"name":"setupTests","description":"Set up tests in your project (Experimental)","sampleRequest":"add playwright tests to my project","when":"config.github.copilot.chat.setupTests.enabled","disambiguation":[{"category":"set_up_tests","description":"The user wants to configure project test setup, framework, or test runner. The user does not want to fix their existing tests.","examples":["Set up tests for this project."]}]}]},{"id":"github.copilot.notebook","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["notebook"],"when":"!config.inlineChat.notebookAgent","commands":[{"name":"fix","description":"Propose a fix for the problems in the selected code"},{"name":"explain","description":"Explain how the code in your active editor works"}]},{"id":"github.copilot.notebookEditorAgent","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["notebook"],"when":"config.inlineChat.notebookAgent","commands":[{"name":"fix","description":"Propose a fix for the problems in the selected code"},{"name":"explain","description":"Explain how the code in your active editor works"}]},{"id":"github.copilot.vscode","name":"vscode","fullName":"VS Code","description":"Ask questions about VS Code","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"What is the command to open the integrated terminal?","locations":["panel"],"disambiguation":[{"category":"vscode_configuration_questions","description":"The user wants to learn about, use, or configure the Visual Studio Code. Use this category if the users question is specifically about commands, settings, keybindings, extensions and other features available in Visual Studio Code. Do not use this category to answer questions about generating code or creating new projects including Visual Studio Code extensions.","examples":["Switch to light mode.","Keyboard shortcut to toggle terminal visibility.","Settings to enable minimap.","Whats new in the latest release?"]},{"category":"configure_python_environment","description":"The user wants to set up their Python environment.","examples":["Create a virtual environment for my project."]}],"commands":[{"name":"search","description":"Generate query parameters for workspace search","sampleRequest":"Search for 'foo' in all files under my 'src' directory"}]},{"id":"github.copilot.terminal","name":"terminal","fullName":"Terminal","description":"Ask about commands","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"How do I view all files within a directory including sub-directories?","isDefault":true,"locations":["terminal"],"commands":[{"name":"explain","description":"Explain something in the terminal","sampleRequest":"Explain the last command"}]},{"id":"github.copilot.terminalPanel","name":"terminal","fullName":"Terminal","description":"Ask how to do something in the terminal","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"How do I view all files within a directory including sub-directories?","locations":["panel"],"commands":[{"name":"explain","description":"Explain something in the terminal","sampleRequest":"Explain the last command","disambiguation":[{"category":"terminal_state_questions","description":"The user wants to learn about specific state such as the selection, command, or failed command in the integrated terminal in Visual Studio Code.","examples":["Why did the latest terminal command fail?"]}]}]}],"languageModelChatProviders":[{"vendor":"copilot","displayName":"Copilot"},{"vendor":"copilotcli","displayName":"Copilot CLI","when":"false"},{"vendor":"anthropic","displayName":"Anthropic","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for Anthropic","title":"API Key"}},"required":["apiKey"]}},{"vendor":"xai","displayName":"xAI","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for xAI","title":"API Key"}},"required":["apiKey"]}},{"vendor":"gemini","displayName":"Google","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for Google Gemini","title":"API Key"}},"required":["apiKey"]}},{"vendor":"openrouter","displayName":"OpenRouter","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for OpenRouter","title":"API Key"}},"required":["apiKey"]}},{"vendor":"openai","displayName":"OpenAI","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for OpenAI","title":"API Key"},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this provider group. When `true`, OpenAI Responses requests from this group do not send `previous_response_id`."}},"required":["apiKey"]}},{"vendor":"ollama","displayName":"Ollama (Deprecated)","deprecation":{"link":"vscode:extension/Ollama.ollama"},"configuration":{"type":"object","properties":{"url":{"type":"string","description":"The endpoint URL for the Ollama server","default":"http://localhost:11434","title":"URL"}},"required":["url"]}},{"vendor":"customoai","when":"productQualityType != 'stable'","displayName":"OpenAI Compatible (Deprecated)","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for the models","title":"API Key","markdownDeprecationMessage":"**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API — selectable per model via the `apiType` property."},"models":{"type":"array","markdownDeprecationMessage":"**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API — selectable per model via the `apiType` property.","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the custom OpenAI model"},"url":{"type":"string","markdownDescription":"URL endpoint for the custom OpenAI-compatible model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths including `/responses` or `/chat/completions` are respected."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"editTools":{"type":"array","description":"List of edit tools supported by the model. If this is not configured, the editor will try multiple edit tools and pick the best one.\n\n- 'find-replace': Find and replace text in a document.\n- 'multi-find-replace': Find and replace text in a document.\n- 'apply-patch': A file-oriented diff format used by some OpenAI models\n- 'code-rewrite': A general but slower editing tool that allows the model to rewrite and code snippet and provide only the replacement to the editor.","items":{"type":"string","enum":["find-replace","multi-find-replace","apply-patch","code-rewrite"]}},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}},{"vendor":"customendpoint","displayName":"Custom Endpoint","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"minLength":1,"description":"API key for the models","title":"API Key"},"apiType":{"type":"string","enum":["chat-completions","responses","messages"],"enumItemLabels":["Chat Completions","Responses","Messages"],"enumDescriptions":["Chat Completions API","Responses API","Messages API"],"default":"chat-completions","title":"API Type","markdownDescription":"Default request/response format for models in this group. Individual models can override this with their own `apiType` property; when both are unset the type is inferred from the URL path."},"models":{"type":"array","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the model"},"url":{"type":"string","pattern":"^https?://.+","patternErrorMessage":"URL must start with http:// or https://","markdownDescription":"URL endpoint for the model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths are respected: `/chat/completions`, `/responses`, and `/v1/messages` (Anthropic-compatible). Use the `apiType` property to override the request/response format independently of the URL."},"apiType":{"type":"string","enum":["chat-completions","responses","messages"],"enumItemLabels":["Chat Completions","Responses","Messages"],"enumDescriptions":["Chat Completions API","Responses API","Messages API"],"title":"API Type","markdownDescription":"Request/response format used to talk to this endpoint:\n- `chat-completions`: Chat Completions API (default).\n- `responses`: Responses API.\n- `messages`: Messages API.\n\nWhen omitted, falls back to the group-level `apiType`, then to the URL path."},"adaptiveThinking":{"type":"boolean","default":false,"markdownDescription":"Whether the Messages API model supports adaptive thinking. When enabled, requests use `thinking.type: \"adaptive\"`."},"minThinkingBudget":{"type":"integer","minimum":1,"markdownDescription":"Minimum thinking-token budget supported by a non-adaptive Messages API model. `maxThinkingBudget` must also be set."},"maxThinkingBudget":{"type":"integer","minimum":1,"markdownDescription":"Maximum thinking-token budget supported by a non-adaptive Messages API model. `minThinkingBudget` must also be set."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"editTools":{"type":"array","description":"List of edit tools supported by the model. If this is not configured, the editor will try multiple edit tools and pick the best one.\n\n- 'find-replace': Find and replace text in a document.\n- 'multi-find-replace': Find and replace text in a document.\n- 'apply-patch': A file-oriented diff format used by some OpenAI models\n- 'code-rewrite': A general but slower editing tool that allows the model to rewrite and code snippet and provide only the replacement to the editor.","items":{"type":"string","enum":["find-replace","multi-find-replace","apply-patch","code-rewrite"]}},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}},"modelOptions":{"type":"object","markdownDescription":"Sampling parameters to send with requests to this model. These override Copilot's defaults but are overridden by explicit per-request values. Set a property to `null` to omit it and use the model server's default.","properties":{"temperature":{"type":["number","null"],"minimum":0,"markdownDescription":"Sampling temperature. Set to `null` to omit the parameter."},"top_p":{"type":["number","null"],"minimum":0,"maximum":1,"markdownDescription":"Nucleus sampling probability. Set to `null` to omit the parameter."}},"additionalProperties":false}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}},{"vendor":"azure","displayName":"Azure","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for the models. If not set then Entra ID (Azure AD) authentication with your Microsoft account credentials will be used.","title":"API Key"},"models":{"type":"array","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the custom OpenAI model"},"url":{"type":"string","markdownDescription":"URL endpoint for the custom OpenAI-compatible model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths including `/responses` or `/chat/completions` are respected."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}}],"interactiveSession":[{"label":"GitHub Copilot","id":"copilot","icon":"","when":"!github.copilot.interactiveSession.disabled"}],"mcpServerDefinitionProviders":[{"id":"github","label":"GitHub"}],"viewsWelcome":[{"view":"debug","when":"github.copilot-chat.activated","contents":"Debug using a [terminal command](command:github.copilot.chat.startCopilotDebugCommand) or in an [interactive chat](command:workbench.action.chat.open?%7B%22query%22%3A%22%40vscode%20%2FstartDebugging%20%22%2C%22isPartialQuery%22%3Atrue%7D)."}],"chatViewsWelcome":[{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your Copilot subscription has expired.\n\n[Review Copilot Settings](https://github.com/settings/copilot?editor=vscode)","when":"github.copilot.interactiveSession.individual.expired && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Contact your GitHub organization administrator to enable Copilot.","when":"github.copilot.interactiveSession.enterprise.disabled && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub Copilot servers could not be reached. Please check your internet connection and try again.\n\n[Retry Connection](command:github.copilot.refreshToken)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.offline && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your GitHub token is invalid. Please sign in again to refresh your authentication.\n\n[Sign In](command:workbench.action.chat.triggerSetupForceSignIn)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.invalidToken && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your account has exceeded GitHub's API rate limit. Please wait a few minutes and try again.\n\n[Retry](command:github.copilot.refreshToken)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.rateLimited && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub login failed. Please sign in to your GitHub account to use Copilot.\n\n[Sign In](command:workbench.action.chat.triggerSetupForceSignIn)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.gitHubLoginFailed && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"There seems to be a problem with your account. Please contact GitHub support.\n\n[Contact Support](https://support.github.com/?editor=vscode)","when":"github.copilot.interactiveSession.contactSupport && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub Copilot Chat is currently disabled for your account by an organization administrator. Contact an organization administrator to enable chat.\n\n[Learn More](https://docs.github.com/en/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/managing-policies-for-copilot-in-your-organization)","when":"github.copilot.interactiveSession.chatDisabled && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"The Pre-Release version of the GitHub Copilot Chat extension is not currently supported in the stable version of VS Code. Please switch to the release version for GitHub Copilot Chat or try VS Code Insiders.\n\n[Switch to Release Version and Reload](command:runCommands?%7B%22commands%22%3A%5B%7B%22command%22%3A%22workbench.extensions.action.switchToRelease%22%2C%22args%22%3A%5B%22GitHub.copilot-chat%22%5D%7D%2C%22workbench.action.reloadWindow%22%5D%7D)\n\n[Switch to VS Code Insiders](https://aka.ms/vscode-insiders)","when":"github.copilot.interactiveSession.switchToReleaseChannel"}],"commands":[{"command":"github.copilot.chat.triggerPermissiveSignIn","title":"Login to GitHub with Full Permissions"},{"command":"github.copilot.cli.sessions.delete","title":"Delete...","icon":"$(close)","category":"Copilot CLI"},{"command":"agents.github.copilot.cli.deleteSessions","title":"Delete...","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.resumeInTerminal","title":"Resume in Terminal","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.rename","title":"Rename...","icon":"$(edit)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.setTitle","title":"Set Title","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openRepository","title":"Open Repository","icon":"$(folder-opened)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","title":"Open Session in New Window","icon":"$(folder-opened)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","title":"Open Session in Terminal","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","title":"Copy Session Branch Name","icon":"$(copy)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.commitToWorktree","title":"Commit File to Worktree","icon":"$(git-commit)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.commitToRepository","title":"Commit File to Repository","icon":"$(git-commit)","category":"Copilot CLI"},{"command":"github.copilot.cli.newSession","title":"New Copilot CLI Session","icon":"$(terminal)","category":"Chat"},{"command":"github.copilot.cli.newSessionToSide","title":"New Copilot CLI Session to the Side","icon":"$(terminal)","category":"Chat"},{"command":"github.copilot.cli.openInCopilotCLI","title":"Open in GitHub Copilot CLI","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.chat.compact","title":"Compact Conversation"},{"command":"github.copilot.chat.explain","title":"Explain","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.explain.palette","title":"Explain","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.chat.review","title":"Review","enablement":"config.github.copilot.chat.reviewSelection.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.apply","title":"Apply","icon":"$(sparkle)","enablement":"commentThread =~ /hasSuggestion/","category":"Chat"},{"command":"github.copilot.chat.review.applyAndNext","title":"Apply and Go to Next","icon":"$(sparkle)","enablement":"commentThread =~ /hasSuggestion/","category":"Chat"},{"command":"github.copilot.chat.review.discard","title":"Discard","icon":"$(close)","category":"Chat"},{"command":"github.copilot.chat.review.discardAndNext","title":"Discard and Go to Next","icon":"$(close)","category":"Chat"},{"command":"github.copilot.chat.review.discardAll","title":"Discard All","icon":"$(close-all)","category":"Chat"},{"command":"github.copilot.chat.review.stagedChanges","title":"Code Review - Staged Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.unstagedChanges","title":"Code Review - Unstaged Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.changes","title":"Code Review - Uncommitted Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.stagedFileChange","title":"Review Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.unstagedFileChange","title":"Review Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.codeReview.run","title":"Run Code Review","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.previous","title":"Previous Suggestion","icon":"$(arrow-up)","category":"Chat"},{"command":"github.copilot.chat.review.next","title":"Next Suggestion","icon":"$(arrow-down)","category":"Chat"},{"command":"github.copilot.chat.review.continueInInlineChat","title":"Discard and Copy to Inline Chat","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.chat.review.continueInChat","title":"View in Chat Panel","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.chat.review.markHelpful","title":"Helpful","icon":"$(thumbsup)","enablement":"!(commentThread =~ /markedAsHelpful/)","category":"Chat"},{"command":"github.copilot.chat.openUserPreferences","title":"Open User Preferences","category":"Chat","enablement":"config.github.copilot.chat.enableUserPreferences"},{"command":"github.copilot.chat.review.markUnhelpful","title":"Unhelpful","icon":"$(thumbsdown)","enablement":"!(commentThread =~ /markedAsUnhelpful/)","category":"Chat"},{"command":"github.copilot.chat.generate","title":"Generate This","icon":"$(sparkle)","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.chat.fix","title":"Fix","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.interactiveSession.feedback","title":"Send Chat Feedback","enablement":"github.copilot-chat.activated && !github.copilot.interactiveSession.disabled","icon":"$(feedback)","category":"Chat"},{"command":"github.copilot.debug.workbenchState","title":"Log Workbench State","category":"Developer"},{"command":"github.copilot.debug.togglePowerSaveBlocker","title":"Toggle Power Save Blocker","category":"Developer"},{"command":"github.copilot.debug.showChatLogView","title":"Show Chat Debug View","category":"Developer"},{"command":"github.copilot.debug.showOutputChannel","title":"Show Output Channel","category":"Developer"},{"command":"github.copilot.debug.showContextInspectorView","title":"Inspect Language Context","icon":"$(inspect)","category":"Developer"},{"command":"github.copilot.debug.validateNesRename","title":"Validate NES Rename","category":"Developer"},{"command":"github.copilot.debug.resetVirtualToolGroups","title":"Reset Virtual Tool Groups","icon":"$(inspect)","category":"Developer"},{"command":"github.copilot.debug.extensionState","title":"Log Extension State","category":"Developer"},{"command":"github.copilot.chat.tools.memory.showMemories","title":"Show Memory Files","category":"Chat"},{"command":"github.copilot.chat.tools.memory.clearMemories","title":"Clear All Memory Files","category":"Chat"},{"command":"github.copilot.terminal.explainTerminalLastCommand","title":"Explain Last Terminal Command","category":"Chat"},{"command":"github.copilot.git.generateCommitMessage","title":"Generate Commit Message","icon":"$(sparkle)","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.git.resolveMergeConflicts","title":"Resolve Conflicts with AI","icon":"$(chat-sparkle)","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.devcontainer.generateDevContainerConfig","title":"Generate Dev Container Configuration","category":"Chat"},{"command":"github.copilot.tests.fixTestFailure","icon":"$(sparkle)","title":"Fix Test Failure","category":"Chat"},{"command":"github.copilot.tests.fixTestFailure.fromInline","icon":"$(sparkle)","title":"Fix Test Failure"},{"command":"github.copilot.chat.attachFile","title":"Add File to Chat","category":"Chat"},{"command":"github.copilot.chat.attachSelection","title":"Add Selection to Chat","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.debug.collectDiagnostics","title":"Chat Diagnostics","category":"Developer"},{"command":"github.copilot.debug.inlineEdit.clearCache","title":"Clear Inline Suggestion Cache","category":"Developer"},{"command":"github.copilot.debug.inlineEdit.reportNotebookNESIssue","title":"Report Notebook Inline Suggestion Issue","enablement":"config.github.copilot.chat.advanced.notebook.alternativeNESFormat.enabled || github.copilot.chat.enableEnhancedNotebookNES","category":"Developer"},{"command":"github.copilot.debug.generateSTest","title":"Generate STest From Last Chat Request","enablement":"github.copilot.debugReportFeedback","category":"Developer"},{"command":"github.copilot.open.walkthrough","title":"Open Walkthrough","category":"Chat"},{"command":"github.copilot.debug.generateInlineEditTests","title":"Generate Inline Edit Tests","category":"Chat","enablement":"resourceScheme == 'ccreq'"},{"command":"github.copilot.buildRemoteWorkspaceIndex","title":"Build Codebase Semantic Index","category":"Chat","enablement":"github.copilot-chat.activated"},{"command":"github.copilot.deleteExternalIngestWorkspaceIndex","title":"Delete External Ingest Codebase Index","category":"Developer","enablement":"github.copilot-chat.activated && !github.copilot.blackbirdExternalIndexingDisabled"},{"command":"github.copilot.report","title":"Report Issue","category":"Chat"},{"command":"github.copilot.chat.rerunWithCopilotDebug","title":"Debug Last Terminal Command","category":"Chat"},{"command":"github.copilot.chat.startCopilotDebugCommand","title":"Start Copilot Debug"},{"command":"github.copilot.chat.clearTemporalContext","title":"Clear Temporal Context","category":"Developer"},{"command":"github.copilot.search.markHelpful","title":"Helpful","icon":"$(thumbsup)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.search.markUnhelpful","title":"Unhelpful","icon":"$(thumbsdown)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.search.feedback","title":"Feedback","icon":"$(feedback)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.chat.debug.showElements","title":"Show Rendered Elements"},{"command":"github.copilot.chat.debug.hideElements","title":"Hide Rendered Elements"},{"command":"github.copilot.chat.debug.showTools","title":"Show Tools"},{"command":"github.copilot.chat.debug.hideTools","title":"Hide Tools"},{"command":"github.copilot.chat.debug.showNesRequests","title":"Show NES Requests"},{"command":"github.copilot.chat.debug.hideNesRequests","title":"Hide NES Requests"},{"command":"github.copilot.chat.debug.showGhostRequests","title":"Show Ghost Requests"},{"command":"github.copilot.chat.debug.hideGhostRequests","title":"Hide Ghost Requests"},{"command":"github.copilot.chat.debug.showRawRequestBody","title":"Show Raw Request Body"},{"command":"github.copilot.chat.debug.exportLogItem","title":"Export as...","icon":"$(export)"},{"command":"github.copilot.chat.debug.exportPromptArchive","title":"Export All as Archive...","icon":"$(archive)"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","title":"Export All as JSON...","icon":"$(export)"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","title":"Export All Prompt Logs as JSON...","icon":"$(export)"},{"command":"github.copilot.chat.otel.exportAgentTracesDB","title":"Export Agent Traces DB","category":"Chat","enablement":"config.github.copilot.chat.otel.dbSpanExporter.enabled"},{"command":"github.copilot.chat.otel.statusActive","title":"OpenTelemetry","category":"Chat","icon":"$(broadcast)"},{"command":"github.copilot.sessionSync.deleteSessions","title":"Delete Session Sync Data","category":"Chat","enablement":"github.copilot.sessionSearch.enabled && config.chat.sessionSync.enabled"},{"command":"github.copilot.chronicle.reindex","title":"Reindex Sessions","category":"Chat","enablement":"github.copilot.sessionSearch.enabled"},{"command":"github.copilot.nes.captureExpected.start","title":"Record Expected Edit (NES)","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.confirm","title":"Confirm and Save Expected Edit Capture","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.abort","title":"Cancel Expected Edit Capture","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.submit","title":"Submit NES Captures","category":"Copilot"},{"command":"github.copilot.debug.collectWorkspaceIndexDiagnostics","title":"Collect Workspace Index Diagnostics","category":"Developer"},{"command":"github.copilot.chat.mcp.setup.check","title":"MCP Check: is supported"},{"command":"github.copilot.chat.mcp.setup.validatePackage","title":"MCP Check: validate package"},{"command":"github.copilot.chat.mcp.setup.flow","title":"MCP Check: do prompts"},{"command":"github.copilot.chat.generateAltText","title":"Generate/Refine Alt Text"},{"command":"github.copilot.chat.notebook.enableFollowCellExecution","title":"Enable Follow Cell Execution from Chat","shortTitle":"Follow","icon":"$(pinned)"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","title":"Disable Follow Cell Execution from Chat","shortTitle":"Unfollow","icon":"$(pinned-dirty)"},{"command":"github.copilot.cloud.resetWorkspaceConfirmations","title":"Reset Cloud Agent Workspace Confirmations"},{"command":"github.copilot.cloud.sessions.openInBrowser","title":"Open in Browser","icon":"$(link-external)"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","title":"Close Pull Request"},{"command":"github.copilot.cloud.sessions.installPRExtension","title":"Install GitHub Pull Request Extension","icon":"$(extensions)"},{"command":"github.copilot.chat.openSuggestionsPanel","title":"Open Completions Panel","enablement":"github.copilot.extensionUnification.activated && !isWeb","category":"GitHub Copilot"},{"command":"github.copilot.chat.toggleStatusMenu","title":"Open Status Menu","enablement":"github.copilot.extensionUnification.activated","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.disable","title":"Disable Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated && config.editor.inlineSuggest.enabled && github.copilot.completions.enabled","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.enable","title":"Enable Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated && !(config.editor.inlineSuggest.enabled && github.copilot.completions.enabled)","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.toggle","title":"Toggle (Enable/Disable) Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated","category":"GitHub Copilot"},{"command":"github.copilot.chat.openModelPicker","title":"Change Completions Model","category":"GitHub Copilot","enablement":"github.copilot.extensionUnification.activated && !isWeb && github.copilot.completions.hasMultipleModels"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","title":"Apply Changes to Workspace","enablement":"!chatSessionRequestInProgress","category":"GitHub Copilot"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","title":"Apply","enablement":"!chatSessionRequestInProgress","icon":"$(git-stash-pop)","category":"GitHub Copilot"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","title":"Merge Changes","enablement":"!chatSessionRequestInProgress","icon":"$(git-merge)","category":"GitHub Copilot"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","title":"Merge Changes & Sync","enablement":"!chatSessionRequestInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.commit","title":"Commit Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-commit)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.commitAndSync","title":"Commit and Sync Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.sync","title":"Sync Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","title":"Create PR","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-pull-request-create)","category":"GitHub Copilot"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","title":"Create Draft PR","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-pull-request-draft)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.discardChanges","title":"Discard Changes","enablement":"!chatSessionRequestInProgress","icon":"$(discard)","category":"GitHub Copilot"},{"command":"github.copilot.chat.copilotCLI.addFileReference","title":"Add File to Copilot CLI","enablement":"github.copilot.chat.copilotCLI.hasSession","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.addSelection","title":"Add Selection to Copilot CLI","enablement":"github.copilot.chat.copilotCLI.hasSession","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.acceptDiff","title":"Accept Changes","enablement":"github.copilot.chat.copilotCLI.hasActiveDiff","icon":"$(check)","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.rejectDiff","title":"Reject Changes","enablement":"github.copilot.chat.copilotCLI.hasActiveDiff","icon":"$(close)","category":"Copilot CLI"},{"command":"github.copilot.chat.checkoutPullRequestReroute","title":"Checkout","icon":"$(git-pull-request)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","title":"Create Pull Request","icon":"$(git-pull-request-create)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","title":"Open Pull Request","icon":"$(git-pull-request)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.openRepository","title":"Browse repositories...","icon":"$(repo)","category":"GitHub Copilot"},{"command":"github.copilot.chat.cloudSessions.clearCaches","title":"Clear Cloud Agent Caches","category":"GitHub Copilot"},{"command":"github.copilot.sessions.refreshChanges","title":"Refresh","icon":"$(refresh)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.initializeRepository","title":"Initialize Repository","enablement":"!chatSessionRequestInProgress","icon":"$(repo)","category":"GitHub Copilot"}],"configuration":[{"title":"GitHub Copilot Chat","id":"stable","properties":{"github.copilot.chat.backgroundAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Copilot CLI. When disabled, the Copilot CLI will not be available in 'Continue In' context menus."},"github.copilot.chat.cloudAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Cloud Agent. When disabled, the Cloud Agent will not be available in 'Continue In' context menus."},"github.copilot.chat.localIndex.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable local session tracking. When enabled, session data is tracked locally for /chronicle commands.","tags":["onExp"]},"github.copilot.chat.codeGeneration.useInstructionFiles":{"type":"boolean","default":true,"markdownDescription":"Controls whether code instructions from `.github/copilot-instructions.md` are added to Copilot requests.\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance. [Learn more](https://aka.ms/github-copilot-custom-instructions) about customizing Copilot."},"github.copilot.editor.enableCodeActions":{"type":"boolean","default":true,"description":"Controls if Copilot commands are shown as Code Actions when available"},"github.copilot.renameSuggestions.triggerAutomatically":{"type":"boolean","default":true,"description":"Controls whether Copilot generates suggestions for renaming"},"github.copilot.chat.localeOverride":{"type":"string","enum":["auto","en","fr","it","de","es","ru","zh-CN","zh-TW","ja","ko","cs","pt-br","tr","pl"],"enumDescriptions":["Use VS Code's configured display language","English","français","italiano","Deutsch","español","русский","中文(简体)","中文(繁體)","日本語","한국어","čeština","português","Türkçe","polski"],"default":"auto","markdownDescription":"Specify a locale that Copilot should respond in, e.g. `en` or `fr`. By default, Copilot will respond using VS Code's configured display language locale."},"github.copilot.chat.terminalChatLocation":{"type":"string","default":"chatView","markdownDescription":"Controls where chat queries from the terminal should be opened.","markdownEnumDescriptions":["Open the chat view.","Open quick chat.","Open terminal inline chat"],"enum":["chatView","quickChat","terminal"]},"github.copilot.chat.scopeSelection":{"type":"boolean","default":false,"markdownDescription":"Whether to prompt the user to select a specific symbol scope if the user uses `/explain` and the active editor has no selection."},"github.copilot.chat.useProjectTemplates":{"type":"boolean","default":true,"markdownDescription":"Use relevant GitHub projects as starter projects when using `/new`"},"github.copilot.nextEditSuggestions.enabled":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to enable next edit suggestions (NES).\n\nNES can propose a next edit based on your recent changes. [Learn more](https://aka.ms/vscode-nes) about next edit suggestions.","scope":"language-overridable"},"github.copilot.completions.chat.enabled":{"type":"boolean","default":false,"markdownDescription":"Whether to enable inline completions in chat."},"github.copilot.nextEditSuggestions.extendedRange":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to allow next edit suggestions (NES) to modify code farther away from the cursor position."},"github.copilot.nextEditSuggestions.fixes":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to offer fixes for diagnostics via next edit suggestions (NES).","scope":"language-overridable"},"github.copilot.nextEditSuggestions.allowWhitespaceOnlyChanges":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to allow whitespace-only changes be proposed by next edit suggestions (NES).","scope":"language-overridable"},"github.copilot.chat.agent.autoFix":{"type":"boolean","default":false,"description":"Automatically fix diagnostics for edited files.","tags":["onExp"]},"github.copilot.chat.rateLimitAutoSwitchToAuto":{"type":"boolean","default":false,"markdownDescription":"Automatically switch to the Auto model and retry when you hit a per-model rate limit.","tags":["onExp"]},"github.copilot.chat.customInstructionsInSystemMessage":{"type":"boolean","default":true,"description":"When enabled, custom instructions and mode instructions will be appended to the system message instead of a user message."},"github.copilot.chat.organizationCustomAgents.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will load custom agents defined by your GitHub Organization."},"github.copilot.chat.organizationInstructions.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will load custom instructions defined by your GitHub Organization."},"github.copilot.chat.additionalReadAccessPaths":{"type":"array","default":[],"items":{"type":"string"},"markdownDescription":"A list of absolute folder paths outside of the workspace that Copilot Chat is allowed to read from without requiring confirmation. Edit operations remain restricted to the workspace.","scope":"window"},"github.copilot.chat.agent.currentEditorContext.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will include the name of the current active editor in the context for agent mode."},"github.copilot.enable":{"type":"object","scope":"window","default":{"*":true,"plaintext":false,"markdown":false,"scminput":false},"additionalProperties":{"type":"boolean"},"markdownDescription":"Enable or disable auto triggering of Copilot completions for specified [languages](https://code.visualstudio.com/docs/languages/identifiers). You can still trigger suggestions manually using `Alt + \\`","agentsWindow":{"default":{"markdown":true,"plaintext":true}}},"github.copilot.selectedCompletionModel":{"type":"string","default":"","markdownDescription":"The currently selected completion model ID. To select from a list of available models, use the __\"Change Completions Model\"__ command or open the model picker (from the Copilot menu in the VS Code title bar, select __\"Configure Code Completions\"__ then __\"Change Completions Model\"__. The value must be a valid model ID. An empty value indicates that the default model will be used."},"github.copilot.chat.reviewAgent.enabled":{"type":"boolean","default":true,"description":"Enables the code review agent."},"github.copilot.chat.reviewSelection.enabled":{"type":"boolean","default":true,"description":"Enables code review on current selection."},"github.copilot.chat.reviewSelection.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that provide code review for the current selection. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-review-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-review-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that provide code review for the current selection. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use underscore for field names."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Use underscore for field names."},{"text":"Resolve all TODO tasks."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that provide code review for the current selection.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's effectiveness.","examples":[[{"file":".copilot-review-instructions.md"},{"text":"Resolve all TODO tasks."}]]},"github.copilot.chat.anthropic.useMessagesApi":{"type":"boolean","default":true,"markdownDescription":"Use the Messages API instead of the Chat Completions API when supported.","tags":["onExp"]},"github.copilot.chat.imageUpload.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the use of image upload URLs in chat requests instead of raw base64 strings."}}},{"id":"preview","properties":{"github.copilot.chat.copilotDebugCommand.enabled":{"type":"boolean","default":true,"tags":["preview"],"description":"Whether the `copilot-debug` command is enabled in the terminal."},"github.copilot.chat.codesearch.enabled":{"type":"boolean","default":false,"tags":["preview"],"markdownDescription":"Whether to enable agentic codesearch when using `#codebase`."},"github.copilot.chat.tools.viewImage.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the view image tool, which allows the agent to view image files such as png, jpg, jpeg, gif, and webp.","tags":["preview","onExp"]}}},{"id":"experimental","properties":{"github.copilot.chat.githubMcpServer.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable built-in support for the GitHub MCP Server.","tags":["experimental"],"agentsWindow":{"default":true}},"github.copilot.chat.githubMcpServer.toolsets":{"type":"array","default":["default"],"markdownDescription":"Specify toolsets to use from the GitHub MCP Server. [Learn more](https://aka.ms/vscode-gh-mcp-toolsets).","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.githubMcpServer.readonly":{"type":"boolean","default":false,"markdownDescription":"Enable read-only mode for the GitHub MCP Server. When enabled, only read tools are available. [Learn more](https://aka.ms/vscode-gh-mcp-readonly).","tags":["experimental"]},"github.copilot.chat.githubMcpServer.lockdown":{"type":"boolean","default":false,"markdownDescription":"Enable lockdown mode for the GitHub MCP Server. When enabled, hides public issue details created by users without push access. [Learn more](https://aka.ms/vscode-gh-mcp-lockdown).","tags":["experimental"]},"github.copilot.chat.githubMcpServer.channel":{"type":"string","default":"stable","enum":["stable","insiders"],"enumDescriptions":["Use the stable version of the GitHub MCP Server.","Connect to the Insiders version of the GitHub MCP Server with experimental features."],"markdownDescription":"Select the channel for the GitHub MCP Server. When set to Insiders, enables access to experimental features that may change or be removed based on community feedback. [Learn more](https://aka.ms/vscode-gh-mcp-channel).","tags":["experimental"]},"github.copilot.chat.switchAgent.enabled":{"type":"boolean","default":false,"markdownDescription":"Allow agent to switch to the Plan agent for research, exploration, and planning tasks.","tags":["experimental","onExp"]},"github.copilot.chat.codeGeneration.instructions":{"markdownDeprecationMessage":"Use instructions files instead. See https://aka.ms/vscode-ghcp-custom-instructions for more information.","type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that generate code. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-codeGeneration-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-codeGeneration-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that generate code. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use underscore for field names."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Use underscore for field names."},{"text":"Always add a comment: 'Generated by Copilot'."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate code.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-codeGeneration-instructions.md"},{"text":"Always add a comment: 'Generated by Copilot'."}]],"tags":["experimental"]},"github.copilot.chat.testGeneration.instructions":{"markdownDeprecationMessage":"Use instructions files instead. See https://aka.ms/vscode-ghcp-custom-instructions for more information.","type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that generate tests. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-test-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-test-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that generate tests. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use suite and test instead of describe and it."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Always try uniting related tests in a suite."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate tests.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-test-instructions.md"},{"text":"Always try uniting related tests in a suite."}]],"tags":["experimental"]},"github.copilot.chat.commitMessageGeneration.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file with instructions that will be added to Copilot requests that generate commit messages.","properties":{"file":{"type":"string","examples":[".copilot-commit-message-instructions.md"]}},"examples":[{"file":".copilot-commit-message-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"Text instructions that will be added to Copilot requests that generate commit messages.","properties":{"text":{"type":"string","examples":["Use conventional commit message format."]}},"required":["text"],"examples":[{"text":"Use conventional commit message format."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate commit messages.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use conventional commit message format.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-commit-message-instructions.md"},{"text":"Use conventional commit message format."}]],"tags":["experimental"]},"github.copilot.chat.pullRequestDescriptionGeneration.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file with instructions that will be added to Copilot requests that generate pull request titles and descriptions.","properties":{"file":{"type":"string","examples":[".copilot-pull-request-description-instructions.md"]}},"examples":[{"file":".copilot-pull-request-description-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"Text instructions that will be added to Copilot requests that generate pull request titles and descriptions.","properties":{"text":{"type":"string","examples":["Include every commit message in the pull request description."]}},"required":["text"],"examples":[{"text":"Include every commit message in the pull request description."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate pull request titles and descriptions.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Always include a list of key changes.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-pull-request-description-instructions.md"},{"text":"Use conventional commit message format."}]],"tags":["experimental"]},"github.copilot.chat.setupTests.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the `/setupTests` intent and prompting in `/tests` generation.","tags":["experimental"]},"github.copilot.chat.languageContext.typescript.enabled":{"type":"boolean","default":true,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for inline suggestions","agentsWindow":{"default":true}},"github.copilot.chat.languageContext.typescript7.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental"],"markdownDescription":"Enables the TypeScript language context provider for inline suggestions when using TS7 language services","agentsWindow":{"default":false}},"github.copilot.chat.languageContext.typescript.items":{"type":"string","enum":["minimal","double","fillHalf","fill"],"default":"double","scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Controls which kind of items are included in the TypeScript language context provider."},"github.copilot.chat.languageContext.typescript.includeDocumentation":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Controls whether to include documentation comments in the generated code snippets."},"github.copilot.chat.languageContext.typescript.cacheTimeout":{"type":"number","default":500,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"The cache population timeout for the TypeScript language context provider in milliseconds. The default is 500 milliseconds."},"github.copilot.chat.languageContext.fix.typescript.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for /fix commands"},"github.copilot.chat.languageContext.inline.typescript.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for inline chats (both generate and edit)"},"github.copilot.chat.newWorkspaceCreation.enabled":{"type":"boolean","default":true,"tags":["experimental"],"description":"Whether to enable new agentic workspace creation."},"github.copilot.chat.newWorkspace.useContext7":{"type":"boolean","default":false,"tags":["experimental"],"markdownDescription":"Whether to use the [Context7](command:github.copilot.mcp.viewContext7) tools to scaffold project for new workspace creation."},"github.copilot.chat.notebook.followCellExecution.enabled":{"type":"boolean","default":false,"tags":["experimental"],"description":"Controls whether the currently executing cell is revealed into the viewport upon execution from Copilot."},"github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Controls whether to use an enhanced approach for generating next edit suggestions in notebook cells."},"github.copilot.chat.summarizeAgentConversationHistory.enabled":{"type":"boolean","default":true,"tags":["experimental"],"description":"Whether to auto-compact agent conversation history once the context window is filled."},"github.copilot.chat.virtualTools.threshold":{"type":"number","minimum":0,"maximum":128,"default":128,"tags":["experimental"],"markdownDescription":"This setting defines the tool count over which virtual tools should be used. Virtual tools group similar sets of tools together and they allow the model to activate them on-demand. Certain tool groups will optimistically be pre-activated. We are actively developing this feature and you experience degraded tool calling once the threshold is hit.\n\nMay be set to `0` to disable virtual tools."},"github.copilot.chat.alternateGptPrompt.enabled":{"type":"boolean","default":false,"tags":["experimental"],"description":"Enables an experimental alternate prompt for GPT models instead of the default prompt."},"github.copilot.chat.alternateGeminiModelFPrompt.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Enables an experimental alternate prompt for Gemini Model F instead of the default prompt."},"github.copilot.chat.gemini35FlashReducedToolUsePrompt.enabled":{"type":"boolean","default":true,"tags":["experimental","onExp"],"description":"Enables an experimental prompt for Gemini 3.5 Flash that instructs the model to minimize tool calls to reduce token usage."},"github.copilot.chat.geminiFlashPromptAdditions.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Enables experimental additional prompt guidance for Gemini Flash 3.6 and 3.7 models."},"github.copilot.chat.anthropic.contextEditing.mode":{"type":"string","default":"off","markdownDescription":"Select the context editing mode for Anthropic models. Automatically manages conversation context as it grows, helping optimize costs and stay within context window limits.\n\n- `off`: Context editing is disabled.\n- `clear-thinking`: Clears thinking blocks while preserving tool uses.\n- `clear-tooluse`: Clears tool uses while preserving thinking blocks.\n- `clear-both`: Clears both thinking blocks and tool uses.\n\n**Note**: This is an experimental feature. Context editing may cause additional cache rewrites. Enable with caution.","tags":["experimental","onExp"],"enum":["off","clear-thinking","clear-tooluse","clear-both"]},"github.copilot.chat.responsesApiContextManagement.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables context management for the Responses API. Requires `#github.copilot.chat.useResponsesApi#`.","tags":["experimental","onExp"]},"github.copilot.chat.responsesApi.promptCacheKey.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables prompt cache key being set for the Responses API.","tags":["experimental","onExp"]},"github.copilot.chat.responsesApi.promptCacheBreakpoint.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables explicit prompt cache breakpoint markers for the Responses API.","tags":["experimental","onExp"]},"github.copilot.chat.updated53CodexPrompt.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the updated prompt for gpt-5.3-codex model.","tags":["experimental","onExp"]},"github.copilot.chat.claudeOpus5Prompt.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the updated system prompt tuned for the Claude Opus 5 model.","tags":["experimental","onExp"]},"github.copilot.chat.claudeSonnet5Prompt.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the updated system prompt tuned for the Claude Sonnet 5 model.","tags":["experimental","onExp"]},"github.copilot.chat.gpt55GetChangedFilesTool.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the Get Changed Files tool for gpt-5.5 models.","tags":["experimental","onExp"]},"github.copilot.chat.gpt56Verbosity.enabled":{"type":"boolean","default":true,"markdownDescription":"Sets the response verbosity to low for gpt-5.6 models.","tags":["experimental","onExp"]},"github.copilot.chat.gemini3GetChangedFilesTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the Get Changed Files tool for gemini-3 models.","tags":["experimental","onExp"]},"github.copilot.chat.gemini3LowReasoningEffort.enabled":{"type":"boolean","default":false,"markdownDescription":"Sets the reasoning effort to low for gemini-3 models.","tags":["experimental","onExp"]},"github.copilot.chat.gpt55ReadFileTool.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the Read File tool for gpt-5.5 models.","tags":["experimental","onExp"]},"github.copilot.chat.anthropic.tools.websearch.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable Anthropic's native web search tool for BYOK Claude models. When enabled, allows Claude to search the web for current information. \n\n**Note**: This is an experimental feature only available for BYOK Anthropic Claude models.","tags":["experimental","onExp"]},"github.copilot.chat.anthropic.tools.websearch.maxUses":{"type":"number","default":5,"markdownDescription":"Maximum number of web searches allowed per request. Valid range is 1 to 20. Prevents excessive API calls within a single interaction. If Claude exceeds this limit, the response returns an error.","minimum":1,"maximum":20,"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.allowedDomains":{"type":"array","default":[],"markdownDescription":"List of domains to restrict web search results to (e.g., `[\"example.com\", \"docs.example.com\"]`). Domains should not include the HTTP/HTTPS scheme. Subdomains are automatically included. Cannot be used together with `#github.copilot.chat.anthropic.tools.websearch.blockedDomains#`; configuring both will cause web search requests to fail.","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.blockedDomains":{"type":"array","default":[],"markdownDescription":"List of domains to exclude from web search results (e.g., `[\"untrustedsource.com\"]`). Domains should not include the HTTP/HTTPS scheme. Subdomains are automatically excluded. Cannot be used together with `#github.copilot.chat.anthropic.tools.websearch.allowedDomains#`; configuring both will cause web search requests to fail.","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.userLocation":{"type":["object","null"],"default":null,"markdownDescription":"User location for personalizing web search results based on geographic context. All fields (city, region, country, timezone) are optional. Example: `{\"city\": \"San Francisco\", \"region\": \"California\", \"country\": \"US\", \"timezone\": \"America/Los_Angeles\"}`","properties":{"city":{"type":"string","description":"City name (e.g., 'San Francisco')"},"region":{"type":"string","description":"State or region (e.g., 'California')"},"country":{"type":"string","description":"ISO country code (e.g., 'US')"},"timezone":{"type":"string","description":"IANA timezone identifier (e.g., 'America/Los_Angeles')"}},"tags":["experimental"]},"github.copilot.chat.completionsFetcher":{"type":["string","null"],"markdownDescription":"Sets the fetcher used for the inline completions.","tags":["experimental","onExp"],"enum":["electron-fetch","node-fetch"]},"github.copilot.chat.nesFetcher":{"type":["string","null"],"markdownDescription":"Sets the fetcher used for the next edit suggestions.","tags":["experimental","onExp"],"enum":["electron-fetch","node-fetch"]},"github.copilot.chat.planAgent.additionalTools":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","markdownDescription":"Additional tools to enable for the Plan agent, on top of built-in tools. Use fully-qualified tool names (e.g., `github/issue_read`, `mcp_server/tool_name`).","tags":["experimental"]},"github.copilot.chat.implementAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used when starting implementation from the Plan agent's handoff. Use the format `Model Name (vendor)` (e.g., `GPT-5 (copilot)`). Leave empty to use the default model.","tags":["experimental"]},"github.copilot.chat.askAgent.additionalTools":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","markdownDescription":"Additional tools to enable for the Ask agent, on top of built-in read-only tools. Use fully-qualified tool names (e.g., `github/issue_read`, `mcp_server/tool_name`).","tags":["experimental"]},"github.copilot.chat.askAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used by the Ask agent. Leave empty to use the default model.","tags":["experimental"]},"github.copilot.chat.exploreAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Explore (Code Research) subagent.","tags":["experimental","onExp"]},"github.copilot.chat.exploreAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used by the Explore subagent. Defaults to a fast, small model. Leave empty to use the built-in fallback list.","tags":["experimental"]},"github.copilot.chat.tools.grepSearch.outputFormat":{"type":"string","default":"grep","enum":["grep","tag"],"markdownDescription":"The output format for the grep search tool. Can be either 'grep' or 'tag'. The default is 'grep'.","tags":["experimental","onExp"]},"github.copilot.chat.tools.grepSearch.defaultMaxResults":{"type":"number","default":100,"markdownDescription":"The default maximum number of results to return from the grep search tool. The default is 100.","tags":["experimental","onExp"]},"github.copilot.chat.tools.grepSearch.maxResultsCap":{"type":"number","default":200,"markdownDescription":"The maximum number of results that can be returned from the grep search tool. The default is 200.","tags":["experimental","onExp"]}}},{"id":"advanced","properties":{"github.copilot.chat.chatCompletionsTokenParameter":{"type":"string","enum":["max_completion_tokens","max_tokens"],"enumDescriptions":["Send `max_completion_tokens`.","Send the legacy `max_tokens` parameter for compatibility."],"default":"max_tokens","markdownDescription":"Controls the output token limit parameter sent to custom Chat Completions APIs. Use `max_completion_tokens` for endpoints that do not support `max_tokens`.","tags":["advanced","onExp"]},"github.copilot.chat.inlineEdits.xtabProvider.modelConfiguration":{"type":["object","null"],"default":null,"markdownDescription":"Advanced model configuration for the next edit suggestions xtab provider.\n\n**Note**: This is an advanced setting.","tags":["advanced","experimental"]},"github.copilot.chat.reasoningEffortOverride":{"type":["string","null"],"default":null,"markdownDescription":"Overrides the reasoning/thinking effort sent to model APIs. The configured value must match a reasoning-effort value supported by the selected model or endpoint (for example, `low`, `medium`, `high`, or other model-specific values). Used by evals.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced"]},"github.copilot.chat.autoModeTierOverride":{"type":["string","null"],"default":null,"markdownDescription":"Overrides the routing tier that the `Auto` model requests, ignoring both the tier picked in the model picker and the tier inline chat defaults to. Accepts `eco`, `balanced`, `max`, or `fast`. Used by evals.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced"]},"github.copilot.chat.anthropic.promptCaching.extendedTtl":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Use the extended (1 hour) prompt cache TTL on tools and system blocks for the Anthropic Messages API. Applied to Claude Opus 4.5/4.6/4.7 and Sonnet 4.5/4.6 variants; other models keep the default 5 minute TTL even when this setting is enabled.\n\n**Note**: This is an experimental feature. Only the main agent conversation is eligible — inline chat, terminal chat, notebook chat, and subagent requests are excluded."},"github.copilot.chat.anthropic.promptCaching.extendedTtlMessages":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Also extend the 1 hour prompt cache TTL to message-level breakpoints. Requires `chat.anthropic.promptCaching.extendedTtl` to be enabled; has no effect on its own.\n\n**Note**: This is an experimental feature."},"github.copilot.chat.modelCapabilityOverrides":{"type":"object","default":{},"markdownDescription":"Per-model capability overrides keyed by model id, intended for evaluating preview and tenanted models against an existing model's capability profile. For each model id, declare an aliased `family`. Setting `family` to a known production family (e.g. `\"claude-opus-4.7\"`) makes the model receive that family's full capability profile — Anthropic family detection, latest Opus prompt, multi-replace tools, tool search, context editing, extended cache TTL — without a code change.\n\n**Note**: This is an advanced setting for evaluation use; it is not intended for regular end-user configuration.","additionalProperties":{"type":"object","properties":{"family":{"type":"string","description":"Alias the model's family for capability routing (e.g. 'claude-opus-4.7')."}},"additionalProperties":false},"tags":["advanced"]},"github.copilot.chat.installExtensionSkill.enabled":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Whether to enable the install extension skill for Copilot."},"github.copilot.chat.debug.promptOverrideString":{"type":["string","null"],"default":null,"markdownDescription":"YAML string that overrides the system prompt and/or tool descriptions sent to the model. When both this setting and `github.copilot.chat.debug.promptOverrideFile` are configured, this setting takes precedence.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced","experimental"]},"github.copilot.chat.debug.promptOverrideFile":{"type":["string","null"],"default":null,"markdownDescription":"Path to a YAML file that overrides the system prompt and/or tool descriptions sent to the model.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced","experimental"]},"github.copilot.chat.edits.gemini3MultiReplaceString":{"type":"boolean","default":false,"markdownDescription":"Enable the modern `multi_replace_string_in_file` edit tool when generating edits with Gemini 3 models.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.edits.batchReplaceStringDescriptions":{"type":"boolean","default":false,"markdownDescription":"Update tool descriptions to promote `multi_replace_string_in_file` as the primary multi-edit tool.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.expanded":{"type":"boolean","default":false,"markdownDescription":"Use the expanded format for project labels in prompts.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.chat":{"type":"boolean","default":false,"markdownDescription":"Add project labels in chat requests.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.inline":{"type":"boolean","default":false,"markdownDescription":"Add project labels in inline edit requests.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.maxLocalIndexSize":{"type":"number","default":100000,"markdownDescription":"Maximum size of the local workspace index.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.enableCodeSearch":{"type":"boolean","default":true,"markdownDescription":"Enable code search in workspace context.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.preferredEmbeddingsModel":{"type":"string","default":"","markdownDescription":"Preferred embeddings model for semantic search.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.feedback.onChange":{"type":"boolean","default":false,"markdownDescription":"Enable feedback collection on configuration changes.","tags":["advanced","experimental"]},"github.copilot.chat.review.intent":{"type":"boolean","default":false,"markdownDescription":"Enable intent detection for code review.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.summaryExperimentEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable the notebook summary experiment.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.variableFilteringEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable filtering variables by cell document symbols.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.alternativeFormat":{"type":"string","default":"xml","enum":["xml","markdown"],"markdownDescription":"Alternative document format for notebooks.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.notebook.alternativeNESFormat.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable alternative format for Next Edit Suggestions in notebooks.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.debugTerminalCommandPatterns":{"type":"array","default":[],"items":{"type":"string"},"markdownDescription":"A list of commands for which the \"Debug Command\" quick fix action should be shown in the debug terminal.","tags":["advanced","experimental"]},"github.copilot.chat.localWorkspaceRecording.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable local workspace recording for analysis.","tags":["advanced","experimental"]},"github.copilot.chat.editRecording.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable edit recording for analysis.","tags":["advanced","experimental"]},"github.copilot.chat.inlineChat.reasoningEffort":{"type":"string","default":"low","enum":["none","minimal","low","medium","high"],"markdownDescription":"Controls the reasoning effort level for inline chat requests. Lower values result in faster responses with fewer reasoning tokens. Supported values depend on the model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineChat.enableThinking":{"type":"boolean","default":false,"markdownDescription":"Controls whether thinking/reasoning is enabled for inline chat requests. When disabled, reasoning summaries are suppressed for faster responses.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.debug.requestLogger.maxEntries":{"type":"number","default":100,"markdownDescription":"Maximum number of entries to keep in the request logger for debugging purposes.","tags":["advanced","experimental"]},"github.copilot.chat.inlineEdits.diagnosticsContextProvider.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable diagnostics context provider for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.chatSessionContextProvider.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable chat session context provider for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.codesearch.agent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable code search capabilities in agent mode.","tags":["advanced","experimental"]},"github.copilot.chat.agent.temperature":{"type":["number","null"],"markdownDescription":"Temperature setting for agent mode requests.","tags":["advanced","experimental"]},"github.copilot.chat.agent.omitFileAttachmentContents":{"type":"boolean","default":false,"markdownDescription":"Omit summarized file contents from file attachments in agent mode, to encourage the agent to properly read and explore.","tags":["advanced","experimental"]},"github.copilot.chat.agent.backgroundTodoAgent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable background todo agent that automatically maintains a todo list during agent sessions.\n\n**Note**: This is an advanced experimental setting.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.longToolCallCachePreservation.enabled":{"type":"boolean","default":false,"markdownDescription":"When enabled, periodic keep-alive probes are sent during long-running tool calls to keep the server-side prompt cache warm.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.longToolCallCachePreservation.maxProbes":{"type":"number","default":1,"markdownDescription":"Maximum number of keep-alive probes to send during long-running tool calls before giving up.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.largeToolResultsToDisk.enabled":{"type":"boolean","default":true,"markdownDescription":"When enabled, large tool results are written to disk instead of being included directly in the context, helping manage context window usage.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.largeToolResultsToDisk.thresholdBytes":{"type":"number","default":8192,"markdownDescription":"The size threshold in bytes above which tool results are written to disk. Only applies when largeToolResultsToDisk.enabled is true.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.instantApply.shortContextModelName":{"type":"string","default":"gpt-4o-instant-apply-full-ft-v66-short","markdownDescription":"Model name for short context instant apply.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.instantApply.shortContextLimit":{"type":"number","default":8000,"markdownDescription":"Token limit for short context instant apply.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.enableUserPreferences":{"type":"boolean","default":false,"markdownDescription":"Enable remembering user preferences in agent mode.","tags":["advanced","experimental"]},"github.copilot.chat.skillTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the skill tool in Copilot Chat. When enabled, skills are invoked via a dedicated skill tool instead of readFile.","tags":["advanced","experimental"]},"github.copilot.chat.getChangedFilesTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the Get Changed Files tool in Copilot Chat. When enabled, the agent can retrieve git diffs of current changes via a dedicated tool.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the Execution Subagent tool in Copilot Chat. The Execution Subagent is designed to run terminal commands to accomplish an execution-based task. It is powered by Google's Gemini-3-Flash model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.model":{"type":"string","default":"gemini-3-flash","markdownDescription":"The model to use for the Execution Subagent tool in Copilot Chat. When useAgenticProxy is enabled, defaults to 'exec-subagent-router-a'. Otherwise defaults to gemini-3-flash.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.useAgenticProxy":{"type":"boolean","default":false,"markdownDescription":"Use the agentic proxy endpoint for the execution subagent.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.toolCallLimit":{"type":"number","default":10,"markdownDescription":"Maximum number of tool calls the Execution Subagent can make during execution.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.summarizeAgentConversationHistoryThreshold":{"type":["number","null"],"markdownDescription":"Threshold at which agent conversation history is compacted. Specify either a ratio of the model's context window (a value greater than `0` and at most `1`, e.g. `0.8` to compact at 80%) or an absolute token count (a value of `100` or greater, e.g. `60000`). Leave unset to use the model's full context window.","tags":["advanced","experimental"]},"github.copilot.chat.agentHistorySummarizationMode":{"type":["string","null"],"markdownDescription":"Mode for agent history summarization.","tags":["advanced","experimental"]},"github.copilot.chat.useResponsesApiTruncation":{"type":"boolean","default":false,"markdownDescription":"Use Responses API for truncation.","tags":["advanced","experimental"]},"github.copilot.chat.omitBaseAgentInstructions":{"type":"boolean","default":false,"markdownDescription":"Omit base agent instructions from prompts.","tags":["advanced","experimental"]},"github.copilot.chat.promptFileContextProvider.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable prompt file context provider.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.tools.defaultToolsGrouped":{"type":"boolean","default":false,"markdownDescription":"Group default tools in prompts.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.gpt5AlternativePatch":{"type":"boolean","default":false,"markdownDescription":"Enable GPT-5 alternative patch format.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.triggerOnEditorChangeAfterSeconds":{"type":["number","null"],"default":10,"markdownDescription":"Trigger inline edits after editor has been idle for this many seconds.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.nextCursorPrediction.displayLine":{"type":"boolean","default":true,"markdownDescription":"Display predicted cursor line for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.nextCursorPrediction.currentFileMaxTokens":{"type":"number","default":3000,"markdownDescription":"Maximum tokens for current file in next cursor prediction.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.renameSymbolSuggestions":{"type":"boolean","default":true,"markdownDescription":"Enable rename symbol suggestions in inline edits.","tags":["advanced","experimental","onExp"]},"github.copilot.nextEditSuggestions.preferredModel":{"type":"string","default":"none","markdownDescription":"Preferred model for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.nextEditSuggestions.eagerness":{"type":"string","default":"auto","enum":["auto","low","medium","high"],"enumItemLabels":["Auto","Low","Medium","High"],"enumDescriptions":["Automatically determine the eagerness level.","Show fewer suggestions with longer delays.","Balanced suggestion frequency and delay.","Show more suggestions with minimal delay."],"markdownDescription":"Controls how eagerly next edit suggestions are shown. Higher values show more suggestions with less delay.","tags":["advanced","experimental"]},"github.copilot.chat.cli.mcp.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable Model Context Protocol (MCP) server for Copilot CLI.","tags":["advanced","experimental"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.sandbox.enabled":{"type":"string","enum":["off","on","allowNetwork"],"enumDescriptions":["Disable sandboxing for Copilot CLI tools.","Enable sandboxing for Copilot CLI tools.","Enable sandboxing for Copilot CLI tools and allow all network domains."],"default":"off","markdownDescription":"Run Copilot CLI tools (such as the terminal) inside a sandbox to limit what they can access on your system. The sandbox only applies to requests that run with default permissions — it is not used when bypassing approvals — and is not supported on Windows yet.","tags":["advanced","experimental"]},"github.copilot.chat.cli.branchSupport.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable branch support for Copilot CLI.","tags":["advanced"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.planExitMode.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable Plan Mode exit handling in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.autoModel.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Auto model option in Copilot CLI, which automatically selects the best model for each request. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.autoMode.tiers.enabled":{"type":"boolean","default":false,"markdownDescription":"Choose a routing tier for the Auto model, biasing model selection toward cost, capability, or speed. When disabled, the service picks the routing profile.","tags":["advanced","onExp"]},"github.copilot.chat.agent.modelDetails.enabled":{"type":"boolean","default":true,"markdownDescription":"Show model details (model name and request multiplier) on Copilot CLI agent chat responses. Requires VS Code reload to update already loaded sessions.","tags":["advanced"]},"github.copilot.chat.cli.planCommand.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the /plan command in Copilot CLI to create implementation plans before coding.","tags":["advanced"]},"github.copilot.chat.cli.lazyLoadSessionItem.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable lazy loading of session items in Copilot CLI. Requires VS Code reload.","tags":["advanced"],"agentsWindow":{"default":false}},"github.copilot.chat.cli.aiGenerateBranchNames.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable AI-generated branch names in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.forkSessions.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable forking sessions in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.isolationOption.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the isolation mode option for Copilot CLI. When enabled, users can choose between Worktree and Workspace modes.","tags":["advanced"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.autoCommit.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable automatic commit for Copilot CLI. When enabled, changes made by Copilot CLI will be automatically committed to the repository at the end of each turn.","tags":["advanced","experimental"],"agentsWindow":{"default":false}},"github.copilot.chat.cli.sessionController.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the new session controller API for Copilot CLI. Requires VS Code reload.","tags":["advanced"],"agentsWindow":{"default":false,"readOnly":true}},"github.copilot.chat.cli.thinkingEffort.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable thinking effort for Language Models in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.sessionControllerForSessionsApp.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the new session controller API for Sessions App. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.cli.terminalLinks.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable advanced clickable file links in Copilot CLI terminals. Resolves relative paths against session state directories. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.cli.remote.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the /remote command for Copilot CLI sessions, allowing you to view and steer from GitHub.com and the GitHub mobile app.","tags":["advanced"],"agentsWindow":{"default":false}},"github.copilot.chat.searchSubagent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the search subagent tool for iterative code exploration in the workspace.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.useAgenticProxy":{"type":"boolean","default":false,"markdownDescription":"Use the agentic proxy for the search subagent tool.","tags":["advanced"]},"github.copilot.chat.searchSubagent.model":{"type":"string","default":"","markdownDescription":"Model to use for the search subagent. When useAgenticProxy is enabled, defaults to 'vscode-agentic-search-router-a'. Otherwise defaults to the main agent model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.toolCallLimit":{"type":"number","default":4,"markdownDescription":"Maximum number of tool calls the search subagent can make during exploration.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.thoroughnessEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable the thoroughness parameter on the search subagent tool. When enabled, the caller can pass 'normal' or 'deep' to adjust the number of allowed tool-call turns (1× or 2× the base toolCallLimit respectively).","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.enabled":{"type":"boolean","default":false,"markdownDescription":"Deprecated: use `github.copilot.chat.agentDebugLog.fileLogging.enabled` instead.","deprecationMessage":"This setting has been merged into `github.copilot.chat.agentDebugLog.fileLogging.enabled`. Please use this setting instead.","tags":["advanced","experimental"]},"github.copilot.chat.agentDebugLog.fileLogging.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable agent debug logging: write chat debug events (tool calls, LLM requests, token usage, errors) to JSONL files for the debug panel and troubleshoot skill. Requires window reload to take effect.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.fileLogging.flushIntervalMs":{"type":"number","default":4000,"minimum":2000,"markdownDescription":"How often (in milliseconds) buffered debug log entries are flushed to disk. Lower values provide more up-to-date logs at the cost of more frequent disk writes.","tags":["advanced","experimental"]},"github.copilot.chat.agentDebugLog.fileLogging.maxRetainedSessionLogs":{"type":"number","default":50,"minimum":1,"markdownDescription":"Maximum number of chat debug session log directories to retain on disk. Each chat session produces one directory. Older session logs are automatically deleted when this limit is exceeded.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.fileLogging.maxSessionLogSizeMB":{"type":"number","default":100,"minimum":1,"markdownDescription":"Maximum size in megabytes for a single chat debug session log file. When the log exceeds this size, older entries are truncated to retain the most recent data. Defaults to 100 MB.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.otel.enabled":{"type":"boolean","default":false,"scope":"application","policyReference":{"name":"CopilotOtelEnabled"},"markdownDescription":"Enable OpenTelemetry trace/metric/log emission for Copilot Chat operations. Precedence: enterprise policy > env var `COPILOT_OTEL_ENABLED` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.exporterType":{"type":"string","enum":["otlp-grpc","otlp-http","console","file"],"default":"otlp-http","scope":"application","policyReference":{"name":"CopilotOtelProtocol"},"markdownDescription":"OTel exporter type for Copilot Chat telemetry. Configurable in user settings or managed by enterprise policy (policy takes precedence). Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.protocol":{"type":"string","enum":["","http/json","http/protobuf","grpc"],"default":"","scope":"application","policyReference":{"name":"CopilotOtelOtlpProtocol"},"markdownDescription":"OTLP wire protocol for Copilot Chat OTel data, mirroring `OTEL_EXPORTER_OTLP_PROTOCOL`. `http/protobuf` selects the protobuf-over-HTTP exporter; the default (empty) uses `http/json`. Precedence: enterprise policy > env var > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.otlpEndpoint":{"type":"string","default":"http://localhost:4318","scope":"application","policyReference":{"name":"CopilotOtelEndpoint"},"markdownDescription":"OTLP collector endpoint URL for Copilot Chat OTel data. Precedence: enterprise policy > env var `OTEL_EXPORTER_OTLP_ENDPOINT` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.captureContent":{"type":"boolean","default":false,"scope":"application","policyReference":{"name":"CopilotOtelCaptureContent"},"markdownDescription":"Capture input/output messages, system instructions, and tool definitions in OTel telemetry. **Contains potentially sensitive data.** Precedence: enterprise policy > env var `COPILOT_OTEL_CAPTURE_CONTENT` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.serviceName":{"type":"string","default":"","scope":"application","policyReference":{"name":"CopilotOtelServiceName"},"markdownDescription":"OTel `service.name` resource attribute for Copilot Chat OTel data. Configurable in user settings only. Env var `OTEL_SERVICE_NAME` takes precedence over the setting; enterprise policy takes precedence over both. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.resourceAttributes":{"type":"object","additionalProperties":{"type":"string"},"default":{},"scope":"application","policyReference":{"name":"CopilotOtelResourceAttributes"},"markdownDescription":"Additional OTel resource attributes for Copilot Chat OTel data, as a `{ \"key\": \"value\" }` map. Configurable in user settings only. Merged per-key with `OTEL_RESOURCE_ATTRIBUTES` env (env wins over the setting); enterprise policy wins over both. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.headers":{"type":"object","additionalProperties":{"type":"string"},"default":{},"scope":"application","policyReference":{"name":"CopilotOtelHeaders"},"markdownDescription":"Extra OTLP exporter headers (e.g. auth tokens) for Copilot Chat OTel data, as a `{ \"key\": \"value\" }` map. Applied directly to the OTLP exporter, not via environment variables. Configurable in user settings only. Merged per-key with `OTEL_EXPORTER_OTLP_HEADERS` env (env wins over the setting); enterprise policy wins over both. **Contains potentially sensitive credentials.** Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.maxAttributeSizeChars":{"type":"integer","default":0,"minimum":0,"scope":"application","markdownDescription":"Maximum size **in characters** for free-form OTel content attributes (prompts, responses, tool arguments/results, hook input/output). `0` (the default) disables truncation so backends without per-attribute size limits receive full JSON payloads. Set to a positive value when your OTel backend caps attribute size — consult your backend's documentation for its per-attribute limit. Truncated values are suffixed with `...[truncated, original N chars]`. Configurable in user settings only. Env var `COPILOT_OTEL_MAX_ATTRIBUTE_SIZE_CHARS` takes precedence. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.outfile":{"type":"string","default":"","scope":"application","policyReference":{"name":"CopilotOtelOutfile"},"markdownDescription":"File path for file-based OTel exporter output (JSON-lines). When set, overrides exporter type to `file`. Configurable in user settings or managed by enterprise policy (policy takes precedence). Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.dbSpanExporter.enabled":{"type":"boolean","default":false,"scope":"application","markdownDescription":"Enable SQLite DB span exporter. Persists OTel spans to a local SQLite database. Automatically enables OTel when set to true. Configurable in user settings only. Requires window reload.","tags":["advanced"]},"github.copilot.chat.workspace.codeSearchExternalIngest.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable external ingest for semantic codebase search in this workspace. This setting can be used to enable/disable external ingest, but your Copilot Enterprise or Copilot subscription policies ultimately control availability. [Learn more about external ingest policies](https://aka.ms/vscode-external-ingest-policy).","tags":["advanced","onExp"]}}}],"submenus":[{"id":"copilot/reviewComment/additionalActions/applyAndNext","label":"Apply and Go to Next"},{"id":"copilot/reviewComment/additionalActions/discardAndNext","label":"Discard and Go to Next"},{"id":"copilot/reviewComment/additionalActions/discard","label":"Discard"},{"id":"github.copilot.chat.debug.filter","label":"Filter","icon":"$(filter)"},{"id":"github.copilot.chat.debug.exportAllPromptLogsAsJson","label":"Export All Logs as JSON","icon":"$(file-export)"}],"menus":{"editor/title":[{"command":"github.copilot.debug.generateInlineEditTests","when":"resourceScheme == 'ccreq'"},{"command":"github.copilot.chat.notebook.enableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && !github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && !config.notebook.globalToolbar","group":"navigation@10"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && !config.notebook.globalToolbar","group":"navigation@10"},{"command":"github.copilot.chat.copilotCLI.acceptDiff","group":"navigation@1","when":"github.copilot.chat.copilotCLI.hasActiveDiff"},{"command":"github.copilot.chat.copilotCLI.rejectDiff","group":"navigation@2","when":"github.copilot.chat.copilotCLI.hasActiveDiff"}],"editor/title/context":[{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"}],"explorer/context":[{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !explorerResourceIsFolder"}],"editor/context":[{"command":"github.copilot.chat.fix","when":"!github.copilot.interactiveSession.disabled && chatSetupCompleted && !editorReadonly && editorSelectionHasDiagnostics","group":"1_chat@4"},{"command":"github.copilot.chat.explain","when":"!github.copilot.interactiveSession.disabled && chatSetupCompleted","group":"1_chat@5"},{"command":"github.copilot.chat.review","when":"config.github.copilot.chat.reviewSelection.enabled && !github.copilot.interactiveSession.disabled && chatSetupCompleted && resourceScheme != 'vscode-chat-code-block'","group":"1_chat@6"},{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"},{"command":"github.copilot.chat.copilotCLI.addSelection","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && editorHasSelection && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"}],"chat/editor/inlineGutter":[{"command":"github.copilot.chat.explain","when":"!github.copilot.interactiveSession.disabled && editor.hasSelection && !inlineChatFileBelongsToChat","group":"2_chat@2"},{"command":"github.copilot.chat.review","when":"!github.copilot.interactiveSession.disabled && editor.hasSelection && config.github.copilot.chat.reviewSelection.enabled && !inlineChatFileBelongsToChat","group":"2_chat@3"}],"chat/input/editing/sessionToolbar":[{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","when":"chatSessionType == copilotcli && workbenchState != empty && !isSessionsWindow","group":"navigation@0"},{"command":"github.copilot.chat.checkoutPullRequestReroute","when":"chatSessionType == copilot-cloud-agent && chatSessionPullRequest != 'none' && !github.vscode-pull-request-github.activated && gitOpenRepositoryCount != 0","group":"navigation@0"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","when":"chatSessionType == copilot-cloud-agent && github.copilot.chat.cloudTaskCanCreatePullRequest && !isSessionsWindow","group":"navigation@0"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","when":"chatSessionType == copilot-cloud-agent && github.copilot.chat.cloudTaskCanOpenPullRequest && !isSessionsWindow","group":"navigation@0"}],"agents/changes/actions/primary":[{"command":"github.copilot.sessions.initializeRepository","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == workspace && !sessions.hasGitRepository && !sessions.isAgentHostSession","group":"0_init@1"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && !sessions.isMergeBaseBranchProtected && !sessions.hasPullRequest && (sessions.hasUncommittedChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"1_merge@1"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && !sessions.isMergeBaseBranchProtected && !sessions.hasPullRequest && (sessions.hasUncommittedChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"1_merge@2"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && sessions.hasGitHubRemote && !sessions.hasPullRequest && sessions.hasBranchChanges && !sessions.isAgentHostSession","group":"2_pull_request@1"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && sessions.hasGitHubRemote && !sessions.hasPullRequest && sessions.hasBranchChanges && !sessions.isAgentHostSession","group":"2_pull_request@2"},{"command":"github.copilot.sessions.commit","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUncommittedChanges && !sessions.isAgentHostSession","group":"3_commit@1"},{"command":"github.copilot.sessions.commitAndSync","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUncommittedChanges && !sessions.isAgentHostSession","group":"3_commit@2"},{"command":"github.copilot.sessions.sync","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUpstream && !sessions.hasUncommittedChanges && (sessions.hasIncomingChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"4_sync@1"}],"agents/change/inline":[{"command":"github.copilot.sessions.discardChanges","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && !sessionIsArchived && !sessions.isAgentHostSession","group":"navigation@2"}],"chat/contextUsage/actions":[{"command":"github.copilot.chat.compact","when":"!chatIsAgentHostSession"}],"chat/input/status":[{"command":"github.copilot.chat.otel.statusActive","when":"github.copilot.otel.enabledExplicitly && isSessionsWindow","group":"otel@1"}],"chat/newSession":[{"command":"github.copilot.cli.newSession","group":"4_recommendations@0"}],"testing/item/result":[{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"testResultState == failed && !testResultOutdated","group":"inline@2"}],"testing/item/context":[{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"testResultState == failed && !testResultOutdated","group":"inline@2"}],"commandPalette":[{"command":"github.copilot.cli.openInCopilotCLI","when":"false"},{"command":"github.copilot.debug.extensionState","when":"false"},{"command":"github.copilot.cli.sessions.commitToWorktree","when":"false"},{"command":"github.copilot.cli.sessions.commitToRepository","when":"false"},{"command":"github.copilot.chat.triggerPermissiveSignIn","when":"false"},{"command":"github.copilot.chat.otel.statusActive","when":"false"},{"command":"github.copilot.interactiveSession.feedback","when":"github.copilot-chat.activated && !github.copilot.interactiveSession.disabled"},{"command":"github.copilot.debug.workbenchState","when":"true"},{"command":"github.copilot.chat.rerunWithCopilotDebug","when":"false"},{"command":"github.copilot.chat.startCopilotDebugCommand","when":"false"},{"command":"github.copilot.git.generateCommitMessage","when":"false"},{"command":"github.copilot.git.resolveMergeConflicts","when":"false"},{"command":"github.copilot.chat.explain","when":"false"},{"command":"github.copilot.chat.review","when":"!github.copilot.interactiveSession.disabled"},{"command":"github.copilot.chat.review.apply","when":"false"},{"command":"github.copilot.chat.review.applyAndNext","when":"false"},{"command":"github.copilot.chat.review.discard","when":"false"},{"command":"github.copilot.chat.review.discardAndNext","when":"false"},{"command":"github.copilot.chat.review.discardAll","when":"false"},{"command":"github.copilot.chat.review.stagedChanges","when":"false"},{"command":"github.copilot.chat.review.unstagedChanges","when":"false"},{"command":"github.copilot.chat.review.changes","when":"false"},{"command":"github.copilot.chat.review.stagedFileChange","when":"false"},{"command":"github.copilot.chat.review.unstagedFileChange","when":"false"},{"command":"github.copilot.chat.review.previous","when":"false"},{"command":"github.copilot.chat.review.next","when":"false"},{"command":"github.copilot.chat.review.continueInInlineChat","when":"false"},{"command":"github.copilot.chat.review.continueInChat","when":"false"},{"command":"github.copilot.chat.review.markHelpful","when":"false"},{"command":"github.copilot.chat.review.markUnhelpful","when":"false"},{"command":"github.copilot.devcontainer.generateDevContainerConfig","when":"false"},{"command":"github.copilot.tests.fixTestFailure","when":"false"},{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"false"},{"command":"github.copilot.search.markHelpful","when":"false"},{"command":"github.copilot.search.markUnhelpful","when":"false"},{"command":"github.copilot.search.feedback","when":"false"},{"command":"github.copilot.chat.debug.showElements","when":"false"},{"command":"github.copilot.chat.debug.hideElements","when":"false"},{"command":"github.copilot.chat.debug.showTools","when":"false"},{"command":"github.copilot.chat.debug.hideTools","when":"false"},{"command":"github.copilot.chat.debug.showNesRequests","when":"false"},{"command":"github.copilot.chat.debug.hideNesRequests","when":"false"},{"command":"github.copilot.chat.debug.showGhostRequests","when":"false"},{"command":"github.copilot.chat.debug.hideGhostRequests","when":"false"},{"command":"github.copilot.chat.debug.exportLogItem","when":"false"},{"command":"github.copilot.chat.debug.exportPromptArchive","when":"false"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","when":"false"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","when":"false"},{"command":"github.copilot.chat.mcp.setup.check","when":"false"},{"command":"github.copilot.chat.mcp.setup.validatePackage","when":"false"},{"command":"github.copilot.chat.mcp.setup.flow","when":"false"},{"command":"github.copilot.chat.debug.showRawRequestBody","when":"false"},{"command":"github.copilot.debug.showOutputChannel","when":"false"},{"command":"github.copilot.cli.sessions.delete","when":"false"},{"command":"github.copilot.cli.sessions.resumeInTerminal","when":"false"},{"command":"github.copilot.cli.sessions.rename","when":"false"},{"command":"github.copilot.cli.sessions.setTitle","when":"false"},{"command":"github.copilot.cli.sessions.openRepository","when":"false"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","when":"false"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","when":"false"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","when":"false"},{"command":"github.copilot.cloud.sessions.openInBrowser","when":"false"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","when":"false"},{"command":"github.copilot.cloud.sessions.installPRExtension","when":"false"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"false"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","when":"false"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","when":"false"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","when":"false"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","when":"false"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","when":"false"},{"command":"github.copilot.chat.checkoutPullRequestReroute","when":"false"},{"command":"github.copilot.chat.cloudSessions.openRepository","when":"false"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","when":"false"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","when":"false"},{"command":"github.copilot.nes.captureExpected.start","when":"github.copilot.inlineEditsEnabled"},{"command":"github.copilot.nes.captureExpected.submit","when":"github.copilot.inlineEditsEnabled"},{"command":"github.copilot.sessions.commit","when":"false"},{"command":"github.copilot.sessions.commitAndSync","when":"false"},{"command":"github.copilot.sessions.sync","when":"false"},{"command":"github.copilot.sessions.discardChanges","when":"false"},{"command":"github.copilot.sessions.refreshChanges","when":"false"},{"command":"github.copilot.sessions.initializeRepository","when":"false"}],"view/title":[{"submenu":"github.copilot.chat.debug.filter","when":"view == copilot-chat","group":"navigation"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","when":"view == copilot-chat","group":"export@1"},{"command":"workbench.action.chat.openAgentDebugPanel","when":"view == copilot-chat","group":"3_show@0"},{"command":"github.copilot.debug.showOutputChannel","when":"view == copilot-chat","group":"3_show@1"},{"command":"github.copilot.debug.showChatLogView","when":"view == workbench.panel.chat.view.copilot","group":"3_show"}],"view/item/context":[{"command":"github.copilot.chat.debug.showRawRequestBody","when":"view == copilot-chat && viewItem == request","group":"export@0"},{"command":"github.copilot.chat.debug.exportLogItem","when":"view == copilot-chat && (viewItem == toolcall || viewItem == request)","group":"export@1"},{"command":"github.copilot.chat.debug.exportPromptArchive","when":"view == copilot-chat && viewItem == chatprompt","group":"export@2"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","when":"view == copilot-chat && viewItem == chatprompt","group":"export@3"}],"searchPanel/aiResults/commands":[{"command":"github.copilot.search.markHelpful","group":"inline@0","when":"aiResultsTitle && aiResultsRequested"},{"command":"github.copilot.search.markUnhelpful","group":"inline@1","when":"aiResultsTitle && aiResultsRequested"},{"command":"github.copilot.search.feedback","group":"inline@2","when":"aiResultsTitle && aiResultsRequested && github.copilot.debugReportFeedback"}],"comments/comment/title":[{"command":"github.copilot.chat.review.markHelpful","group":"inline@0","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.markUnhelpful","group":"inline@1","when":"commentController == github-copilot-review"}],"commentsView/commentThread/context":[{"command":"github.copilot.chat.review.apply","group":"context@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discard","group":"context@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discardAll","group":"context@3","when":"commentController == github-copilot-review"}],"comments/commentThread/additionalActions":[{"submenu":"copilot/reviewComment/additionalActions/applyAndNext","group":"inline@1","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments > 1"},{"command":"github.copilot.chat.review.apply","group":"inline@1","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments == 1"},{"submenu":"copilot/reviewComment/additionalActions/discardAndNext","group":"inline@2","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments > 1"},{"submenu":"copilot/reviewComment/additionalActions/discard","group":"inline@2","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments == 1"}],"copilot/reviewComment/additionalActions/applyAndNext":[{"command":"github.copilot.chat.review.applyAndNext","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.apply","group":"inline@2","when":"commentController == github-copilot-review"}],"copilot/reviewComment/additionalActions/discardAndNext":[{"command":"github.copilot.chat.review.discardAndNext","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discard","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInInlineChat","group":"inline@3","when":"commentController == github-copilot-review"}],"copilot/reviewComment/additionalActions/discard":[{"command":"github.copilot.chat.review.discard","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInInlineChat","group":"inline@3","when":"commentController == github-copilot-review"}],"comments/commentThread/title":[{"command":"github.copilot.chat.review.previous","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.next","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInChat","group":"inline@3","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discardAll","group":"inline@4","when":"commentController == github-copilot-review"}],"scm/title":[{"command":"github.copilot.chat.review.changes","group":"navigation","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmProviderRootUri in github.copilot.chat.reviewDiff.enabledRootUris"}],"scm/sourceControl":[{"command":"github.copilot.cli.openInCopilotCLI","group":"3_worktree@1","when":"scmProvider == git"}],"scm/resourceGroup/context":[{"command":"github.copilot.chat.review.stagedChanges","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == index","group":"inline@-3"},{"command":"github.copilot.chat.review.unstagedChanges","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == workingTree","group":"inline@-3"}],"scm/resourceState/context":[{"command":"github.copilot.git.resolveMergeConflicts","when":"scmProvider == git && scmResourceGroup == merge && git.activeResourceHasMergeConflicts","group":"z_chat@1"},{"command":"github.copilot.chat.review.stagedFileChange","group":"3_copilot","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == index"},{"command":"github.copilot.chat.review.unstagedFileChange","group":"3_copilot","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == workingTree"}],"scm/inputBox":[{"command":"github.copilot.git.generateCommitMessage","when":"scmProvider == git && chatSetupCompleted"}],"testing/message/context":[{"command":"github.copilot.tests.fixTestFailure","when":"testing.testItemHasUri","group":"inline@1"}],"issue/reporter":[{"command":"github.copilot.report"}],"github.copilot.chat.debug.filter":[{"command":"github.copilot.chat.debug.showElements","when":"github.copilot.chat.debug.elementsHidden","group":"commands@0"},{"command":"github.copilot.chat.debug.hideElements","when":"!github.copilot.chat.debug.elementsHidden","group":"commands@0"},{"command":"github.copilot.chat.debug.showTools","when":"github.copilot.chat.debug.toolsHidden","group":"commands@1"},{"command":"github.copilot.chat.debug.hideTools","when":"!github.copilot.chat.debug.toolsHidden","group":"commands@1"},{"command":"github.copilot.chat.debug.showNesRequests","when":"github.copilot.chat.debug.nesRequestsHidden","group":"commands@2"},{"command":"github.copilot.chat.debug.hideNesRequests","when":"!github.copilot.chat.debug.nesRequestsHidden","group":"commands@2"},{"command":"github.copilot.chat.debug.showGhostRequests","when":"github.copilot.chat.debug.ghostRequestsHidden","group":"commands@3"},{"command":"github.copilot.chat.debug.hideGhostRequests","when":"!github.copilot.chat.debug.ghostRequestsHidden","group":"commands@3"}],"notebook/toolbar":[{"command":"github.copilot.chat.notebook.enableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && !github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && config.notebook.globalToolbar","group":"navigation/execute@15"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && config.notebook.globalToolbar","group":"navigation/execute@15"}],"editor/content":[{"command":"github.copilot.git.resolveMergeConflicts","group":"z_chat@1","when":"config.git.enabled && !git.missing && !isInDiffEditor && !isMergeEditor && resource in git.mergeChanges && git.activeResourceHasMergeConflicts && chatSetupCompleted"}],"multiDiffEditor/content":[{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"resourceScheme == copilotcli-worktree-changes && workbenchState != empty && !isSessionsWindow"}],"chat/chatSessions":[{"command":"github.copilot.cli.sessions.delete","when":"chatSessionType == copilotcli","group":"1_edit@10"},{"command":"github.copilot.cli.sessions.rename","when":"chatSessionType == copilotcli","group":"1_edit@4"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","when":"chatSessionType == copilotcli && !isSessionsWindow","group":"2_open@1"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","when":"chatSessionType == copilotcli","group":"2_open@2"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","when":"chatSessionType == copilotcli","group":"2_open@3"},{"command":"github.copilot.cli.sessions.resumeInTerminal","when":"chatSessionType == copilotcli","group":"2_open@4"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"chatSessionType == copilotcli && workbenchState != empty && !isSessionsWindow","group":"3_apply@0"},{"command":"github.copilot.cloud.sessions.openInBrowser","when":"chatSessionType == copilot-cloud-agent","group":"navigation@10"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","when":"chatSessionType == copilot-cloud-agent","group":"1_edit@10"}],"chatSessions/item/context":[{"command":"github.copilot.cli.sessions.rename","when":"sessionType == copilotcli && sessionProviderId == default-copilot","group":"1_edit@4"}],"chat/multiDiff/context":[{"command":"github.copilot.cloud.sessions.installPRExtension","when":"chatSessionType == copilot-cloud-agent && !github.copilot.prExtensionInstalled","group":"inline@1"}],"chat/input/editing/sessionTitleToolbar":[{"command":"github.copilot.sessions.refreshChanges","when":"sessionType == copilotcli && isSessionsWindow && !sessions.isAgentHostSession","group":"9_refresh@1"}]},"icons":{"copilot-logo":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0041"}},"copilot-warning":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0042"}},"copilot-notconnected":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0043"}}},"iconFonts":[{"id":"copilot-font","src":[{"path":"assets/copilot.woff","format":"woff"}]}],"terminalQuickFixes":[{"id":"copilot-chat.fixWithCopilot","commandLineMatcher":".+","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":".+","offset":0},"kind":"explain"},{"id":"copilot-chat.generateCommitMessage","commandLineMatcher":"git add .+","commandExitResult":"success","kind":"explain","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":".+","offset":0}},{"id":"copilot-chat.terminalToDebugging","commandLineMatcher":".+","kind":"explain","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":"","offset":0}},{"id":"copilot-chat.terminalToDebuggingSuccess","commandLineMatcher":".+","kind":"explain","commandExitResult":"success","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":"","offset":0}}],"languages":[{"id":"ignore","filenamePatterns":[".copilotignore"],"aliases":[]},{"id":"markdown","extensions":[".copilotmd"]}],"views":{"copilot-chat":[{"id":"copilot-chat","name":"Chat Debug","icon":"assets/debug-icon.svg","when":"github.copilot.chat.showLogView"}],"context-inspector":[{"id":"context-inspector","name":"Language Context Inspector","icon":"$(inspect)","when":"github.copilot.chat.showContextInspectorView"}]},"viewsContainers":{"activitybar":[{"id":"copilot-chat","title":"Chat Debug","icon":"assets/debug-icon.svg"},{"id":"context-inspector","title":"Language Context Inspector","icon":"$(inspect)"}]},"configurationDefaults":{"workbench.editorAssociations":{"*.copilotmd":"vscode.markdown.preview.editor"}},"keybindings":[{"command":"github.copilot.chat.copilotCLI.addFileReference","key":"ctrl+shift+.","mac":"cmd+shift+.","when":"github.copilot.chat.copilotCLI.hasSession && editorTextFocus"},{"command":"github.copilot.chat.rerunWithCopilotDebug","key":"ctrl+alt+.","mac":"cmd+alt+.","when":"github.copilot-chat.activated && terminalShellIntegrationEnabled && terminalFocus && !terminalAltBufferActive"},{"command":"github.copilot.nes.captureExpected.confirm","key":"ctrl+enter","mac":"cmd+enter","when":"copilotNesCaptureMode && editorTextFocus"},{"command":"github.copilot.nes.captureExpected.abort","key":"escape","when":"copilotNesCaptureMode && editorTextFocus"}],"walkthroughs":[{"id":"copilotWelcome","title":"GitHub Copilot","description":"Your AI pair programmer to write code faster and smarter","when":"!isWeb","steps":[{"id":"copilot.setup.signIn","title":"Sign in to use Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.\n\n[Use Copilot for Free](command:workbench.action.chat.triggerSetupForceSignIn)","when":"chatEntitlementSignedOut && !view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && !github.copilot.interactiveSession.individual.disabled && !github.copilot.interactiveSession.individual.expired && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signInNoAction","title":"Sign in to use Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.","when":"chatEntitlementSignedOut && view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && !github.copilot.interactiveSession.individual.disabled && !github.copilot.interactiveSession.individual.expired && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signUp","title":"Get started with Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.\n\n[Use Copilot for Free](command:workbench.action.chat.triggerSetupForceSignIn)","when":"chatPlanCanSignUp && !view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && (github.copilot.interactiveSession.individual.disabled || github.copilot.interactiveSession.individual.expired) && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signUpNoAction","title":"Get started with Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.","when":"chatPlanCanSignUp && view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && (github.copilot.interactiveSession.individual.disabled || github.copilot.interactiveSession.individual.expired) && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.panelChat","title":"Chat about your code","description":"Ask Copilot programming questions or get help with your code using **@workspace**.\n Type **@** to see all available chat participants that you can chat with directly, each with their own expertise.\n[Chat with Copilot](command:workbench.action.chat.open?%7B%22mode%22%3A%22ask%22%7D)","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.edits","title":"Make changes using natural language","description":"Use **Copilot Edits** to select files you want to work with and describe changes you want to make. Copilot applies them directly to your files.\n[Edit with Copilot](command:workbench.action.chat.open?%7B%22mode%22%3A%22edit%22%7D)","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-hclight.mp4"},"altText":"The video shows the user dragging and dropping files into the Copilot Edits input box located in the secondary sidebar. Copilot then updates the file according to the user’s request"}},{"id":"copilot.firstSuggest","title":"AI-suggested inline suggestions","description":"As you type in the editor, Copilot suggests code to help you complete what you started.","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-hclight.mp4"},"altText":"The video shows different Copilot inline suggestions, where Copilot suggests code to help the user complete their code"}},{"id":"copilot.inlineChatNotMac","title":"Use natural language in your files","description":"Sometimes, it's easier to describe the code you want to write directly within a file.\nPlace your cursor or make a selection and use **``Ctrl+I``** to open **Inline Chat**.","when":"!isMac && (!chatEntitlementSignedOut || chatIsEnabled )","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hclight.mp4"},"altText":"Inline Chat view in the editor. The video shows the user invoking the inline chat widget and asking Copilot to make a change in the file using natural language. Copilot then makes the requested change"}},{"id":"copilot.inlineChatMac","title":"Use natural language in your files","description":"Sometimes, it's easier to describe the code you want to write directly within a file.\nPlace your cursor or make a selection and use **``Cmd+I``** to open **Inline Chat**.","when":"isMac && (!chatEntitlementSignedOut || chatIsEnabled )","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hclight.mp4"},"altText":"The video shows the user invoking the inline chat widget and asking Copilot to make a change in the file using natural language. Copilot then makes the requested change"}},{"id":"copilot.sparkle","title":"Look out for smart actions","description":"Copilot enhances your coding experience with AI-powered smart actions throughout the VS Code interface.\nLook for $(sparkle) icons, such as in the [Source Control view](command:workbench.view.scm), where Copilot generates commit messages and PR descriptions based on code changes.\n\n[Discover Tips and Tricks](https://code.visualstudio.com/docs/copilot/copilot-vscode-features)","when":"!chatEntitlementSignedOut || chatIsEnabled","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-hclight.mp4"},"altText":"The video shows the sparkle icon in the source control input box being clicked, triggering GitHub Copilot to generate a commit message automatically"}}]}],"jsonValidation":[{"fileMatch":"settings.json","url":"ccsettings://root/schema.json"}],"typescriptServerPlugins":[{"name":"@vscode/copilot-typescript-server-plugin","enableForWorkspaceTypeScriptVersions":true}],"chatSessions":[{"type":"copilotcli","name":"cli","displayName":"Copilot CLI","icon":"$(copilot)","welcomeTitle":"Copilot CLI","welcomeMessage":"Run tasks in the background with the Copilot CLI","inputPlaceholder":"Run tasks in the background with the Copilot CLI, type `#` for adding context","order":1,"canDelegate":true,"description":"Delegate tasks to a background agent running locally on your machine. The agent iterates via chat and works asynchronously in a Git worktree to implement changes isolated from your main workspace using the GitHub Copilot CLI.","when":"config.github.copilot.chat.backgroundAgent.enabled","supportsAutoModel":true,"requiresCopilotSignIn":true,"capabilities":{"supportsFileAttachments":true,"supportsProblemAttachments":true,"supportsToolAttachments":false,"supportsImageAttachments":true,"supportsSymbolAttachments":true,"supportsSearchResultAttachments":true,"supportsSourceControlAttachments":true,"supportsPromptAttachments":true,"supportsHandOffs":true},"commands":[{"name":"delegate","description":"Delegate chat session to cloud agent and create associated PR","when":"config.github.copilot.chat.cloudAgent.enabled"},{"name":"compact","description":"Free up context by compacting the conversation history"},{"name":"plan","description":"Create an implementation plan before coding","when":"config.github.copilot.chat.cli.planCommand.enabled"},{"name":"fleet","description":"Enable fleet mode for parallel subagent execution","when":"false"},{"name":"remote","description":"Show remote control status, or use /remote on and /remote off","when":"config.github.copilot.chat.cli.remote.enabled"}],"customAgentTarget":"github-copilot","requiresCustomModels":true,"autoAttachReferences":true,"useRequestToPopulateBuiltInPickers":true},{"type":"copilot-cloud-agent","alternativeIds":["copilot-swe-agent"],"name":"cloud","displayName":"Cloud","icon":"$(cloud)","welcomeTitle":"Cloud Agent","welcomeMessage":"Delegate tasks to the cloud","inputPlaceholder":"Delegate tasks to the cloud, type `#` for adding context","order":2,"canDelegate":true,"description":"Delegate tasks to the GitHub Copilot coding agent. The agent iterates via chat and works asynchronously in the cloud to implement changes and pull requests as needed.","when":"config.github.copilot.chat.cloudAgent.enabled","supportsAutoModel":false,"requiresCopilotSignIn":true,"capabilities":{"supportsFileAttachments":true},"autoAttachReferences":true}],"chatAgents":[],"chatPromptFiles":[{"path":"./assets/prompts/plan.prompt.md","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-standup.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-tips.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-cost-tips.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-improve.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-reindex.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-search.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]}],"chatSkills":[{"path":"./assets/prompts/skills/project-setup-info-local/SKILL.md","when":"!config.github.copilot.chat.newWorkspace.useContext7","sessionTypes":["local"]},{"path":"./assets/prompts/skills/project-setup-info-context7/SKILL.md","when":"config.github.copilot.chat.newWorkspace.useContext7","sessionTypes":["local"]},{"path":"./assets/prompts/skills/install-vscode-extension/SKILL.md","when":"config.github.copilot.chat.installExtensionSkill.enabled && config.github.copilot.chat.newWorkspaceCreation.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/skills/get-search-view-results/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/troubleshoot/SKILL.md","sessionTypes":["local","copilotcli"]},{"path":"./assets/prompts/skills/agent-customization/SKILL.md","sessionTypes":["local","copilotcli"]},{"path":"./assets/prompts/skills/init/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-prompt/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-instructions/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-skill/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-agent/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-hook/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/chronicle/SKILL.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]}],"terminal":{"profiles":[{"icon":"copilot","id":"copilot-cli","title":"GitHub Copilot CLI","titleTemplate":"${sequence}"}]}},"prettier":{"useTabs":true,"tabWidth":4,"singleQuote":true},"scripts":{"postinstall":"tsx ./script/postinstall.ts","build":"node .esbuild.mts --sourcemaps","compile":"node .esbuild.mts --dev","watch":"npm-run-all -lp watch:esbuild watch:typecheck","watch:esbuild":"node .esbuild.mts --watch --dev","watch:typecheck":"tsc --noEmit --watch --preserveWatchOutput --project tsconfig.json","watch:typecheck-extension":"tsc --noEmit --watch --project tsconfig.json","watch:typecheck-extension-web":"tsc --noEmit --watch --project tsconfig.worker.json","watch:typecheck-simulation-workbench":"tsc --noEmit --watch --project test/simulation/workbench/tsconfig.json","typecheck":"tsc --noEmit --project tsconfig.json && tsc --noEmit --project test/simulation/workbench/tsconfig.json && tsc --noEmit --project tsconfig.worker.json && tsc --noEmit --project src/extension/completions-core/vscode-node/extension/src/copilotPanel/webView/tsconfig.json","lint":"npx eslint . --max-warnings=0","lint-staged":"npx eslint --max-warnings=0","tsfmt":"npx tsfmt -r --verify","test":"npm-run-all test:*","test:extension":"vscode-test","test:sanity":"vscode-test --sanity","test:unit":"vitest --run --pool=forks","vitest":"vitest","bench":"vitest bench","get_env":"tsx script/setup/getEnv.mts","get_token":"tsx script/setup/getToken.mts","prettier":"prettier --list-different --write --cache .","simulate":"node dist/simulationMain.js","simulate-require-cache":"node dist/simulationMain.js --require-cache","simulate-ci":"node dist/simulationMain.js --ci --require-cache","simulate-update-baseline":"node dist/simulationMain.js --update-baseline","simulate-gc":"node dist/simulationMain.js --require-cache --gc","setup":"npm run get_env && npm run get_token","setup:dotnet":"run-script-os","setup:dotnet:darwin:linux":"curl -O https://raw.githubusercontent.com/dotnet/install-scripts/main/src/dotnet-install.sh && chmod u+x dotnet-install.sh && ./dotnet-install.sh --channel 10.0 && rm dotnet-install.sh","setup:dotnet:win32":"powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"Invoke-WebRequest -Uri https://raw.githubusercontent.com/dotnet/install-scripts/main/src/dotnet-install.ps1 -OutFile dotnet-install.ps1; ./dotnet-install.ps1 -channel 10.0; Remove-Item dotnet-install.ps1\"","analyze-edits":"tsx script/analyzeEdits.ts","extract-chat-lib":"tsx script/build/extractChatLib.ts","create_venv":"tsx script/setup/createVenv.mts","package":"vsce package","web":"vscode-test-web --headless --extensionDevelopmentPath=. .","test:prompt":"mocha \"src/extension/completions-core/vscode-node/prompt/**/test/**/*.test.{ts,tsx}\"","test:completions-core":"tsx src/extension/completions-core/vscode-node/extension/test/runTest.ts"},"devDependencies":{"@azure/identity":"4.9.1","@azure/keyvault-secrets":"^4.10.0","@azure/msal-node":"^3.6.3","@c4312/scip":"^0.1.0","@fluentui/react-components":"^9.66.6","@fluentui/react-icons":"^2.0.305","@hediet/node-reload":"^0.8.0","@octokit/types":"^14.1.0","@stylistic/eslint-plugin":"^3.0.1","@types/eslint":"^9.0.0","@types/express":"^5.0.6","@types/google-protobuf":"^3.15.12","@types/js-yaml":"^4.0.9","@types/markdown-it":"^14.0.0","@types/minimist":"^1.2.5","@types/mocha":"^10.0.10","@types/node":"^22.16.3","@types/picomatch":"^4.0.0","@types/react":"17.0.44","@types/react-dom":"^18.2.17","@types/sinon":"^17.0.4","@types/source-map-support":"^0.5.10","@types/tar":"^6.1.13","@types/vinyl":"^2.0.12","@types/vscode-webview":"^1.57.5","@types/ws":"^8.5.3","@types/yargs":"^17.0.24","@typescript-eslint/eslint-plugin":"^8.35.0","@typescript-eslint/parser":"^8.32.0","@typescript-eslint/typescript-estree":"^8.26.1","@typescript/native":"npm:typescript@7.1.0-dev.20260818.1","@vitest/coverage-v8":"^4.1.8","@vitest/snapshot":"^1.5.0","@vscode/debugadapter":"^1.68.0","@vscode/debugprotocol":"^1.68.0","@vscode/dts":"^0.4.1","@vscode/lsif-language-service":"^0.1.0-pre.4","@vscode/test-cli":"^0.0.11","@vscode/test-electron":"^2.5.2","@vscode/test-web":"^0.0.81","@vscode/vsce":"3.6.0","copyfiles":"^2.4.1","csv-parse":"^6.0.0","dotenv":"^17.2.0","electron":"^42.5.0","esbuild":"0.28.1","fastq":"^1.19.1","glob":"^11.1.0","js-yaml":"^4.3.0","minimist":"^1.2.8","mobx":"^6.13.7","mobx-react-lite":"^4.1.0","mocha":"^11.7.1","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","monaco-editor":"0.44.0","npm-run-all":"^4.1.5","open":"^10.1.2","openai":"^6.7.0","outdent":"^0.8.0","picomatch":"^4.0.4","playwright":"^1.61.1","prettier":"^3.6.2","react":"^17.0.2","react-dom":"17.0.2","rimraf":"^6.0.1","run-script-os":"^1.1.6","shiki":"~1.15.0","sinon":"^21.0.0","source-map-support":"^0.5.21","tar":"^7.5.16","ts-dedent":"^2.2.0","tsx":"^4.22.4","typescript":"npm:@typescript/typescript6@^6.0.2","vite-plugin-wasm":"^3.6.0","vitest":"^4.1.8","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12","vscode-languageserver-types":"^3.17.5","yaml":"^2.8.0","yargs":"^17.7.2","zod":"3.25.76"},"dependencies":{"@anthropic-ai/sdk":"^0.82.0","@github/blackbird-external-ingest-utils":"^0.3.0","@github/copilot":"^1.0.73","@google/genai":"1.30.0","@humanwhocodes/gitignore-to-minimatch":"1.0.2","@microsoft/tiktokenizer":"^1.0.10","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.212.0","@opentelemetry/exporter-logs-otlp-grpc":"^0.219.0","@opentelemetry/exporter-logs-otlp-http":"^0.219.0","@opentelemetry/exporter-logs-otlp-proto":"^0.219.0","@opentelemetry/exporter-metrics-otlp-grpc":"^0.219.0","@opentelemetry/exporter-metrics-otlp-http":"^0.219.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.219.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.219.0","@opentelemetry/exporter-trace-otlp-http":"^0.219.0","@opentelemetry/exporter-trace-otlp-proto":"^0.219.0","@opentelemetry/resources":"^2.5.1","@opentelemetry/sdk-logs":"^0.212.0","@opentelemetry/sdk-metrics":"^2.5.1","@opentelemetry/sdk-trace-node":"^2.5.1","@opentelemetry/semantic-conventions":"^1.39.0","@sinclair/typebox":"^0.34.41","@vscode/copilot-api":"^0.5.2","@vscode/extension-telemetry":"^1.5.1","@vscode/l10n":"^0.0.18","@vscode/prompt-tsx":"^0.4.0-alpha.8","@vscode/tree-sitter-wasm":"0.0.5-php.2","@vscode/webview-ui-toolkit":"^1.3.1","@xterm/headless":"^5.5.0","ajv":"^8.18.0","applicationinsights":"^2.9.7","best-effort-json-parser":"^1.2.1","diff":"^8.0.3","express":"^5.2.1","ignore":"^7.0.5","isbinaryfile":"^5.0.4","jsonc-parser":"^3.3.1","lru-cache":"^11.1.0","markdown-it":"^14.2.0","minimatch":"^10.2.1","undici":"^7.24.1","vscode-tas-client":"^0.3.1","web-tree-sitter":"^0.23.0"},"overrides":{"string_decoder":"npm:string_decoder@1.2.0","yauzl":"^3.3.1","zod":"3.25.76"},"vscodeCommit":"94c8e2adc50e26ef70af85a0de3a9efed757acaa","allowScripts":{"esbuild@0.28.1":true,"keytar@7.9.0":true,"@playwright/browser-chromium@1.61.1":true,"@vscode/vsce-sign@2.1.0":true,"protobufjs":false,"fsevents@2.3.3":true,"fsevents@2.3.2":true},"isPreRelease":false,"originalEnabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","chatDebug","chatHooks","extensionsAny","newSymbolNamesProvider","interactive","codeActionAI","activeComment","commentReveal","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","documentFiltersExclusive","embeddings","findTextInFiles","findTextInFiles2","languageModelToolSupportsModel","findFiles2","textSearchProvider","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","chatParticipantAdditions","defaultChatParticipant","contribSourceControlInputBoxMenu","authLearnMore","testObserver","aiTextSearchProvider","chatParticipantPrivate","chatProvider","contribDebugCreateConfiguration","chatReferenceDiagnostic","textSearchProvider2","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelPricing","inlineCompletionsAdditions","chatStatusItem","chatInputNotification","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","languageModelThinkingPart","chatSessionsProvider","devDeviceId","contribEditorContentMenu","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","environmentPower","terminalTitle","toolInvocationApproveCombination","chatSessionCustomizationProvider"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/copilot","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":true},{"type":0,"identifier":{"id":"vscode.cpp"},"manifest":{"name":"cpp","displayName":"C/C++ Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in C/C++ files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"c","extensions":[".c",".i"],"aliases":["C","c"],"configuration":"./language-configuration.json"},{"id":"cpp","extensions":[".cpp",".cppm",".cc",".ccm",".cxx",".cxxm",".c++",".c++m",".hpp",".hh",".hxx",".h++",".h",".ii",".ino",".inl",".ipp",".ixx",".mpp",".mxx",".tpp",".txx",".hpp.in",".h.in"],"aliases":["C++","Cpp","cpp"],"configuration":"./language-configuration.json"},{"id":"cuda-cpp","extensions":[".cu",".cuh"],"aliases":["CUDA C++"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"c","scopeName":"source.c","path":"./syntaxes/c.tmLanguage.json"},{"language":"cpp","scopeName":"source.cpp.embedded.macro","path":"./syntaxes/cpp.embedded.macro.tmLanguage.json"},{"language":"cpp","scopeName":"source.cpp","path":"./syntaxes/cpp.tmLanguage.json"},{"scopeName":"source.c.platform","path":"./syntaxes/platform.tmLanguage.json"},{"language":"cuda-cpp","scopeName":"source.cuda-cpp","path":"./syntaxes/cuda-cpp.tmLanguage.json"}],"problemPatterns":[{"name":"nvcc-location","regexp":"^(.*)\\((\\d+)\\):\\s+(warning|error):\\s+(.*)","kind":"location","file":1,"location":2,"severity":3,"message":4}],"problemMatchers":[{"name":"nvcc","owner":"cuda-cpp","fileLocation":["relative","${workspaceFolder}"],"pattern":"$nvcc-location"}],"snippets":[{"language":"c","path":"./snippets/c.code-snippets"},{"language":"cpp","path":"./snippets/cpp.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/cpp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.csharp"},"manifest":{"name":"csharp","displayName":"C# Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in C# files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dotnet/csharp-tmLanguage grammars/csharp.tmLanguage ./syntaxes/csharp.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"configurationDefaults":{"[csharp]":{"editor.maxTokenizationLineLength":2500}},"languages":[{"id":"csharp","extensions":[".cs",".csx",".cake"],"aliases":["C#","csharp"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"csharp","scopeName":"source.cs","path":"./syntaxes/csharp.tmLanguage.json","tokenTypes":{"meta.interpolation":"other"},"unbalancedBracketScopes":["keyword.operator.relational.cs","keyword.operator.arrow.cs","punctuation.accessor.pointer.cs","keyword.operator.bitwise.shift.cs","keyword.operator.assignment.compound.bitwise.cs"]}],"snippets":[{"language":"csharp","path":"./snippets/csharp.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/csharp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.css"},"manifest":{"name":"css","displayName":"CSS Language Basics","description":"Provides syntax highlighting and bracket matching for CSS, LESS and SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin microsoft/vscode-css grammars/css.cson ./syntaxes/css.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"css","aliases":["CSS","css"],"extensions":[".css"],"mimetypes":["text/css"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"css","scopeName":"source.css","path":"./syntaxes/css.tmLanguage.json","tokenTypes":{"meta.function.url string.quoted":"other"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/css","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.css-language-features"},"manifest":{"name":"css-language-features","displayName":"CSS Language Features","description":"Provides rich language support for CSS, LESS and SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.77.0"},"icon":"icons/css.png","activationEvents":["onLanguage:css","onLanguage:less","onLanguage:scss"],"main":"./client/dist/node/cssClientMain","browser":"./client/dist/browser/cssClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"categories":["Programming Languages"],"contributes":{"configuration":[{"order":22,"id":"css","title":"CSS","properties":{"css.customData":{"type":"array","markdownDescription":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-css-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its CSS support for CSS custom properties (variables), at-rules, pseudo-classes, and pseudo-elements you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","default":[],"items":{"type":"string"},"scope":"resource"},"css.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"css.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"css.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"css.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in CSS hovers."},"css.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in CSS hovers."},"css.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"css.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"css.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"css.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"css.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"css.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"css.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"css.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"css.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"css.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"css.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"css.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"css.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"css.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"css.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"css.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"css.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"css.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"css.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"css.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"css.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the CSS language server."},"css.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default CSS formatter."},"css.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"css.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"css.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"css.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"css.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"css.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#css.format.preserveNewLines#` is enabled."}}},{"id":"scss","order":24,"title":"SCSS (Sass)","properties":{"scss.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"scss.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"scss.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"scss.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in SCSS hovers."},"scss.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in SCSS hovers."},"scss.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"scss.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"scss.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"scss.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"scss.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"scss.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"scss.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"scss.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"scss.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"scss.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"scss.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"scss.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"scss.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"scss.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"scss.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"scss.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"scss.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"scss.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"scss.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"scss.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"scss.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default SCSS formatter."},"scss.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"scss.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"scss.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"scss.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"scss.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"scss.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#scss.format.preserveNewLines#` is enabled."}}},{"id":"less","order":23,"type":"object","title":"LESS","properties":{"less.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"less.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"less.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"less.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in LESS hovers."},"less.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in LESS hovers."},"less.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"less.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"less.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"less.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"less.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"less.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"less.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"less.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"less.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"less.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"less.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"less.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"less.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"less.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"less.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"less.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"less.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"less.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"less.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"less.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"less.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default LESS formatter."},"less.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"less.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"less.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"less.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"less.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"less.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#less.format.preserveNewLines#` is enabled."}}}],"configurationDefaults":{"[css]":{"editor.suggest.insertMode":"replace"},"[scss]":{"editor.suggest.insertMode":"replace"},"[less]":{"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.css-data.json","url":"https://raw.githubusercontent.com/microsoft/vscode-css-languageservice/master/docs/customData.schema.json"},{"fileMatch":"package.json","url":"./schemas/package.schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/css-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.dart"},"manifest":{"name":"dart","displayName":"Dart Language Basics","description":"Provides syntax highlighting & bracket matching in Dart files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dart-lang/dart-syntax-highlight grammars/dart.json ./syntaxes/dart.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dart","extensions":[".dart"],"aliases":["Dart"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dart","scopeName":"source.dart","path":"./syntaxes/dart.tmLanguage.json"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/dart","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.debug-auto-launch"},"manifest":{"name":"debug-auto-launch","displayName":"Node Debug Auto-attach","description":"Helper for auto-attach feature when node-debug extensions are not active.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.5.0"},"icon":"media/icon.png","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onStartupFinished"],"main":"./dist/extension","contributes":{"commands":[{"command":"extension.node-debug.toggleAutoAttach","title":"Toggle Auto Attach","category":"Debug"}]},"prettier":{"printWidth":100,"trailingComma":"all","singleQuote":true,"arrowParens":"avoid"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/debug-auto-launch","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.debug-server-ready"},"manifest":{"name":"debug-server-ready","displayName":"Server Ready Action","description":"Open URI in browser if server under debugging is ready.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.32.0"},"icon":"media/icon.png","activationEvents":["onDebugResolve"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["terminalDataWriteEvent"],"main":"./dist/extension","contributes":{"debuggers":[{"type":"*","configurationAttributes":{"launch":{"properties":{"serverReadyAction":{"oneOf":[{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"openExternally","killOnServerStop":false},"properties":{"action":{"type":"string","enum":["openExternally","openIntegratedBrowser"],"enumDescriptions":["Open URI externally with the default application.","Open URI in the integrated browser."],"markdownDescription":"What to do with the URI when the server is ready.","default":"openExternally"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"uriFormat":{"type":"string","markdownDescription":"A format string used when constructing the URI from a port number. The first '%s' is substituted with the port number.","default":"http://localhost:%s"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"debugWithEdge","pattern":"listening on port ([0-9]+)","uriFormat":"http://localhost:%s","webRoot":"${workspaceFolder}","killOnServerStop":false},"properties":{"action":{"type":"string","enum":["debugWithChrome","debugWithEdge"],"enumDescriptions":["Start debugging with the 'Debugger for Chrome'."],"markdownDescription":"What to do with the URI when the server is ready.","default":"debugWithEdge"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"uriFormat":{"type":"string","markdownDescription":"A format string used when constructing the URI from a port number. The first '%s' is substituted with the port number.","default":"http://localhost:%s"},"webRoot":{"type":"string","markdownDescription":"Value passed to the debug configuration for the 'Debugger for Chrome'.","default":"${workspaceFolder}"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"startDebugging","name":"","killOnServerStop":false},"required":["name"],"properties":{"action":{"type":"string","enum":["startDebugging"],"enumDescriptions":["Run another launch configuration."],"markdownDescription":"What to do with the URI when the server is ready.","default":"startDebugging"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"name":{"type":"string","markdownDescription":"Name of the launch configuration to run.","default":"Launch Browser"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"startDebugging","config":{"type":"node","request":"launch"},"killOnServerStop":false},"required":["config"],"properties":{"action":{"type":"string","enum":["startDebugging"],"enumDescriptions":["Run another launch configuration."],"markdownDescription":"What to do with the URI when the server is ready.","default":"startDebugging"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"config":{"type":"object","markdownDescription":"The debug configuration to run.","default":{}},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}}]}}}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalDataWriteEvent"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/debug-server-ready","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.diff"},"manifest":{"name":"diff","displayName":"Diff Language Basics","description":"Provides syntax highlighting & bracket matching in Diff files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/diff.tmbundle Syntaxes/Diff.plist ./syntaxes/diff.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"diff","aliases":["Diff","diff"],"extensions":[".diff",".patch",".rej"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"diff","scopeName":"source.diff","path":"./syntaxes/diff.tmLanguage.json"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/diff","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.docker"},"manifest":{"name":"docker","displayName":"Docker Language Basics","description":"Provides syntax highlighting and bracket matching in Docker files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dockerfile","extensions":[".dockerfile",".containerfile"],"filenames":["Dockerfile","Containerfile"],"filenamePatterns":["Dockerfile.*","Containerfile.*"],"aliases":["Docker","Dockerfile","Containerfile"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dockerfile","scopeName":"source.dockerfile","path":"./syntaxes/docker.tmLanguage.json"}],"configurationDefaults":{"[dockerfile]":{"editor.quickSuggestions":{"strings":true}}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/docker","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.dotenv"},"manifest":{"name":"dotenv","displayName":"Dotenv Language Basics","description":"Provides syntax highlighting and bracket matching in dotenv files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dotenv-org/dotenv-vscode syntaxes/dotenv.tmLanguage.json ./syntaxes/dotenv.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dotenv","extensions":[".env"],"filenames":[".env",".flaskenv","user-dirs.dirs"],"filenamePatterns":[".env.*"],"aliases":["Dotenv"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dotenv","scopeName":"source.dotenv","path":"./syntaxes/dotenv.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/dotenv","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.emmet"},"manifest":{"name":"emmet","displayName":"Emmet","description":"Emmet support for VS Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.13.0"},"icon":"images/icon.png","categories":["Other"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"activationEvents":["onCommand:emmet.expandAbbreviation","onLanguage"],"main":"./dist/node/emmetNodeMain","browser":"./dist/browser/emmetBrowserMain","contributes":{"configuration":{"type":"object","title":"Emmet","properties":{"emmet.showExpandedAbbreviation":{"type":["string"],"enum":["never","always","inMarkupAndStylesheetFilesOnly"],"default":"always","markdownDescription":"Shows expanded Emmet abbreviations as suggestions.\nThe option `\"inMarkupAndStylesheetFilesOnly\"` applies to html, haml, jade, slim, xml, xsl, css, scss, sass, less and stylus.\nThe option `\"always\"` applies to all parts of the file regardless of markup/css."},"emmet.showAbbreviationSuggestions":{"type":"boolean","default":true,"scope":"language-overridable","markdownDescription":"Shows possible Emmet abbreviations as suggestions. Not applicable in stylesheets or when emmet.showExpandedAbbreviation is set to `\"never\"`."},"emmet.includeLanguages":{"type":"object","additionalProperties":{"type":"string"},"default":{},"markdownDescription":"Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and Emmet supported language.\n For example: `{\"vue-html\": \"html\", \"javascript\": \"javascriptreact\"}`"},"emmet.variables":{"type":"object","properties":{"lang":{"type":"string","default":"en"},"charset":{"type":"string","default":"UTF-8"}},"additionalProperties":{"type":"string"},"default":{},"markdownDescription":"Variables to be used in Emmet snippets."},"emmet.syntaxProfiles":{"type":"object","default":{},"markdownDescription":"Define profile for specified syntax or use your own profile with specific rules."},"emmet.excludeLanguages":{"type":"array","items":{"type":"string"},"default":["markdown"],"markdownDescription":"An array of languages where Emmet abbreviations should not be expanded."},"emmet.extensionsPath":{"type":"array","items":{"type":"string","markdownDescription":"A path containing Emmet syntaxProfiles and/or snippets."},"default":[],"scope":"machine-overridable","markdownDescription":"An array of paths, where each path can contain Emmet syntaxProfiles and/or snippet files.\nIn case of conflicts, the profiles/snippets of later paths will override those of earlier paths.\nSee https://code.visualstudio.com/docs/editor/emmet for more information and an example snippet file."},"emmet.triggerExpansionOnTab":{"type":"boolean","default":false,"scope":"language-overridable","markdownDescription":"When enabled, Emmet abbreviations are expanded when pressing TAB, even when completions do not show up. When disabled, completions that show up can still be accepted by pressing TAB."},"emmet.useInlineCompletions":{"type":"boolean","default":false,"markdownDescription":"If `true`, Emmet will use inline completions to suggest expansions. To prevent the non-inline completion item provider from showing up as often while this setting is `true`, turn `#editor.quickSuggestions#` to `inline` or `off` for the `other` item."},"emmet.preferences":{"type":"object","default":{},"markdownDescription":"Preferences used to modify behavior of some actions and resolvers of Emmet.","properties":{"css.intUnit":{"type":"string","default":"px","markdownDescription":"Default unit for integer values."},"css.floatUnit":{"type":"string","default":"em","markdownDescription":"Default unit for float values."},"css.propertyEnd":{"type":"string","default":";","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations."},"sass.propertyEnd":{"type":"string","default":"","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations in Sass files."},"stylus.propertyEnd":{"type":"string","default":"","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations in Stylus files."},"css.valueSeparator":{"type":"string","default":": ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations."},"sass.valueSeparator":{"type":"string","default":": ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations in Sass files."},"stylus.valueSeparator":{"type":"string","default":" ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations in Stylus files."},"bem.elementSeparator":{"type":"string","default":"__","markdownDescription":"Element separator used for classes when using the BEM filter."},"bem.modifierSeparator":{"type":"string","default":"_","markdownDescription":"Modifier separator used for classes when using the BEM filter."},"filter.commentBefore":{"type":"string","default":"","markdownDescription":"A definition of comment that should be placed before matched element when comment filter is applied."},"filter.commentAfter":{"type":"string","default":"\n","markdownDescription":"A definition of comment that should be placed after matched element when comment filter is applied."},"filter.commentTrigger":{"type":"array","default":["id","class"],"markdownDescription":"A comma-separated list of attribute names that should exist in the abbreviation for the comment filter to be applied."},"format.noIndentTags":{"type":"array","default":["html"],"markdownDescription":"An array of tag names that should never get inner indentation."},"format.forceIndentationForTags":{"type":"array","default":["body"],"markdownDescription":"An array of tag names that should always get inner indentation."},"profile.allowCompactBoolean":{"type":"boolean","default":false,"markdownDescription":"If `true`, compact notation of boolean attributes are produced."},"css.webkitProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `webkit` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `webkit` prefix."},"css.mozProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `moz` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `moz` prefix."},"css.oProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `o` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `o` prefix."},"css.msProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `ms` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `ms` prefix."},"css.fuzzySearchMinScore":{"type":"number","default":0.3,"markdownDescription":"The minimum score (from 0 to 1) that fuzzy-matched abbreviation should achieve. Lower values may produce many false-positive matches, higher values may reduce possible matches."},"output.inlineBreak":{"type":"number","default":0,"markdownDescription":"The number of sibling inline elements needed for line breaks to be placed between those elements. If `0`, inline elements are always expanded onto a single line."},"output.reverseAttributes":{"type":"boolean","default":false,"markdownDescription":"If `true`, reverses attribute merging directions when resolving snippets."},"output.selfClosingStyle":{"type":"string","enum":["html","xhtml","xml"],"default":"html","markdownDescription":"Style of self-closing tags: html (`
`), xml (`
`) or xhtml (`
`)."},"css.color.short":{"type":"boolean","default":true,"markdownDescription":"If `true`, color values like `#f` will be expanded to `#fff` instead of `#ffffff`."}}},"emmet.showSuggestionsAsSnippets":{"type":"boolean","default":false,"markdownDescription":"If `true`, then Emmet suggestions will show up as snippets allowing you to order them as per `#editor.snippetSuggestions#` setting."},"emmet.optimizeStylesheetParsing":{"type":"boolean","default":true,"markdownDescription":"When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in CSS/SCSS/Less files is parsed."}}},"commands":[{"command":"editor.emmet.action.wrapWithAbbreviation","title":"Wrap with Abbreviation","category":"Emmet"},{"command":"editor.emmet.action.removeTag","title":"Remove Tag","category":"Emmet"},{"command":"editor.emmet.action.updateTag","title":"Update Tag","category":"Emmet"},{"command":"editor.emmet.action.matchTag","title":"Go to Matching Pair","category":"Emmet"},{"command":"editor.emmet.action.balanceIn","title":"Balance (inward)","category":"Emmet"},{"command":"editor.emmet.action.balanceOut","title":"Balance (outward)","category":"Emmet"},{"command":"editor.emmet.action.prevEditPoint","title":"Go to Previous Edit Point","category":"Emmet"},{"command":"editor.emmet.action.nextEditPoint","title":"Go to Next Edit Point","category":"Emmet"},{"command":"editor.emmet.action.mergeLines","title":"Merge Lines","category":"Emmet"},{"command":"editor.emmet.action.selectPrevItem","title":"Select Previous Item","category":"Emmet"},{"command":"editor.emmet.action.selectNextItem","title":"Select Next Item","category":"Emmet"},{"command":"editor.emmet.action.splitJoinTag","title":"Split/Join Tag","category":"Emmet"},{"command":"editor.emmet.action.toggleComment","title":"Toggle Comment","category":"Emmet"},{"command":"editor.emmet.action.evaluateMathExpression","title":"Evaluate Math Expression","category":"Emmet"},{"command":"editor.emmet.action.updateImageSize","title":"Update Image Size","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByOneTenth","title":"Increment by 0.1","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByOne","title":"Increment by 1","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByTen","title":"Increment by 10","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByOneTenth","title":"Decrement by 0.1","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByOne","title":"Decrement by 1","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByTen","title":"Decrement by 10","category":"Emmet"},{"command":"editor.emmet.action.reflectCSSValue","title":"Reflect CSS Value","category":"Emmet"},{"command":"workbench.action.showEmmetCommands","title":"Show Emmet Commands","category":""}],"menus":{"commandPalette":[{"command":"editor.emmet.action.wrapWithAbbreviation","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.removeTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.updateTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.matchTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.balanceIn","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.balanceOut","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.prevEditPoint","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.nextEditPoint","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.mergeLines","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.selectPrevItem","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.selectNextItem","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.splitJoinTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.toggleComment","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.evaluateMathExpression","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.updateImageSize","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByOneTenth","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByOne","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByTen","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByOneTenth","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByOne","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByTen","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.reflectCSSValue","when":"activeEditor && !activeEditorIsReadonly"}]}},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/emmet","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.extension-editing"},"manifest":{"name":"extension-editing","displayName":"Extension Authoring","description":"Provides linting capabilities for authoring extensions.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.4.0"},"icon":"images/icon.png","activationEvents":["onLanguage:json","onLanguage:markdown"],"main":"./dist/extensionEditingMain","browser":"./dist/browser/extensionEditingBrowserMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"jsonValidation":[{"fileMatch":"package.json","url":"vscode://schemas/vscode-extensions"},{"fileMatch":"*language-configuration.json","url":"vscode://schemas/language-configuration"},{"fileMatch":["*icon-theme.json","!*product-icon-theme.json"],"url":"vscode://schemas/icon-theme"},{"fileMatch":"*product-icon-theme.json","url":"vscode://schemas/product-icon-theme"},{"fileMatch":"*color-theme.json","url":"vscode://schemas/color-theme"}],"languages":[{"id":"ignore","filenames":[".vscodeignore"]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/extension-editing","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.fsharp"},"manifest":{"name":"fsharp","displayName":"F# Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in F# files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin ionide/ionide-fsgrammar grammars/fsharp.json ./syntaxes/fsharp.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"fsharp","extensions":[".fs",".fsi",".fsx",".fsscript"],"aliases":["F#","FSharp","fsharp"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"fsharp","scopeName":"source.fsharp","path":"./syntaxes/fsharp.tmLanguage.json"}],"snippets":[{"language":"fsharp","path":"./snippets/fsharp.code-snippets"}],"configurationDefaults":{"[fsharp]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/fsharp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.git"},"manifest":{"name":"git","displayName":"Git","description":"Git SCM Integration","publisher":"vscode","license":"MIT","version":"10.0.0","engines":{"vscode":"^1.5.0"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","canonicalUriProvider","contribEditSessions","contribEditorContentMenu","contribMergeEditorMenus","contribMultiDiffEditorMenus","contribDiffEditorGutterToolBarMenus","contribSourceControlArtifactGroupMenu","contribSourceControlArtifactMenu","contribSourceControlHistoryItemMenu","contribSourceControlHistoryTitleMenu","contribSourceControlInputBoxMenu","contribSourceControlTitleMenu","contribViewsWelcome","editSessionIdentityProvider","envIsConnectionMetered","findFiles2","quickDiffProvider","quickPickSortByLabel","scmActionButton","scmArtifactProvider","scmHistoryProvider","scmMultiDiffEditor","scmProviderOptions","scmSelectedProvider","scmTextDocument","scmValidation","statusBarItemTooltip","taskRunOptions","tabInputMultiDiff","tabInputTextMerge","textEditorDiffInformation","timeline","workspaceTrust"],"categories":["Other"],"activationEvents":["*","onEditSession:file","onFileSystem:git","onFileSystem:git-show"],"extensionDependencies":["vscode.git-base"],"main":"./dist/main","icon":"resources/icons/git.png","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":false}},"contributes":{"commands":[{"command":"git.continueInLocalClone","title":"Clone Repository Locally and Open on Desktop...","category":"Git","icon":"$(repo-clone)","enablement":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && remoteName"},{"command":"git.clone","title":"Clone","category":"Git","enablement":"!operationInProgress"},{"command":"git.cloneRecursive","title":"Clone (Recursive)","category":"Git","enablement":"!operationInProgress"},{"command":"git.init","title":"Initialize Repository","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.openRepository","title":"Open Repository","category":"Git","enablement":"!operationInProgress"},{"command":"git.reopenClosedRepositories","title":"Reopen Closed Repositories...","icon":"$(repo)","category":"Git","enablement":"!operationInProgress && git.closedRepositoryCount != 0"},{"command":"git.close","title":"Close Repository","category":"Git","enablement":"!operationInProgress"},{"command":"git.closeOtherRepositories","title":"Close Other Repositories","category":"Git","enablement":"!operationInProgress"},{"command":"git.openWorktree","title":"Open Worktree in Current Window","category":"Git","enablement":"!operationInProgress"},{"command":"git.openWorktreeInNewWindow","title":"Open Worktree in New Window","category":"Git","enablement":"!operationInProgress"},{"command":"git.refresh","title":"Refresh","category":"Git","icon":"$(refresh)","enablement":"!operationInProgress"},{"command":"git.compareWithWorkspace","title":"Compare with Workspace","category":"Git"},{"command":"git.openChange","title":"Open Changes","category":"Git","icon":"$(compare-changes)"},{"command":"git.openAllChanges","title":"Open All Changes","category":"Git"},{"command":"git.openFile","title":"Open File","category":"Git","icon":"$(go-to-file)"},{"command":"git.openFile2","title":"Open File","category":"Git","icon":"$(go-to-file)"},{"command":"git.openHEADFile","title":"Open File (HEAD)","category":"Git"},{"command":"git.stage","title":"Stage Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAll","title":"Stage All Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllTracked","title":"Stage All Tracked Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllUntracked","title":"Stage All Untracked Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllMerge","title":"Stage All Merge Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageSelectedRanges","title":"Stage Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.diff.stageHunk","title":"Stage Block","category":"Git","icon":"$(plus)"},{"command":"git.diff.stageSelection","title":"Stage Selection","category":"Git","icon":"$(plus)"},{"command":"git.revertSelectedRanges","title":"Revert Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.stageChange","title":"Stage Change","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageFile","title":"Stage Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.revertChange","title":"Revert Change","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.unstage","title":"Unstage Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageAll","title":"Unstage All Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageSelectedRanges","title":"Unstage Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.unstageChange","title":"Unstage Change","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageFile","title":"Unstage Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.clean","title":"Discard Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAll","title":"Discard All Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAllTracked","title":"Discard All Tracked Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAllUntracked","title":"Discard All Untracked Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.rename","title":"Rename","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.delete","title":"Delete","category":"Git","icon":"$(trash)","enablement":"!operationInProgress"},{"command":"git.commit","title":"Commit","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitAmend","title":"Commit (Amend)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitSigned","title":"Commit (Signed Off)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitStaged","title":"Commit Staged","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitEmpty","title":"Commit Empty","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedSigned","title":"Commit Staged (Signed Off)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedAmend","title":"Commit Staged (Amend)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAll","title":"Commit All","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllSigned","title":"Commit All (Signed Off)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllAmend","title":"Commit All (Amend)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitNoVerify","title":"Commit (No Verify)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitStagedNoVerify","title":"Commit Staged (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitEmptyNoVerify","title":"Commit Empty (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedSignedNoVerify","title":"Commit Staged (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAmendNoVerify","title":"Commit (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitSignedNoVerify","title":"Commit (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedAmendNoVerify","title":"Commit Staged (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllNoVerify","title":"Commit All (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllSignedNoVerify","title":"Commit All (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllAmendNoVerify","title":"Commit All (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitMessageAccept","title":"Commit","category":"Git"},{"command":"git.commitMessageDiscard","title":"Cancel","icon":"$(close)","category":"Git"},{"command":"git.restoreCommitTemplate","title":"Restore Commit Template","category":"Git","enablement":"!operationInProgress"},{"command":"git.undoCommit","title":"Undo Last Commit","category":"Git","enablement":"!operationInProgress"},{"command":"git.checkout","title":"Checkout to...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.checkout","title":"Checkout","category":"Git","enablement":"!operationInProgress"},{"command":"git.checkoutDetached","title":"Checkout to (Detached)...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.checkoutDetached","title":"Checkout (Detached)","category":"Git","enablement":"!operationInProgress"},{"command":"git.branch","title":"Create Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.branchFrom","title":"Create Branch From...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteBranch","title":"Delete Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.deleteBranch","title":"Delete Branch","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteRemoteBranch","title":"Delete Remote Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.renameBranch","title":"Rename Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.merge","title":"Merge...","category":"Git","enablement":"!operationInProgress"},{"command":"git.mergeAbort","title":"Abort Merge","category":"Git","enablement":"gitMergeInProgress"},{"command":"git.rebase","title":"Rebase Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.createTag","title":"Create Tag...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteTag","title":"Delete Tag...","category":"Git","enablement":"!operationInProgress"},{"command":"git.migrateWorktreeChanges","title":"Migrate Worktree Changes...","category":"Git","enablement":"!operationInProgress"},{"command":"git.createWorktree","title":"Create Worktree...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteWorktree","title":"Delete Worktree...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteWorktree2","title":"Delete Worktree","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.deleteTag","title":"Delete Tag","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteRemoteTag","title":"Delete Remote Tag...","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetch","title":"Fetch","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchPrune","title":"Fetch (Prune)","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchAll","title":"Fetch From All Remotes","icon":"$(git-fetch)","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchRef","title":"Fetch","icon":"$(git-fetch)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pull","title":"Pull","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullRebase","title":"Pull (Rebase)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullFrom","title":"Pull from...","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullRef","title":"Pull","icon":"$(repo-pull)","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefInFilter && scmCurrentHistoryItemRefHasRemote"},{"command":"git.push","title":"Push","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushForce","title":"Push (Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushTo","title":"Push to...","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushToForce","title":"Push to... (Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushTags","title":"Push Tags","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushWithTags","title":"Push (Follow Tags)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushWithTagsForce","title":"Push (Follow Tags, Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushRef","title":"Push","icon":"$(repo-push)","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefInFilter && scmCurrentHistoryItemRefHasRemote"},{"command":"git.cherryPick","title":"Cherry Pick...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.cherryPick","title":"Cherry Pick","category":"Git","enablement":"!operationInProgress"},{"command":"git.cherryPickAbort","title":"Abort Cherry Pick","category":"Git","enablement":"!operationInProgress"},{"command":"git.addRemote","title":"Add Remote...","category":"Git","enablement":"!operationInProgress"},{"command":"git.removeRemote","title":"Remove Remote","category":"Git","enablement":"!operationInProgress"},{"command":"git.sync","title":"Sync","category":"Git","enablement":"!operationInProgress"},{"command":"git.syncRebase","title":"Sync (Rebase)","category":"Git","enablement":"!operationInProgress"},{"command":"git.publish","title":"Publish Branch...","category":"Git","icon":"$(cloud-upload)","enablement":"!operationInProgress"},{"command":"git.showOutput","title":"Show Git Output","category":"Git"},{"command":"git.ignore","title":"Add to .gitignore","category":"Git","enablement":"!operationInProgress"},{"command":"git.revealInExplorer","title":"Reveal in Explorer View","category":"Git"},{"command":"git.revealFileInOS.linux","title":"Open Containing Folder","category":"Git"},{"command":"git.revealFileInOS.mac","title":"Reveal in Finder","category":"Git"},{"command":"git.revealFileInOS.windows","title":"Reveal in File Explorer","category":"Git"},{"command":"git.stashIncludeUntracked","title":"Stash (Include Untracked)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stash","title":"Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashStaged","title":"Stash Staged","category":"Git","enablement":"!operationInProgress && gitVersion2.35"},{"command":"git.stashPop","title":"Pop Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashPopLatest","title":"Pop Latest Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashPopEditor","title":"Pop Stash","icon":"$(git-stash-pop)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApply","title":"Apply Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApplyLatest","title":"Apply Latest Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApplyEditor","title":"Apply Stash","icon":"$(git-stash-apply)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDrop","title":"Drop Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDropAll","title":"Drop All Stashes...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDropEditor","title":"Drop Stash","icon":"$(trash)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashView","title":"View Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.timeline.openDiff","title":"Open Changes","icon":"$(compare-changes)","category":"Git"},{"command":"git.timeline.copyCommitId","title":"Copy Commit Hash","category":"Git"},{"command":"git.timeline.copyCommitMessage","title":"Copy Commit Message","category":"Git"},{"command":"git.timeline.selectForCompare","title":"Select for Compare","category":"Git"},{"command":"git.timeline.compareWithSelected","title":"Compare with Selected","category":"Git"},{"command":"git.timeline.viewCommit","title":"Open Commit","icon":"$(diff-multiple)","category":"Git"},{"command":"git.rebaseAbort","title":"Abort Rebase","category":"Git","enablement":"gitRebaseInProgress"},{"command":"git.closeAllDiffEditors","title":"Close All Diff Editors","category":"Git","enablement":"!operationInProgress"},{"command":"git.closeAllUnmodifiedEditors","title":"Close All Unmodified Editors","category":"Git","enablement":"!operationInProgress"},{"command":"git.api.getRepositories","title":"Get Repositories","category":"Git API"},{"command":"git.api.getRepositoryState","title":"Get Repository State","category":"Git API"},{"command":"git.api.getRemoteSources","title":"Get Remote Sources","category":"Git API"},{"command":"git.acceptMerge","title":"Complete Merge","category":"Git","enablement":"isMergeEditor && mergeEditorResultUri in git.mergeChanges"},{"command":"git.openMergeEditor","title":"Resolve in Merge Editor","category":"Git"},{"command":"git.runGitMerge","title":"Compute Conflicts With Git","category":"Git","enablement":"isMergeEditor"},{"command":"git.runGitMergeDiff3","title":"Compute Conflicts With Git (Diff3)","category":"Git","enablement":"isMergeEditor"},{"command":"git.manageUnsafeRepositories","title":"Manage Unsafe Repositories","category":"Git"},{"command":"git.openRepositoriesInParentFolders","title":"Open Repositories In Parent Folders","category":"Git"},{"command":"git.viewChanges","title":"Open Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewStagedChanges","title":"Open Staged Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewUntrackedChanges","title":"Open Untracked Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewCommit","title":"Open Commit","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.copyCommitId","title":"Copy Commit Hash","category":"Git"},{"command":"git.copyCommitMessage","title":"Copy Commit Message","category":"Git"},{"command":"git.blame.toggleEditorDecoration","title":"Toggle Git Blame Editor Decoration","category":"Git"},{"command":"git.blame.toggleStatusBarItem","title":"Toggle Git Blame Status Bar Item","category":"Git"},{"command":"git.graph.compareRef","title":"Compare with...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.compareWithRemote","title":"Compare with Remote","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefHasRemote"},{"command":"git.graph.compareWithMergeBase","title":"Compare with Merge Base","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefHasBase"},{"command":"git.repositories.checkout","title":"Checkout","icon":"$(target)","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.checkoutDetached","title":"Checkout (Detached)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.compareRef","title":"Compare with...","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createBranch","title":"Create Branch...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createTag","title":"Create Tag...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.merge","title":"Merge","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.rebase","title":"Rebase","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.deleteBranch","title":"Delete","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.deleteTag","title":"Delete","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.createFrom","title":"Create from...","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashView","title":"View Stash","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashApply","title":"Apply Stash","icon":"$(git-stash-apply)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashPop","title":"Pop Stash","icon":"$(git-stash-pop)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashDrop","title":"Drop Stash","icon":"$(trash)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createWorktree","title":"Create Worktree...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.openWorktree","title":"Open","icon":"$(folder-opened)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.openWorktreeInNewWindow","title":"Open in New Window","icon":"$(folder-opened)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.deleteWorktree","title":"Delete","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.worktreeCopyBranchName","title":"Copy Branch Name","category":"Git"},{"command":"git.repositories.worktreeCopyCommitHash","title":"Copy Commit Hash","category":"Git"},{"command":"git.repositories.worktreeCopyPath","title":"Copy Worktree Path","category":"Git"},{"command":"git.repositories.copyCommitHash","title":"Copy Commit Hash","category":"Git"},{"command":"git.repositories.copyBranchName","title":"Copy Branch Name","category":"Git"},{"command":"git.repositories.copyTagName","title":"Copy Tag Name","category":"Git"},{"command":"git.repositories.copyStashName","title":"Copy Stash Name","category":"Git"},{"command":"git.repositories.stashCopyBranchName","title":"Copy Branch Name","category":"Git"}],"continueEditSession":[{"command":"git.continueInLocalClone","qualifiedName":"Continue Working in New Local Clone","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && remoteName","remoteGroup":"remote_42_git_0_local@0"}],"keybindings":[{"command":"git.stageSelectedRanges","key":"ctrl+k ctrl+alt+s","mac":"cmd+k cmd+alt+s","when":"editorTextFocus && resourceScheme == file"},{"command":"git.unstageSelectedRanges","key":"ctrl+k ctrl+n","mac":"cmd+k cmd+n","when":"editorTextFocus && isInDiffEditor && isInDiffRightEditor && resourceScheme == git"},{"command":"git.revertSelectedRanges","key":"ctrl+k ctrl+r","mac":"cmd+k cmd+r","when":"editorTextFocus && resourceScheme == file"}],"menus":{"commandPalette":[{"command":"git.continueInLocalClone","when":"false"},{"command":"git.clone","when":"config.git.enabled && !git.missing"},{"command":"git.cloneRecursive","when":"config.git.enabled && !git.missing"},{"command":"git.init","when":"config.git.enabled && !git.missing && remoteName != 'codespaces'"},{"command":"git.openRepository","when":"config.git.enabled && !git.missing"},{"command":"git.close","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.closeOtherRepositories","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.openWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.openWorktreeInNewWindow","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.refresh","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.openFile","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceHasChanges"},{"command":"git.openHEADFile","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceHasChanges"},{"command":"git.openChange","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stage","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllTracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllMerge","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.stageChange","when":"false"},{"command":"git.revertSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.revertChange","when":"false"},{"command":"git.openFile2","when":"false"},{"command":"git.unstage","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.unstageAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.unstageSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == git"},{"command":"git.unstageChange","when":"false"},{"command":"git.clean","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAllTracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAllUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.rename","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceRepository"},{"command":"git.delete","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.commit","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStaged","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitEmpty","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAllSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAllAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.rebaseAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitRebaseInProgress"},{"command":"git.commitNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitEmptyNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.restoreCommitTemplate","when":"false"},{"command":"git.commitMessageAccept","when":"false"},{"command":"git.commitMessageDiscard","when":"false"},{"command":"git.revealInExplorer","when":"false"},{"command":"git.revealFileInOS.linux","when":"false"},{"command":"git.revealFileInOS.mac","when":"false"},{"command":"git.revealFileInOS.windows","when":"false"},{"command":"git.undoCommit","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.checkout","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.branch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.branchFrom","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteRemoteBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.renameBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cherryPick","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cherryPickAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitCherryPickInProgress"},{"command":"git.pull","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pullFrom","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pullRebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.merge","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.mergeAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitMergeInProgress"},{"command":"git.rebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.createTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.migrateWorktreeChanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.createWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.openWorktree","when":"false"},{"command":"git.openWorktreeInNewWindow","when":"false"},{"command":"git.deleteWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteWorktree2","when":"false"},{"command":"git.deleteRemoteTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetchPrune","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetchAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.push","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushTo","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushToForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushWithTags","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushWithTagsForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushTags","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.addRemote","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.removeRemote","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.sync","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.syncRebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.publish","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.showOutput","when":"config.git.enabled"},{"command":"git.ignore","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceRepository"},{"command":"git.stashIncludeUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stash","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashStaged","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitVersion2.35"},{"command":"git.stashPop","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashPopLatest","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashPopEditor","when":"false"},{"command":"git.stashApply","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashApplyLatest","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashApplyEditor","when":"false"},{"command":"git.stashDrop","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashDropAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashDropEditor","when":"false"},{"command":"git.timeline.openDiff","when":"false"},{"command":"git.timeline.copyCommitId","when":"false"},{"command":"git.timeline.copyCommitMessage","when":"false"},{"command":"git.timeline.selectForCompare","when":"false"},{"command":"git.timeline.compareWithSelected","when":"false"},{"command":"git.timeline.viewCommit","when":"false"},{"command":"git.closeAllDiffEditors","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.api.getRepositories","when":"false"},{"command":"git.api.getRepositoryState","when":"false"},{"command":"git.api.getRemoteSources","when":"false"},{"command":"git.openMergeEditor","when":"false"},{"command":"git.manageUnsafeRepositories","when":"config.git.enabled && !git.missing && git.unsafeRepositoryCount != 0"},{"command":"git.openRepositoriesInParentFolders","when":"config.git.enabled && !git.missing && git.parentRepositoryCount != 0"},{"command":"git.stashView","when":"config.git.enabled && !git.missing"},{"command":"git.viewChanges","when":"config.git.enabled && !git.missing"},{"command":"git.viewStagedChanges","when":"config.git.enabled && !git.missing"},{"command":"git.viewUntrackedChanges","when":"config.git.enabled && !git.missing && config.git.untrackedChanges == separate"},{"command":"git.viewCommit","when":"false"},{"command":"git.stageFile","when":"false"},{"command":"git.unstageFile","when":"false"},{"command":"git.fetchRef","when":"false"},{"command":"git.pullRef","when":"false"},{"command":"git.pushRef","when":"false"},{"command":"git.copyCommitId","when":"false"},{"command":"git.copyCommitMessage","when":"false"},{"command":"git.graph.checkout","when":"false"},{"command":"git.graph.checkoutDetached","when":"false"},{"command":"git.graph.deleteBranch","when":"false"},{"command":"git.graph.compareRef","when":"false"},{"command":"git.graph.deleteTag","when":"false"},{"command":"git.graph.cherryPick","when":"false"},{"command":"git.graph.compareWithMergeBase","when":"false"},{"command":"git.graph.compareWithRemote","when":"false"},{"command":"git.diff.stageHunk","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"},{"command":"git.diff.stageSelection","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"},{"command":"git.repositories.checkout","when":"false"},{"command":"git.repositories.checkoutDetached","when":"false"},{"command":"git.repositories.compareRef","when":"false"},{"command":"git.repositories.createBranch","when":"false"},{"command":"git.repositories.createTag","when":"false"},{"command":"git.repositories.merge","when":"false"},{"command":"git.repositories.rebase","when":"false"},{"command":"git.repositories.deleteBranch","when":"false"},{"command":"git.repositories.deleteTag","when":"false"},{"command":"git.repositories.createFrom","when":"false"},{"command":"git.repositories.stashView","when":"false"},{"command":"git.repositories.stashApply","when":"false"},{"command":"git.repositories.stashPop","when":"false"},{"command":"git.repositories.stashDrop","when":"false"},{"command":"git.repositories.createWorktree","when":"false"},{"command":"git.repositories.openWorktree","when":"false"},{"command":"git.repositories.openWorktreeInNewWindow","when":"false"},{"command":"git.repositories.deleteWorktree","when":"false"},{"command":"git.repositories.worktreeCopyBranchName","when":"false"},{"command":"git.repositories.worktreeCopyCommitHash","when":"false"},{"command":"git.repositories.worktreeCopyPath","when":"false"},{"command":"git.repositories.copyCommitHash","when":"false"},{"command":"git.repositories.copyBranchName","when":"false"},{"command":"git.repositories.copyTagName","when":"false"},{"command":"git.repositories.copyStashName","when":"false"},{"command":"git.repositories.stashCopyBranchName","when":"false"}],"scm/title":[{"command":"git.commit","group":"navigation","when":"scmProvider == git"},{"command":"git.refresh","group":"navigation","when":"scmProvider == git"},{"command":"git.pull","group":"1_header@1","when":"scmProvider == git"},{"command":"git.push","group":"1_header@2","when":"scmProvider == git"},{"command":"git.clone","group":"1_header@3","when":"scmProvider == git"},{"command":"git.checkout","group":"1_header@4","when":"scmProvider == git"},{"command":"git.fetch","group":"1_header@5","when":"scmProvider == git"},{"submenu":"git.commit","group":"2_main@1","when":"scmProvider == git"},{"submenu":"git.changes","group":"2_main@2","when":"scmProvider == git"},{"submenu":"git.pullpush","group":"2_main@3","when":"scmProvider == git"},{"submenu":"git.branch","group":"2_main@4","when":"scmProvider == git"},{"submenu":"git.remotes","group":"2_main@5","when":"scmProvider == git"},{"submenu":"git.stash","group":"2_main@6","when":"scmProvider == git"},{"submenu":"git.tags","group":"2_main@7","when":"scmProvider == git"},{"submenu":"git.worktrees","group":"2_main@8","when":"scmProvider == git"},{"command":"git.showOutput","group":"3_footer","when":"scmProvider == git"}],"scm/repositories/title":[{"command":"git.reopenClosedRepositories","group":"navigation@1","when":"git.closedRepositoryCount > 0"}],"scm/repository":[{"command":"git.pull","group":"1_header@1","when":"scmProvider == git"},{"command":"git.push","group":"1_header@2","when":"scmProvider == git"},{"command":"git.clone","group":"1_header@3","when":"scmProvider == git"},{"command":"git.checkout","group":"1_header@4","when":"scmProvider == git"},{"command":"git.fetch","group":"1_header@5","when":"scmProvider == git"},{"submenu":"git.commit","group":"2_main@1","when":"scmProvider == git"},{"submenu":"git.changes","group":"2_main@2","when":"scmProvider == git"},{"submenu":"git.pullpush","group":"2_main@3","when":"scmProvider == git"},{"submenu":"git.branch","group":"2_main@4","when":"scmProvider == git"},{"submenu":"git.remotes","group":"2_main@5","when":"scmProvider == git"},{"submenu":"git.stash","group":"2_main@6","when":"scmProvider == git"},{"submenu":"git.tags","group":"2_main@7","when":"scmProvider == git"},{"submenu":"git.worktrees","group":"2_main@8","when":"scmProvider == git"},{"command":"git.showOutput","group":"3_footer","when":"scmProvider == git"}],"scm/sourceControl":[{"command":"git.close","group":"navigation@1","when":"scmProvider == git"},{"command":"git.closeOtherRepositories","group":"navigation@2","when":"scmProvider == git && gitOpenRepositoryCount > 1"},{"command":"git.openWorktree","group":"1_worktree@1","when":"scmProvider == git && scmProviderContext == worktree"},{"command":"git.openWorktreeInNewWindow","group":"1_worktree@2","when":"scmProvider == git && scmProviderContext == worktree"},{"command":"git.deleteWorktree2","group":"2_worktree@1","when":"scmProvider == git && scmProviderContext == worktree"}],"scm/artifactGroup/context":[{"command":"git.repositories.createBranch","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == branches"},{"command":"git.repositories.createTag","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == tags"},{"submenu":"git.repositories.stash","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == stashes"},{"command":"git.repositories.createWorktree","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == worktrees"}],"scm/artifact/context":[{"command":"git.repositories.checkout","group":"inline@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.stashApply","alt":"git.repositories.stashPop","group":"inline@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashView","group":"1_view@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashApply","group":"2_apply@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashPop","group":"2_apply@2","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashDrop","group":"3_drop@3","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashCopyBranchName","group":"4_copy@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.copyStashName","group":"4_copy@2","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.checkout","group":"1_checkout@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.checkoutDetached","group":"1_checkout@2","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.merge","group":"2_modify@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.rebase","group":"2_modify@2","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.createFrom","group":"3_modify@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.deleteBranch","group":"3_modify@2","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.deleteTag","group":"3_modify@1","when":"scmProvider == git && scmArtifactGroupId == tags"},{"command":"git.repositories.compareRef","group":"4_compare@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.copyCommitHash","group":"5_copy@2","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.copyBranchName","group":"5_copy@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.copyTagName","group":"5_copy@2","when":"scmProvider == git && scmArtifactGroupId == tags"},{"command":"git.repositories.openWorktreeInNewWindow","group":"inline@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.openWorktree","group":"1_open@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.openWorktreeInNewWindow","group":"1_open@2","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.deleteWorktree","group":"2_modify@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyCommitHash","group":"3_copy@2","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyBranchName","group":"3_copy@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyPath","group":"3_copy@3","when":"scmProvider == git && scmArtifactGroupId == worktrees"}],"scm/resourceGroup/context":[{"command":"git.stageAllMerge","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.stageAllMerge","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.unstageAll","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstageAll","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.viewStagedChanges","when":"scmProvider == git && scmResourceGroup == index","group":"inline@1"},{"command":"git.viewChanges","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@1"},{"command":"git.cleanAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"1_modification"},{"command":"git.stageAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"1_modification"},{"command":"git.cleanAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"inline@2"},{"command":"git.stageAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"inline@2"},{"command":"git.cleanAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"1_modification"},{"command":"git.stageAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"1_modification"},{"command":"git.cleanAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"inline@2"},{"command":"git.stageAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"inline@2"},{"command":"git.cleanAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.stageAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.viewUntrackedChanges","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@1"},{"command":"git.cleanAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.stageAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"}],"scm/resourceFolder/context":[{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification@3"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification@3"}],"scm/resourceState/context":[{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == merge","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == merge","group":"2_view@2"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == merge && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == merge && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == index","group":"2_view@2"},{"command":"git.compareWithWorkspace","when":"scmProvider == git && scmResourceGroup == index && scmResourceState == worktree","group":"worktree_diff"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == index && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == index && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.compareWithWorkspace","when":"scmProvider == git && scmResourceGroup == workingTree && scmResourceState == worktree","group":"worktree_diff"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification@3"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == workingTree","group":"2_view@2"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked && !gitFreshRepository","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked && !gitFreshRepository","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == untracked && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == untracked && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification@3"}],"scm/history/title":[{"command":"git.fetchAll","group":"navigation@900","when":"scmProvider == git"},{"command":"git.pullRef","group":"navigation@901","when":"scmProvider == git"},{"command":"git.pushRef","when":"scmProvider == git && scmCurrentHistoryItemRefHasRemote","group":"navigation@902"},{"command":"git.publish","when":"scmProvider == git && !scmCurrentHistoryItemRefHasRemote","group":"navigation@903"}],"scm/historyItem/context":[{"command":"git.graph.checkoutDetached","when":"scmProvider == git","group":"1_checkout@2"},{"command":"git.branch","when":"scmProvider == git","group":"2_branch@2"},{"command":"git.createTag","when":"scmProvider == git","group":"3_tag@1"},{"command":"git.graph.cherryPick","when":"scmProvider == git","group":"4_modify@1"},{"command":"git.graph.compareWithRemote","when":"scmProvider == git","group":"5_compare@1"},{"command":"git.graph.compareWithMergeBase","when":"scmProvider == git","group":"5_compare@2"},{"command":"git.graph.compareRef","when":"scmProvider == git","group":"5_compare@3"},{"command":"git.copyCommitId","when":"scmProvider == git && !listMultiSelection","group":"9_copy@1"},{"command":"git.copyCommitMessage","when":"scmProvider == git && !listMultiSelection","group":"9_copy@2"}],"scm/historyItemRef/context":[{"command":"git.graph.checkout","when":"scmProvider == git","group":"1_checkout@1"},{"command":"git.graph.deleteBranch","when":"scmProvider == git && scmHistoryItemRef =~ /^refs\\/heads\\/|^refs\\/remotes\\//","group":"2_branch@2"},{"command":"git.graph.deleteTag","when":"scmProvider == git && scmHistoryItemRef =~ /^refs\\/tags\\//","group":"3_tag@2"}],"editor/title":[{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme =~ /^git$|^file$/"},{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInNotebookTextDiffEditor && resourceScheme =~ /^git$|^file$/"},{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isInNotebookTextDiffEditor && resourceScheme == git"},{"command":"git.openChange","group":"navigation@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && scmActiveResourceHasChanges && !isSessionsWindow"},{"command":"git.stashApplyEditor","alt":"git.stashPopEditor","group":"navigation@1","when":"config.git.enabled && !git.missing && resourceScheme == git-stash"},{"command":"git.stashDropEditor","group":"navigation@2","when":"config.git.enabled && !git.missing && resourceScheme == git-stash"},{"command":"git.stage","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && git.activeResourceHasUnstagedChanges && !isSessionsWindow"},{"command":"git.unstage","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && git.activeResourceHasStagedChanges && !isSessionsWindow"},{"command":"git.stage","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"},{"command":"git.stageSelectedRanges","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"},{"command":"git.unstage","group":"2_git@3","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git && !isSessionsWindow"},{"command":"git.unstageSelectedRanges","group":"2_git@4","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git && !isSessionsWindow"},{"command":"git.revertSelectedRanges","group":"2_git@5","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"}],"editor/context":[{"command":"git.stageSelectedRanges","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file"},{"command":"git.unstageSelectedRanges","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git"},{"command":"git.revertSelectedRanges","group":"2_git@3","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file"}],"editor/content":[{"command":"git.acceptMerge","when":"isMergeResultEditor && mergeEditorBaseUri =~ /^(git|file):/ && mergeEditorResultUri in git.mergeChanges"},{"command":"git.openMergeEditor","group":"navigation@-10","when":"config.git.enabled && !git.missing && !isInDiffEditor && !isMergeEditor && resource in git.mergeChanges && git.activeResourceHasMergeConflicts"},{"command":"git.commitMessageAccept","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && editorLangId == git-commit"},{"command":"git.commitMessageDiscard","group":"secondary","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && editorLangId == git-commit"}],"multiDiffEditor/resource/title":[{"command":"git.stageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == workingTree"},{"command":"git.stageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == untracked"},{"command":"git.unstageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == index"}],"diffEditor/gutter/hunk":[{"command":"git.diff.stageHunk","group":"primary@10","when":"diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"}],"diffEditor/gutter/selection":[{"command":"git.diff.stageSelection","group":"primary@10","when":"diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"}],"scm/change/title":[{"command":"git.stageChange","when":"config.git.enabled && !git.missing && originalResource =~ /^git\\:.*%22ref%22%3A%22%22%7D$/"},{"command":"git.revertChange","when":"config.git.enabled && !git.missing && originalResource =~ /^git\\:.*%22ref%22%3A%22%22%7D$/"},{"command":"git.unstageChange","when":"false"}],"timeline/item/context":[{"command":"git.timeline.viewCommit","group":"inline","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.openDiff","group":"1_actions@1","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.viewCommit","group":"1_actions@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.compareWithSelected","group":"3_compare@1","when":"config.git.enabled && !git.missing && git.timeline.selectedForCompare && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.selectForCompare","group":"3_compare@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.copyCommitId","group":"5_copy@1","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.copyCommitMessage","group":"5_copy@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"}],"git.commit":[{"command":"git.commit","group":"1_commit@1"},{"command":"git.commitStaged","group":"1_commit@2"},{"command":"git.commitAll","group":"1_commit@3"},{"command":"git.undoCommit","group":"1_commit@4"},{"command":"git.rebaseAbort","group":"1_commit@5"},{"command":"git.commitNoVerify","group":"2_commit_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedNoVerify","group":"2_commit_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllNoVerify","group":"2_commit_noverify@3","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAmend","group":"3_amend@1"},{"command":"git.commitStagedAmend","group":"3_amend@2"},{"command":"git.commitAllAmend","group":"3_amend@3"},{"command":"git.commitAmendNoVerify","group":"4_amend_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedAmendNoVerify","group":"4_amend_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllAmendNoVerify","group":"4_amend_noverify@3","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitSigned","group":"5_signoff@1"},{"command":"git.commitStagedSigned","group":"5_signoff@2"},{"command":"git.commitAllSigned","group":"5_signoff@3"},{"command":"git.commitSignedNoVerify","group":"6_signoff_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedSignedNoVerify","group":"6_signoff_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllSignedNoVerify","group":"6_signoff_noverify@3","when":"config.git.allowNoVerifyCommit"}],"git.changes":[{"command":"git.stageAll","group":"changes@1"},{"command":"git.unstageAll","group":"changes@2"},{"command":"git.cleanAll","group":"changes@3"}],"git.pullpush":[{"command":"git.sync","group":"1_sync@1"},{"command":"git.syncRebase","when":"gitState == idle","group":"1_sync@2"},{"command":"git.pull","group":"2_pull@1"},{"command":"git.pullRebase","group":"2_pull@2"},{"command":"git.pullFrom","group":"2_pull@3"},{"command":"git.push","group":"3_push@1"},{"command":"git.pushForce","when":"config.git.allowForcePush","group":"3_push@2"},{"command":"git.pushTo","group":"3_push@3"},{"command":"git.pushToForce","when":"config.git.allowForcePush","group":"3_push@4"},{"command":"git.fetch","group":"4_fetch@1"},{"command":"git.fetchPrune","group":"4_fetch@2"},{"command":"git.fetchAll","group":"4_fetch@3"}],"git.branch":[{"command":"git.merge","group":"1_merge@1"},{"command":"git.rebase","group":"1_merge@2"},{"command":"git.branch","group":"2_branch@1"},{"command":"git.branchFrom","group":"2_branch@2"},{"command":"git.renameBranch","group":"3_modify@1"},{"command":"git.deleteBranch","group":"3_modify@2"},{"command":"git.deleteRemoteBranch","group":"3_modify@3"},{"command":"git.publish","group":"4_publish@1"}],"git.remotes":[{"command":"git.addRemote","group":"remote@1"},{"command":"git.removeRemote","group":"remote@2"}],"git.stash":[{"command":"git.stash","group":"1_stash@1"},{"command":"git.stashIncludeUntracked","group":"1_stash@2"},{"command":"git.stashStaged","when":"gitVersion2.35","group":"1_stash@3"},{"command":"git.stashApplyLatest","group":"2_apply@1"},{"command":"git.stashApply","group":"2_apply@2"},{"command":"git.stashPopLatest","group":"3_pop@1"},{"command":"git.stashPop","group":"3_pop@2"},{"command":"git.stashDrop","group":"4_drop@1"},{"command":"git.stashDropAll","group":"4_drop@2"},{"command":"git.stashView","group":"5_preview@1"}],"git.repositories.stash":[{"command":"git.stash","group":"1_stash@1"},{"command":"git.stashStaged","when":"gitVersion2.35","group":"2_stash@1"},{"command":"git.stashIncludeUntracked","group":"2_stash@2"}],"git.tags":[{"command":"git.createTag","group":"1_tags@1"},{"command":"git.deleteTag","group":"1_tags@2"},{"command":"git.deleteRemoteTag","group":"1_tags@3"},{"command":"git.pushTags","group":"2_tags@1"}],"git.worktrees":[{"when":"scmProviderContext == worktree","command":"git.openWorktree","group":"openWorktrees@1"},{"when":"scmProviderContext == worktree","command":"git.openWorktreeInNewWindow","group":"openWorktrees@2"},{"when":"scmProviderContext == repository","command":"git.createWorktree","group":"worktrees@1"},{"when":"scmProviderContext == worktree","command":"git.deleteWorktree2","group":"worktrees@2"}]},"submenus":[{"id":"git.commit","label":"Commit"},{"id":"git.changes","label":"Changes"},{"id":"git.pullpush","label":"Pull, Push"},{"id":"git.branch","label":"Branch"},{"id":"git.remotes","label":"Remote"},{"id":"git.stash","label":"Stash"},{"id":"git.tags","label":"Tags"},{"id":"git.worktrees","label":"Worktrees"},{"id":"git.repositories.stash","label":"Stash","icon":"$(plus)"}],"configuration":{"title":"Git","properties":{"git.enabled":{"type":"boolean","scope":"resource","description":"Whether Git is enabled.","default":true,"agentsWindow":{"default":true,"readOnly":true}},"git.path":{"type":["string","null","array"],"markdownDescription":"Path and filename of the git executable, e.g. `C:\\Program Files\\Git\\bin\\git.exe` (Windows). This can also be an array of string values containing multiple paths to look up.","default":null,"scope":"machine"},"git.autoRepositoryDetection":{"type":["boolean","string"],"enum":[true,false,"subFolders","openEditors"],"enumDescriptions":["Scan for both subfolders of the current opened folder and parent folders of open files.","Disable automatic repository scanning.","Scan for subfolders of the currently opened folder.","Scan for parent folders of open files."],"description":"Configures when repositories should be automatically detected.","default":true},"git.autorefresh":{"type":"boolean","description":"Whether auto refreshing is enabled.","default":true,"agentsWindow":{"default":true}},"git.autofetch":{"type":["boolean","string"],"enum":[true,false,"all"],"scope":"resource","markdownDescription":"When set to true, commits will automatically be fetched from the default remote of the current Git repository. Setting to `all` will fetch from all remotes.","default":false,"tags":["usesOnlineServices"],"agentsWindow":{"default":true}},"git.autofetchPeriod":{"type":"number","scope":"resource","markdownDescription":"Duration in seconds between each automatic git fetch, when `#git.autofetch#` is enabled.","default":180},"git.defaultBranchName":{"type":"string","markdownDescription":"The name of the default branch (example: main, trunk, development) when initializing a new Git repository. When set to empty, the default branch name configured in Git will be used. **Note:** Requires Git version `2.28.0` or later.","default":"main","scope":"resource"},"git.branchPrefix":{"type":"string","description":"Prefix used when creating a new branch.","default":"","scope":"resource"},"git.branchProtection":{"type":"array","markdownDescription":"List of protected branches. By default, a prompt is shown before changes are committed to a protected branch. The prompt can be controlled using the `#git.branchProtectionPrompt#` setting.","items":{"type":"string"},"default":[],"scope":"resource"},"git.branchProtectionPrompt":{"type":"string","description":"Controls whether a prompt is being shown before changes are committed to a protected branch.","enum":["alwaysCommit","alwaysCommitToNewBranch","alwaysPrompt"],"enumDescriptions":["Always commit changes to the protected branch.","Always commit changes to a new branch.","Always prompt before changes are committed to a protected branch."],"default":"alwaysPrompt","scope":"resource"},"git.branchValidationRegex":{"type":"string","description":"A regular expression to validate new branch names.","default":""},"git.branchWhitespaceChar":{"type":"string","description":"The character to replace whitespace in new branch names, and to separate segments of a randomly generated branch name.","default":"-"},"git.branchRandomName.enable":{"type":"boolean","description":"Controls whether a random name is generated when creating a new branch.","default":false,"scope":"resource","agentsWindow":{"default":true}},"git.branchRandomName.dictionary":{"type":"array","markdownDescription":"List of dictionaries used for the randomly generated branch name. Each value represents the dictionary used to generate the segment of the branch name. Supported dictionaries: `adjectives`, `animals`, `colors` and `numbers`.","items":{"type":"string","enum":["adjectives","animals","colors","numbers"],"enumDescriptions":["A random adjective","A random animal name","A random color name","A random number between 100 and 999"]},"minItems":1,"maxItems":5,"default":["adjectives","animals"],"scope":"resource"},"git.confirmSync":{"type":"boolean","description":"Confirm before synchronizing Git repositories.","default":true,"agentsWindow":{"default":false,"readOnly":true}},"git.confirmCommittedDelete":{"type":"boolean","description":"Confirm before deleting committed files with Git.","default":true},"git.countBadge":{"type":"string","enum":["all","tracked","off"],"enumDescriptions":["Count all changes.","Count only tracked changes.","Turn off counter."],"description":"Controls the Git count badge.","default":"all","scope":"resource"},"git.checkoutType":{"type":"array","items":{"type":"string","enum":["local","tags","remote"],"enumDescriptions":["Local branches","Tags","Remote branches"]},"uniqueItems":true,"markdownDescription":"Controls what type of Git refs are listed when running `Checkout to...`.","default":["local","remote","tags"]},"git.ignoreLegacyWarning":{"type":"boolean","description":"Ignores the legacy Git warning.","default":false},"git.ignoreMissingGitWarning":{"type":"boolean","description":"Ignores the warning when Git is missing.","default":false},"git.ignoreWindowsGit27Warning":{"type":"boolean","description":"Ignores the warning when Git 2.25 - 2.26 is installed on Windows.","default":false},"git.ignoreLimitWarning":{"type":"boolean","description":"Ignores the warning when there are too many changes in a repository.","default":false},"git.ignoreRebaseWarning":{"type":"boolean","description":"Ignores the warning when it looks like the branch might have been rebased when pulling.","default":false},"git.defaultCloneDirectory":{"type":["string","null"],"default":null,"scope":"machine","description":"The default location to clone a Git repository."},"git.useEditorAsCommitInput":{"type":"boolean","description":"Controls whether a full text editor will be used to author commit messages, whenever no message is provided in the commit input box.","default":true},"git.verboseCommit":{"type":"boolean","scope":"resource","markdownDescription":"Enable verbose output when `#git.useEditorAsCommitInput#` is enabled.","default":false},"git.enableSmartCommit":{"type":"boolean","scope":"resource","description":"Commit all changes when there are no staged changes.","default":false},"git.smartCommitChanges":{"type":"string","enum":["all","tracked"],"enumDescriptions":["Automatically stage all changes.","Automatically stage tracked changes only."],"scope":"resource","description":"Control which changes are automatically staged by Smart Commit.","default":"all"},"git.suggestSmartCommit":{"type":"boolean","scope":"resource","description":"Suggests to enable smart commit (commit all changes when there are no staged changes).","default":true},"git.enableCommitSigning":{"type":"boolean","scope":"resource","description":"Enables commit signing with GPG, X.509, or SSH.","default":false},"git.confirmEmptyCommits":{"type":"boolean","scope":"resource","description":"Always confirm the creation of empty commits for the 'Git: Commit Empty' command.","default":true},"git.decorations.enabled":{"type":"boolean","default":true,"description":"Controls whether Git contributes colors and badges to the Explorer and the Open Editors view."},"git.enableStatusBarSync":{"type":"boolean","default":true,"description":"Controls whether the Git Sync command appears in the status bar.","scope":"resource"},"git.followTagsWhenSync":{"type":"boolean","scope":"resource","default":false,"description":"Push all annotated tags when running the sync command."},"git.replaceTagsWhenPull":{"type":"boolean","scope":"resource","default":false,"description":"Automatically replace the local tags with the remote tags in case of a conflict when running the pull command."},"git.promptToSaveFilesBeforeStash":{"type":"string","enum":["always","staged","never"],"enumDescriptions":["Check for any unsaved files.","Check only for unsaved staged files.","Disable this check."],"scope":"resource","default":"always","description":"Controls whether Git should check for unsaved files before stashing changes."},"git.promptToSaveFilesBeforeCommit":{"type":"string","enum":["always","staged","never"],"enumDescriptions":["Check for any unsaved files.","Check only for unsaved staged files.","Disable this check."],"scope":"resource","default":"always","description":"Controls whether Git should check for unsaved files before committing."},"git.postCommitCommand":{"type":"string","enum":["none","push","sync"],"enumDescriptions":["Don't run any command after a commit.","Run 'git push' after a successful commit.","Run 'git pull' and 'git push' after a successful commit."],"markdownDescription":"Run a git command after a successful commit.","scope":"resource","default":"none","agentsWindow":{"default":"none","readOnly":true}},"git.rememberPostCommitCommand":{"type":"boolean","description":"Remember the last git command that ran after a commit.","scope":"resource","default":false,"agentsWindow":{"default":false,"readOnly":true}},"git.openAfterClone":{"type":"string","enum":["always","alwaysNewWindow","whenNoFolderOpen","prompt"],"enumDescriptions":["Always open in current window.","Always open in a new window.","Only open in current window when no folder is opened.","Always prompt for action."],"default":"prompt","description":"Controls whether to open a repository automatically after cloning."},"git.showInlineOpenFileAction":{"type":"boolean","default":true,"description":"Controls whether to show an inline Open File action in the Git changes view."},"git.showPushSuccessNotification":{"type":"boolean","description":"Controls whether to show a notification when a push is successful.","default":false},"git.inputValidation":{"type":"boolean","default":false,"description":"Controls whether to show commit message input validation diagnostics."},"git.inputValidationLength":{"type":"number","default":72,"description":"Controls the commit message length threshold for showing a warning."},"git.inputValidationSubjectLength":{"type":["number","null"],"default":50,"markdownDescription":"Controls the commit message subject length threshold for showing a warning. Unset it to inherit the value of `#git.inputValidationLength#`."},"git.detectSubmodules":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to automatically detect Git submodules."},"git.detectSubmodulesLimit":{"type":"number","scope":"resource","default":10,"description":"Controls the limit of Git submodules detected."},"git.detectWorktrees":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether to automatically detect Git worktrees.","agentsWindow":{"default":false}},"git.detectWorktreesLimit":{"type":"number","scope":"resource","default":50,"description":"Controls the limit of Git worktrees detected."},"git.worktreeIncludeFiles":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"Configure [glob patterns](https://aka.ms/vscode-glob-patterns) for files and folders that are included when creating a new worktree. Only files and folders that match the patterns and are listed in `.gitignore` will be copied to the newly created worktree.","scope":"resource","tags":["experimental"]},"git.alwaysShowStagedChangesResourceGroup":{"type":"boolean","scope":"resource","default":false,"description":"Always show the Staged Changes resource group."},"git.alwaysSignOff":{"type":"boolean","scope":"resource","default":false,"description":"Controls the signoff flag for all commits."},"git.addAICoAuthor":{"type":"string","enum":["off","chatAndAgent","all"],"enumDescriptions":["Never add the AI co-author trailer.","Add the AI co-author trailer when code from chat or agent edits is included.","Add the AI co-author trailer when any AI-generated code is included, such as inline completions, chat, or agent edits."],"scope":"resource","default":"off","description":"Controls whether a 'Co-authored-by' trailer is automatically added to the commit message when AI-generated code is included in the commit."},"git.ignoreSubmodules":{"type":"boolean","scope":"resource","default":false,"description":"Ignore modifications to submodules in the file tree."},"git.ignoredRepositories":{"type":"array","items":{"type":"string"},"default":[],"scope":"window","description":"List of Git repositories to ignore."},"git.scanRepositories":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","description":"List of paths to search for Git repositories in."},"git.showProgress":{"type":"boolean","description":"Controls whether Git actions should show progress.","default":true,"scope":"resource","agentsWindow":{"default":false,"readOnly":true}},"git.rebaseWhenSync":{"type":"boolean","scope":"resource","default":false,"description":"Force Git to use rebase when running the sync command."},"git.pullBeforeCheckout":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether a branch that does not have outgoing commits is fast-forwarded before it is checked out."},"git.fetchOnPull":{"type":"boolean","scope":"resource","default":false,"description":"When enabled, fetch all branches when pulling. Otherwise, fetch just the current one."},"git.pruneOnFetch":{"type":"boolean","scope":"resource","default":false,"description":"Prune when fetching."},"git.pullTags":{"type":"boolean","scope":"resource","default":true,"description":"Fetch all tags when pulling."},"git.autoStash":{"type":"boolean","scope":"resource","default":false,"description":"Stash any changes before pulling and restore them after successful pull."},"git.allowForcePush":{"type":"boolean","default":false,"description":"Controls whether force push (with or without lease) is enabled."},"git.useForcePushWithLease":{"type":"boolean","default":true,"description":"Controls whether force pushing uses the safer force-with-lease variant."},"git.useForcePushIfIncludes":{"type":"boolean","default":true,"markdownDescription":"Controls whether force pushing uses the safer force-if-includes variant. Note: This setting requires the `#git.useForcePushWithLease#` setting to be enabled, and Git version `2.30.0` or later."},"git.confirmForcePush":{"type":"boolean","default":true,"description":"Controls whether to ask for confirmation before force-pushing."},"git.allowNoVerifyCommit":{"type":"boolean","default":false,"description":"Controls whether commits without running pre-commit and commit-msg hooks are allowed."},"git.confirmNoVerifyCommit":{"type":"boolean","default":true,"description":"Controls whether to ask for confirmation before committing without verification."},"git.closeDiffOnOperation":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether the diff editor should be automatically closed when changes are stashed, committed, discarded, staged, or unstaged."},"git.openDiffOnClick":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the diff editor should be opened when clicking a change. Otherwise the regular editor will be opened."},"git.supportCancellation":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether a notification comes up when running the Sync action, which allows the user to cancel the operation."},"git.branchSortOrder":{"type":"string","enum":["committerdate","alphabetically"],"default":"committerdate","description":"Controls the sort order for branches."},"git.untrackedChanges":{"type":"string","enum":["mixed","separate","hidden"],"enumDescriptions":["All changes, tracked and untracked, appear together and behave equally.","Untracked changes appear separately in the Source Control view. They are also excluded from several actions.","Untracked changes are hidden and excluded from several actions."],"default":"mixed","description":"Controls how untracked changes behave.","scope":"resource"},"git.requireGitUserConfig":{"type":"boolean","description":"Controls whether to require explicit Git user configuration or allow Git to guess if missing.","default":true,"scope":"resource"},"git.showCommitInput":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to show the commit input in the Git source control panel."},"git.terminalAuthentication":{"type":"boolean","default":true,"description":"Controls whether to enable VS Code to be the authentication handler for Git processes spawned in the Integrated Terminal. Note: Terminals need to be restarted to pick up a change in this setting."},"git.terminalGitEditor":{"type":"boolean","default":false,"description":"Controls whether to enable VS Code to be the Git editor for Git processes spawned in the integrated terminal. Note: Terminals need to be restarted to pick up a change in this setting."},"git.useCommitInputAsStashMessage":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether to use the message from the commit input box as the default stash message."},"git.useIntegratedAskPass":{"type":"boolean","default":true,"description":"Controls whether GIT_ASKPASS should be overwritten to use the integrated version."},"git.githubAuthentication":{"markdownDeprecationMessage":"This setting is now deprecated, please use `#github.gitAuthentication#` instead."},"git.timeline.date":{"type":"string","enum":["committed","authored"],"enumDescriptions":["Use the committed date","Use the authored date"],"default":"committed","description":"Controls which date to use for items in the Timeline view.","scope":"window"},"git.timeline.showAuthor":{"type":"boolean","default":true,"description":"Controls whether to show the commit author in the Timeline view.","scope":"window"},"git.timeline.showUncommitted":{"type":"boolean","default":false,"description":"Controls whether to show uncommitted changes in the Timeline view.","scope":"window"},"git.showActionButton":{"type":"object","additionalProperties":false,"description":"Controls whether an action button is shown in the Source Control view.","properties":{"commit":{"type":"boolean","description":"Show an action button to commit changes when the local branch has modified files ready to be committed."},"publish":{"type":"boolean","description":"Show an action button to publish the local branch when it does not have a tracking remote branch."},"sync":{"type":"boolean","description":"Show an action button to synchronize changes when the local branch is either ahead or behind the remote branch."}},"default":{"commit":true,"publish":true,"sync":true},"scope":"resource"},"git.statusLimit":{"type":"number","scope":"resource","default":10000,"description":"Controls how to limit the number of changes that can be parsed from Git status command. Can be set to 0 for no limit."},"git.repositoryScanIgnoredFolders":{"type":"array","items":{"type":"string"},"default":["node_modules"],"scope":"resource","markdownDescription":"List of folders that are ignored while scanning for Git repositories when `#git.autoRepositoryDetection#` is set to `true` or `subFolders`."},"git.repositoryScanMaxDepth":{"type":"number","scope":"resource","default":1,"markdownDescription":"Controls the depth used when scanning workspace folders for Git repositories when `#git.autoRepositoryDetection#` is set to `true` or `subFolders`. Can be set to `-1` for no limit."},"git.commandsToLog":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"List of git commands (ex: commit, push) that would have their `stdout` logged to the [git output](command:git.showOutput). If the git command has a client-side hook configured, the client-side hook's `stdout` will also be logged to the [git output](command:git.showOutput)."},"git.mergeEditor":{"type":"boolean","default":false,"markdownDescription":"Open the merge editor for files that are currently under conflict.","scope":"window"},"git.optimisticUpdate":{"type":"boolean","default":true,"markdownDescription":"Controls whether to optimistically update the state of the Source Control view after running git commands.","scope":"resource","tags":["experimental"]},"git.openRepositoryInParentFolders":{"type":"string","enum":["always","never","prompt"],"enumDescriptions":["Always open a repository in parent folders of workspaces or open files.","Never open a repository in parent folders of workspaces or open files.","Prompt before opening a repository the parent folders of workspaces or open files."],"default":"prompt","markdownDescription":"Control whether a repository in parent folders of workspaces or open files should be opened.","scope":"resource"},"git.similarityThreshold":{"type":"number","default":50,"minimum":0,"maximum":100,"markdownDescription":"Controls the threshold of the similarity index (the amount of additions/deletions compared to the file's size) for changes in a pair of added/deleted files to be considered a rename. **Note:** Requires Git version `2.18.0` or later.","scope":"resource"},"git.blame.editorDecoration.enabled":{"type":"boolean","default":false,"markdownDescription":"Controls whether to show blame information in the editor using editor decorations."},"git.blame.editorDecoration.template":{"type":"string","default":"${subject}, ${authorName} (${authorDateAgo})","markdownDescription":"Template for the blame information editor decoration. Supported variables:\n\n* `hash`: Commit hash\n\n* `hashShort`: First N characters of the commit hash according to `#git.commitShortHashLength#`\n\n* `subject`: First line of the commit message\n\n* `authorName`: Author name\n\n* `authorEmail`: Author email\n\n* `authorDate`: Author date\n\n* `authorDateAgo`: Time difference between now and the author date\n\n"},"git.blame.editorDecoration.disableHover":{"type":"boolean","default":false,"markdownDescription":"Controls whether to disable the blame information editor decoration hover."},"git.blame.statusBarItem.enabled":{"type":"boolean","default":true,"markdownDescription":"Controls whether to show blame information in the status bar."},"git.blame.statusBarItem.template":{"type":"string","default":"${authorName} (${authorDateAgo})","markdownDescription":"Template for the blame information status bar item. Supported variables:\n\n* `hash`: Commit hash\n\n* `hashShort`: First N characters of the commit hash according to `#git.commitShortHashLength#`\n\n* `subject`: First line of the commit message\n\n* `authorName`: Author name\n\n* `authorEmail`: Author email\n\n* `authorDate`: Author date\n\n* `authorDateAgo`: Time difference between now and the author date\n\n"},"git.blame.ignoreWhitespace":{"type":"boolean","default":false,"markdownDescription":"Controls whether to ignore whitespace changes when computing blame information."},"git.commitShortHashLength":{"type":"number","default":7,"minimum":7,"maximum":40,"markdownDescription":"Controls the length of the commit short hash.","scope":"resource"},"git.diagnosticsCommitHook.enabled":{"type":"boolean","default":false,"markdownDescription":"Controls whether to check for unresolved diagnostics before committing.","scope":"resource"},"git.diagnosticsCommitHook.sources":{"type":"object","additionalProperties":{"type":"string","enum":["error","warning","information","hint","none"]},"default":{"*":"error"},"markdownDescription":"Controls the list of sources (**Item**) and the minimum severity (**Value**) to be considered before committing. **Note:** To ignore diagnostics from a particular source, add the source to the list and set the minimum severity to `none`.","scope":"resource"},"git.discardUntrackedChangesToTrash":{"type":"boolean","default":true,"markdownDescription":"Controls whether discarding untracked changes moves the file(s) to the Recycle Bin (Windows), Trash (macOS, Linux) instead of deleting them permanently. **Note:** This setting has no effect when connected to a remote or when running in Linux as a snap package."},"git.showReferenceDetails":{"type":"boolean","default":true,"markdownDescription":"Controls whether to show the details of the last commit for Git refs in the checkout, branch, and tag pickers."}}},"colors":[{"id":"gitDecoration.addedResourceForeground","description":"Color for added resources.","defaults":{"light":"#587c0c","dark":"#81b88b","highContrast":"#a1e3ad","highContrastLight":"#374e06"}},{"id":"gitDecoration.modifiedResourceForeground","description":"Color for modified resources.","defaults":{"light":"#895503","dark":"#E2C08D","highContrast":"#E2C08D","highContrastLight":"#895503"}},{"id":"gitDecoration.deletedResourceForeground","description":"Color for deleted resources.","defaults":{"light":"#ad0707","dark":"#c74e39","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.renamedResourceForeground","description":"Color for renamed or copied resources.","defaults":{"light":"#007100","dark":"#73C991","highContrast":"#73C991","highContrastLight":"#007100"}},{"id":"gitDecoration.untrackedResourceForeground","description":"Color for untracked resources.","defaults":{"light":"#007100","dark":"#73C991","highContrast":"#73C991","highContrastLight":"#007100"}},{"id":"gitDecoration.ignoredResourceForeground","description":"Color for ignored resources.","defaults":{"light":"#8E8E90","dark":"#8C8C8C","highContrast":"#A7A8A9","highContrastLight":"#8e8e90"}},{"id":"gitDecoration.stageModifiedResourceForeground","description":"Color for modified resources which have been staged.","defaults":{"light":"#895503","dark":"#E2C08D","highContrast":"#E2C08D","highContrastLight":"#895503"}},{"id":"gitDecoration.stageDeletedResourceForeground","description":"Color for deleted resources which have been staged.","defaults":{"light":"#ad0707","dark":"#c74e39","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.conflictingResourceForeground","description":"Color for resources with conflicts.","defaults":{"light":"#ad0707","dark":"#e4676b","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.submoduleResourceForeground","description":"Color for submodule resources.","defaults":{"light":"#1258a7","dark":"#8db9e2","highContrast":"#8db9e2","highContrastLight":"#1258a7"}},{"id":"git.blame.editorDecorationForeground","description":"Color for the blame editor decoration.","defaults":{"dark":"editorInlayHint.foreground","light":"editorInlayHint.foreground","highContrast":"editorInlayHint.foreground","highContrastLight":"editorInlayHint.foreground"}}],"configurationDefaults":{"[git-commit]":{"editor.rulers":[50,72],"editor.wordWrap":"off","workbench.editor.restoreViewState":false},"[git-rebase]":{"workbench.editor.restoreViewState":false}},"viewsWelcome":[{"view":"scm","contents":"If you would like to use Git features, please enable Git in your [settings](command:workbench.action.openSettings?%5B%22git.enabled%22%5D).\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"!config.git.enabled"},{"view":"scm","contents":"Install Git, a popular source control system, to track code changes and collaborate with others. Learn more in our [Git guides](https://aka.ms/vscode-scm).","when":"config.git.enabled && git.missing && remoteName != ''"},{"view":"scm","contents":"[Download Git for macOS](https://git-scm.com/download/mac)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isMac"},{"view":"scm","contents":"[Download Git for Windows](https://git-scm.com/download/win)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isWindows"},{"view":"scm","contents":"Source control depends on Git being installed.\n[Download Git for Linux](https://git-scm.com/download/linux)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isLinux"},{"view":"scm","contents":"In order to use Git features, you can open a folder containing a Git repository or clone from a URL.\n[Open Folder](command:vscode.openFolder)\n[Clone Repository](command:git.cloneRecursive)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && workbenchState == empty && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0","enablement":"git.state == initialized","group":"2_open@1"},{"view":"scm","contents":"The workspace currently open doesn't have any folders containing Git repositories.\n[Add Folder to Workspace](command:workbench.action.addRootFolder)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && workbenchState == workspace && workspaceFolderCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0","enablement":"git.state == initialized","group":"2_open@1"},{"view":"scm","contents":"Scanning folder for Git repositories...","when":"config.git.enabled && !git.missing && workbenchState == folder && workspaceFolderCount != 0 && git.state != initialized"},{"view":"scm","contents":"Scanning workspace for Git repositories...","when":"config.git.enabled && !git.missing && workbenchState == workspace && workspaceFolderCount != 0 && git.state != initialized"},{"view":"scm","contents":"The folder currently open doesn't have a Git repository. You can initialize a repository which will enable source control features powered by Git.\n[Initialize Repository](command:git.init?%5Btrue%5D)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && workbenchState == folder && scm.providerCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0 && remoteName != 'codespaces'","group":"5_scm@1"},{"view":"scm","contents":"The workspace currently open doesn't have any folders containing Git repositories. You can initialize a repository on a folder which will enable source control features powered by Git.\n[Initialize Repository](command:git.init)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && workbenchState == workspace && workspaceFolderCount != 0 && scm.providerCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0 && remoteName != 'codespaces'","group":"5_scm@1"},{"view":"scm","contents":"A Git repository was found in the parent folders of the workspace or the open file(s).\n[Open Repository](command:git.openRepositoriesInParentFolders)\nUse the [git.openRepositoryInParentFolders](command:workbench.action.openSettings?%5B%22git.openRepositoryInParentFolders%22%5D) setting to control whether Git repositories in parent folders of workspaces or open files are opened. To learn more [read our docs](https://aka.ms/vscode-git-repository-in-parent-folders).","when":"config.git.enabled && !git.missing && git.state == initialized && git.parentRepositoryCount == 1"},{"view":"scm","contents":"Git repositories were found in the parent folders of the workspace or the open file(s).\n[Open Repository](command:git.openRepositoriesInParentFolders)\nUse the [git.openRepositoryInParentFolders](command:workbench.action.openSettings?%5B%22git.openRepositoryInParentFolders%22%5D) setting to control whether Git repositories in parent folders of workspace or open files are opened. To learn more [read our docs](https://aka.ms/vscode-git-repository-in-parent-folders).","when":"config.git.enabled && !git.missing && git.state == initialized && git.parentRepositoryCount > 1"},{"view":"scm","contents":"The detected Git repository is potentially unsafe as the folder is owned by someone other than the current user.\n[Manage Unsafe Repositories](command:git.manageUnsafeRepositories)\nTo learn more about unsafe repositories [read our docs](https://aka.ms/vscode-git-unsafe-repository).","when":"config.git.enabled && !git.missing && git.state == initialized && git.unsafeRepositoryCount == 1"},{"view":"scm","contents":"The detected Git repositories are potentially unsafe as the folders are owned by someone other than the current user.\n[Manage Unsafe Repositories](command:git.manageUnsafeRepositories)\nTo learn more about unsafe repositories [read our docs](https://aka.ms/vscode-git-unsafe-repository).","when":"config.git.enabled && !git.missing && git.state == initialized && git.unsafeRepositoryCount > 1"},{"view":"scm","contents":"A Git repository was found that was previously closed.\n[Reopen Closed Repository](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && git.closedRepositoryCount == 1"},{"view":"scm","contents":"Git repositories were found that were previously closed.\n[Reopen Closed Repositories](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && git.closedRepositoryCount > 1"},{"view":"explorer","contents":"You can clone a repository locally.\n[Clone Repository](command:git.clone 'Clone a repository once the Git extension has activated')","when":"config.git.enabled && git.state == initialized && scm.providerCount == 0","group":"5_scm@1"},{"view":"explorer","contents":"To learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && git.state == initialized && scm.providerCount == 0","group":"5_scm@10"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"allowScripts":{"@vscode/fs-copyfile@2.0.0":true},"originalEnabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","canonicalUriProvider","contribEditSessions","contribEditorContentMenu","contribMergeEditorMenus","contribMultiDiffEditorMenus","contribDiffEditorGutterToolBarMenus","contribSourceControlArtifactGroupMenu","contribSourceControlArtifactMenu","contribSourceControlHistoryItemMenu","contribSourceControlHistoryTitleMenu","contribSourceControlInputBoxMenu","contribSourceControlTitleMenu","contribViewsWelcome","editSessionIdentityProvider","envIsConnectionMetered","findFiles2","quickDiffProvider","quickPickSortByLabel","scmActionButton","scmArtifactProvider","scmHistoryProvider","scmMultiDiffEditor","scmProviderOptions","scmSelectedProvider","scmTextDocument","scmValidation","statusBarItemTooltip","taskRunOptions","tabInputMultiDiff","tabInputTextMerge","textEditorDiffInformation","timeline","workspaceTrust"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/git","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.git-base"},"manifest":{"name":"git-base","displayName":"Git Base","description":"Git static contributions and pickers.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Other"],"activationEvents":["*"],"main":"./dist/extension.js","browser":"./dist/browser/extension.js","icon":"resources/icons/git.png","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"commands":[{"command":"git-base.api.getRemoteSources","title":"Get Remote Sources","category":"Git Base API"}],"menus":{"commandPalette":[{"command":"git-base.api.getRemoteSources","when":"false"}]},"languages":[{"id":"git-commit","aliases":["Git Commit Message","git-commit"],"filenames":["COMMIT_EDITMSG","MERGE_MSG"],"configuration":"./languages/git-commit.language-configuration.json"},{"id":"git-rebase","aliases":["Git Rebase Message","git-rebase"],"filenames":["git-rebase-todo"],"filenamePatterns":["**/rebase-merge/done"],"configuration":"./languages/git-rebase.language-configuration.json"},{"id":"ignore","aliases":["Ignore","ignore"],"extensions":[".gitignore_global",".gitignore",".git-blame-ignore-revs"],"configuration":"./languages/ignore.language-configuration.json"}],"grammars":[{"language":"git-commit","scopeName":"text.git-commit","path":"./syntaxes/git-commit.tmLanguage.json"},{"language":"git-rebase","scopeName":"text.git-rebase","path":"./syntaxes/git-rebase.tmLanguage.json"},{"language":"ignore","scopeName":"source.ignore","path":"./syntaxes/ignore.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/git-base","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.github"},"manifest":{"name":"github","displayName":"GitHub","description":"GitHub features for VS Code","publisher":"vscode","license":"MIT","version":"0.0.1","engines":{"vscode":"^1.41.0"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","icon":"images/icon.png","categories":["Other"],"activationEvents":["*"],"extensionDependencies":["vscode.git-base"],"type":"module","main":"./dist/extension.js","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["canonicalUriProvider","chatSessionsProvider","contribEditSessions","contribShareMenu","contribSourceControlHistoryItemMenu","scmHistoryProvider","shareProvider","timeline"],"contributes":{"commands":[{"command":"github.publish","title":"Publish to GitHub"},{"command":"github.copyVscodeDevLink","title":"Copy vscode.dev Link"},{"command":"github.copyVscodeDevLinkFile","title":"Copy vscode.dev Link"},{"command":"github.copyVscodeDevLinkWithoutRange","title":"Copy vscode.dev Link"},{"command":"github.openOnVscodeDev","title":"Open in vscode.dev","icon":"$(globe)"},{"command":"github.graph.openOnGitHub","title":"Open on GitHub","icon":"$(github)"},{"command":"github.timeline.openOnGitHub","title":"Open on GitHub","icon":"$(github)"},{"command":"github.createPullRequest","title":"Create PR","icon":"$(git-pull-request)"},{"command":"github.openPullRequest","title":"Open PR","icon":"$(git-pull-request)"}],"continueEditSession":[{"command":"github.openOnVscodeDev","when":"github.hasGitHubRepo","qualifiedName":"Continue Working in vscode.dev","category":"Remote Repositories","remoteGroup":"virtualfs_44_vscode-vfs_2_web@2"}],"menus":{"commandPalette":[{"command":"github.publish","when":"git-base.gitEnabled && workspaceFolderCount != 0 && remoteName != 'codespaces'"},{"command":"github.createPullRequest","when":"false"},{"command":"github.openPullRequest","when":"false"},{"command":"github.graph.openOnGitHub","when":"false"},{"command":"github.copyVscodeDevLink","when":"false"},{"command":"github.copyVscodeDevLinkFile","when":"false"},{"command":"github.copyVscodeDevLinkWithoutRange","when":"false"},{"command":"github.openOnVscodeDev","when":"false"},{"command":"github.timeline.openOnGitHub","when":"false"}],"file/share":[{"command":"github.copyVscodeDevLinkFile","when":"github.hasGitHubRepo && remoteName != 'codespaces'","group":"0_vscode@0"}],"editor/context/share":[{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'","group":"0_vscode@0"}],"explorer/context/share":[{"command":"github.copyVscodeDevLinkWithoutRange","when":"github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'","group":"0_vscode@0"}],"editor/lineNumber/context":[{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editors.files.textFileEditor && config.editor.lineNumbers == on && remoteName != 'codespaces'","group":"1_cutcopypaste@2"},{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editor.notebook && remoteName != 'codespaces'","group":"1_cutcopypaste@2"}],"editor/title/context/share":[{"command":"github.copyVscodeDevLinkWithoutRange","when":"github.hasGitHubRepo && resourceScheme != untitled && remoteName != 'codespaces'","group":"0_vscode@0"}],"scm/historyItem/context":[{"command":"github.graph.openOnGitHub","when":"github.hasGitHubRepo","group":"0_view@2"}],"timeline/item/context":[{"command":"github.timeline.openOnGitHub","group":"1_actions@3","when":"github.hasGitHubRepo && timelineItem =~ /git:file:commit\\b/"}],"agents/changes/actions/primary":[]},"configuration":[{"title":"GitHub","properties":{"github.branchProtection":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to query repository rules for GitHub repositories"},"github.gitAuthentication":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to enable automatic GitHub authentication for git commands within VS Code."},"github.gitProtocol":{"type":"string","enum":["https","ssh"],"default":"https","description":"Controls which protocol is used to clone a GitHub repository"},"github.showAvatar":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to show the GitHub avatar of the commit author in various hovers (ex: Git blame, Timeline, Source Control Graph, etc.)"}}}],"viewsWelcome":[{"view":"scm","contents":"You can directly publish this folder to a GitHub repository. Once published, you'll have access to source control features powered by Git and GitHub.\n[$(github) Publish to GitHub](command:github.publish)","when":"config.git.enabled && git.state == initialized && workbenchState == folder && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0"},{"view":"scm","contents":"You can directly publish a workspace folder to a GitHub repository. Once published, you'll have access to source control features powered by Git and GitHub.\n[$(github) Publish to GitHub](command:github.publish)","when":"config.git.enabled && git.state == initialized && workbenchState == workspace && workspaceFolderCount != 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0"}],"markdown.previewStyles":["./markdown.css"]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["canonicalUriProvider","chatSessionsProvider","contribEditSessions","contribShareMenu","contribSourceControlHistoryItemMenu","scmHistoryProvider","shareProvider","timeline"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/github","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.github-authentication"},"manifest":{"name":"github-authentication","displayName":"GitHub Authentication","description":"GitHub Authentication Provider","publisher":"vscode","license":"MIT","version":"0.0.2","engines":{"vscode":"^1.41.0"},"icon":"images/icon.png","categories":["Other"],"api":"none","extensionKind":["ui","workspace"],"enabledApiProposals":["authIssuers","authProviderSpecific","authSessionAccountIcon"],"activationEvents":[],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","restrictedConfigurations":["github-enterprise.uri"]}},"contributes":{"authentication":[{"label":"GitHub","id":"github","authorizationServerGlobs":["https://github.com/login/oauth"]},{"label":"GitHub Enterprise Server","id":"github-enterprise","authorizationServerGlobs":["*"]}],"configuration":[{"title":"GHE.com & GitHub Enterprise Server Authentication","properties":{"github-enterprise.uri":{"type":"string","markdownDescription":"The URI for your GHE.com or GitHub Enterprise Server instance.\n\nExamples:\n* GHE.com: `https://octocat.ghe.com`\n* GitHub Enterprise Server: `https://github.octocat.com`\n\n> **Note:** This should _not_ be set to a GitHub.com URI. If your account exists on GitHub.com or is a GitHub Enterprise Managed User, you do not need any additional configuration and can simply log in to GitHub.","pattern":"^(?:$|(https?)://(?!github\\.com).*)"},"github-authentication.useElectronFetch":{"type":"boolean","default":true,"scope":"application","markdownDescription":"When true, uses Electron's built-in fetch function for HTTP requests. When false, uses the Node.js global fetch function. This setting only applies when running in the Electron environment. **Note:** A restart is required for this setting to take effect."},"github-authentication.preferDeviceCodeFlow":{"type":"boolean","default":false,"scope":"application","markdownDescription":"When true, prioritize the device code flow for authentication instead of other available flows. This is useful for environments like WSL where the local server or URL handler flows may not work as expected."}}}]},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","main":"./dist/extension.js","browser":"./dist/browser/extension.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["authIssuers","authProviderSpecific","authSessionAccountIcon"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/github-authentication","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.go"},"manifest":{"name":"go","displayName":"Go Language Basics","description":"Provides syntax highlighting and bracket matching in Go files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin worlpaker/go-syntax syntaxes/go.tmLanguage.json ./syntaxes/go.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"go","extensions":[".go"],"aliases":["Go"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"go","scopeName":"source.go","path":"./syntaxes/go.tmLanguage.json"}],"configurationDefaults":{"[go]":{"editor.insertSpaces":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/go","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.groovy"},"manifest":{"name":"groovy","displayName":"Groovy Language Basics","description":"Provides snippets, syntax highlighting and bracket matching in Groovy files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/groovy.tmbundle Syntaxes/Groovy.tmLanguage ./syntaxes/groovy.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"groovy","aliases":["Groovy","groovy"],"extensions":[".groovy",".gvy",".gradle",".jenkinsfile",".nf"],"filenames":["Jenkinsfile"],"filenamePatterns":["Jenkinsfile*"],"firstLine":"^#!.*\\bgroovy\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"groovy","scopeName":"source.groovy","path":"./syntaxes/groovy.tmLanguage.json"}],"snippets":[{"language":"groovy","path":"./snippets/groovy.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/groovy","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.grunt"},"manifest":{"name":"grunt","publisher":"vscode","description":"Extension to add Grunt capabilities to VS Code.","displayName":"Grunt support for VS Code","version":"10.0.0","private":true,"icon":"images/grunt.png","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:grunt"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"grunt","type":"object","title":"Grunt","properties":{"grunt.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Grunt task detection. Grunt task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"grunt","required":["task"],"properties":{"task":{"type":"string","description":"The Grunt task to customize."},"args":{"type":"array","description":"Command line arguments to pass to the grunt task"},"file":{"type":"string","description":"The Grunt file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/grunt","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.gulp"},"manifest":{"name":"gulp","publisher":"vscode","description":"Extension to add Gulp capabilities to VSCode.","displayName":"Gulp support for VSCode","version":"10.0.0","icon":"images/gulp.png","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:gulp"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"gulp","type":"object","title":"Gulp","properties":{"gulp.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Gulp task detection. Gulp task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"gulp","required":["task"],"properties":{"task":{"type":"string","description":"The Gulp task to customize."},"file":{"type":"string","description":"The Gulp file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/gulp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.handlebars"},"manifest":{"name":"handlebars","displayName":"Handlebars Language Basics","description":"Provides syntax highlighting and bracket matching in Handlebars files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin daaain/Handlebars grammars/Handlebars.json ./syntaxes/Handlebars.tmLanguage.json"},"categories":["Programming Languages"],"extensionKind":["ui","workspace"],"contributes":{"languages":[{"id":"handlebars","extensions":[".handlebars",".hbs",".hjs"],"aliases":["Handlebars","handlebars"],"mimetypes":["text/x-handlebars-template"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"handlebars","scopeName":"text.html.handlebars","path":"./syntaxes/Handlebars.tmLanguage.json"}],"htmlLanguageParticipants":[{"languageId":"handlebars","autoInsert":true}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/handlebars","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[[2,"property `extensionKind` can be defined only if property `main` is also defined."]],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.hlsl"},"manifest":{"name":"hlsl","displayName":"HLSL Language Basics","description":"Provides syntax highlighting and bracket matching in HLSL files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin tgjones/shaders-tmLanguage grammars/hlsl.json ./syntaxes/hlsl.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"hlsl","extensions":[".hlsl",".hlsli",".fx",".fxh",".vsh",".psh",".cginc",".compute"],"aliases":["HLSL","hlsl"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"hlsl","path":"./syntaxes/hlsl.tmLanguage.json","scopeName":"source.hlsl"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/hlsl","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.html"},"manifest":{"name":"html","displayName":"HTML Language Basics","description":"Provides syntax highlighting, bracket matching & snippets in HTML files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"html","extensions":[".html",".htm",".shtml",".xhtml",".xht",".mdoc",".jsp",".asp",".aspx",".jshtm",".volt",".ejs",".rhtml"],"aliases":["HTML","htm","html","xhtml"],"mimetypes":["text/html","text/x-jshtm","text/template","text/ng-template","application/xhtml+xml"],"configuration":"./language-configuration.json"}],"grammars":[{"scopeName":"text.html.basic","path":"./syntaxes/html.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.css":"css","source.js":"javascript","source.python":"python","source.smarty":"smarty"},"tokenTypes":{"meta.tag string.quoted":"other"}},{"language":"html","scopeName":"text.html.derivative","path":"./syntaxes/html-derivative.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.css":"css","source.js":"javascript","source.python":"python","source.smarty":"smarty"},"tokenTypes":{"meta.tag string.quoted":"other"}}],"snippets":[{"language":"html","path":"./snippets/html.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/html","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.html-language-features"},"manifest":{"name":"html-language-features","displayName":"HTML Language Features","description":"Provides rich language support for HTML and Handlebar files","version":"10.0.0","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.77.0"},"icon":"icons/html.png","activationEvents":["onLanguage:html","onLanguage:handlebars"],"enabledApiProposals":["extensionsAny"],"main":"./client/dist/node/htmlClientMain","browser":"./client/dist/browser/htmlClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"categories":["Programming Languages"],"contributes":{"configuration":{"id":"html","order":20,"type":"object","title":"HTML","properties":{"html.completion.attributeDefaultValue":{"type":"string","scope":"resource","enum":["doublequotes","singlequotes","empty"],"enumDescriptions":["Attribute value is set to \"\".","Attribute value is set to ''.","Attribute value is not set."],"default":"doublequotes","markdownDescription":"Controls the default value for attributes when completion is accepted."},"html.customData":{"type":"array","markdownDescription":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-html-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its HTML support for the custom HTML tags, attributes and attribute values you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","default":[],"items":{"type":"string"},"scope":"resource"},"html.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default HTML formatter."},"html.format.wrapLineLength":{"type":"integer","scope":"resource","default":120,"description":"Maximum amount of characters per line (0 = disable)."},"html.format.unformatted":{"type":["string","null"],"scope":"resource","default":"wbr","markdownDescription":"List of tags, comma separated, that shouldn't be reformatted. `null` defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content."},"html.format.contentUnformatted":{"type":["string","null"],"scope":"resource","default":"pre,code,textarea","markdownDescription":"List of tags, comma separated, where the content shouldn't be reformatted. `null` defaults to the `pre` tag."},"html.format.indentInnerHtml":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Indent `` and `` sections."},"html.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text."},"html.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk. Use `null` for unlimited."},"html.format.indentHandlebars":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Format and indent `{{#foo}}` and `{{/foo}}`."},"html.format.extraLiners":{"type":["string","null"],"scope":"resource","default":"head, body, /html","markdownDescription":"List of tags, comma separated, that should have an extra newline before them. `null` defaults to `\"head, body, /html\"`."},"html.format.wrapAttributes":{"type":"string","scope":"resource","default":"auto","enum":["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"],"enumDescriptions":["Wrap attributes only when line length is exceeded.","Wrap each attribute except first.","Wrap each attribute except first and keep aligned.","Wrap each attribute.","Wrap when line length is exceeded, align attributes vertically.","Preserve wrapping of attributes.","Preserve wrapping of attributes but align."],"description":"Wrap attributes."},"html.format.wrapAttributesIndentSize":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Indent wrapped attributes to after N characters. Use `null` to use the default indent size. Ignored if `#html.format.wrapAttributes#` is set to `aligned`."},"html.format.templating":{"type":"boolean","scope":"resource","default":false,"description":"Honor django, erb, handlebars and php templating language tags."},"html.format.unformattedContentDelimiter":{"type":"string","scope":"resource","default":"","markdownDescription":"Keep text content together between this string."},"html.suggest.html5":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support suggests HTML5 tags, properties and values."},"html.suggest.hideEndTagSuggestions":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether the built-in HTML language support suggests closing tags. When disabled, end tag completions like `` will not be shown."},"html.validate.scripts":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support validates embedded scripts."},"html.validate.styles":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support validates embedded styles."},"html.autoCreateQuotes":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Enable/disable auto creation of quotes for HTML attribute assignment. The type of quotes can be configured by `#html.completion.attributeDefaultValue#`."},"html.autoClosingTags":{"type":"boolean","scope":"resource","default":true,"description":"Enable/disable autoclosing of HTML tags."},"html.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show tag and attribute documentation in hover."},"html.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in hover."},"html.mirrorCursorOnMatchingTag":{"type":"boolean","scope":"resource","default":false,"description":"Enable/disable mirroring cursor on matching HTML tag.","deprecationMessage":"Deprecated in favor of `editor.linkedEditing`"},"html.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the HTML language server."}}},"configurationDefaults":{"[html]":{"editor.suggest.insertMode":"replace"},"[handlebars]":{"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.html-data.json","url":"https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json"},{"fileMatch":"package.json","url":"./schemas/package.schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["extensionsAny"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/html-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ini"},"manifest":{"name":"ini","displayName":"Ini Language Basics","description":"Provides syntax highlighting and bracket matching in Ini files.","version":"10.0.0","private":true,"publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/ini.tmbundle Syntaxes/Ini.plist ./syntaxes/ini.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"ini","extensions":[".ini"],"aliases":["Ini","ini"],"configuration":"./ini.language-configuration.json"},{"id":"properties","extensions":[".conf",".properties",".cfg",".directory",".gitattributes",".gitconfig",".gitmodules",".editorconfig",".repo"],"filenames":["gitconfig"],"filenamePatterns":["**/.config/git/config","**/.git/config"],"aliases":["Properties","properties"],"configuration":"./properties.language-configuration.json"}],"grammars":[{"language":"ini","scopeName":"source.ini","path":"./syntaxes/ini.tmLanguage.json"},{"language":"properties","scopeName":"source.ini","path":"./syntaxes/ini.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ini","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ipynb"},"manifest":{"name":"ipynb","displayName":".ipynb Support","description":"Provides basic support for opening and reading Jupyter's .ipynb notebook files","publisher":"vscode","version":"10.0.0","license":"MIT","icon":"media/icon.png","engines":{"vscode":"^1.57.0"},"enabledApiProposals":["diffContentOptions"],"activationEvents":["onNotebook:jupyter-notebook","onNotebookSerializer:interactive","onNotebookSerializer:repl"],"extensionKind":["workspace","ui"],"main":"./dist/ipynbMain.node.js","browser":"./dist/browser/ipynbMain.browser.js","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":[{"properties":{"ipynb.pasteImagesAsAttachments.enabled":{"type":"boolean","scope":"resource","markdownDescription":"Enable/disable pasting of images into Markdown cells in ipynb notebook files. Pasted images are inserted as attachments to the cell.","default":true},"ipynb.experimental.serialization":{"type":"boolean","scope":"resource","markdownDescription":"Experimental feature to serialize the Jupyter notebook in a worker thread.","default":true,"tags":["experimental"]}}}],"commands":[{"command":"ipynb.newUntitledIpynb","title":"New Jupyter Notebook","shortTitle":"Jupyter Notebook","category":"Create"},{"command":"ipynb.openIpynbInNotebookEditor","title":"Open IPYNB File In Notebook Editor"},{"command":"ipynb.cleanInvalidImageAttachment","title":"Clean Invalid Image Attachment Reference"},{"command":"notebook.cellOutput.copy","title":"Copy Cell Output","category":"Notebook"},{"command":"notebook.cellOutput.addToChat","title":"Add Cell Output to Chat","category":"Notebook","enablement":"chatIsEnabled"},{"command":"notebook.cellOutput.openInTextEditor","title":"Open Cell Output in Text Editor","category":"Notebook"}],"notebooks":[{"type":"jupyter-notebook","displayName":"Jupyter Notebook","selector":[{"filenamePattern":"*.ipynb"}],"priority":"default"}],"notebookRenderer":[{"id":"vscode.markdown-it-cell-attachment-renderer","displayName":"Markdown-It ipynb Cell Attachment renderer","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/cellAttachmentRenderer.js"}}],"menus":{"file/newFile":[{"command":"ipynb.newUntitledIpynb","group":"notebook"}],"commandPalette":[{"command":"ipynb.newUntitledIpynb"},{"command":"ipynb.openIpynbInNotebookEditor","when":"false"},{"command":"ipynb.cleanInvalidImageAttachment","when":"false"},{"command":"notebook.cellOutput.copy","when":"notebookCellHasOutputs"},{"command":"notebook.cellOutput.openInTextEditor","when":"false"}],"webview/context":[{"command":"notebook.cellOutput.copy","when":"webviewId == 'notebook.output' && webviewSection == 'image'","group":"context@1"},{"command":"notebook.cellOutput.copy","when":"webviewId == 'notebook.output' && webviewSection == 'text'"},{"command":"notebook.cellOutput.addToChat","when":"webviewId == 'notebook.output' && (webviewSection == 'text' || webviewSection == 'image')","group":"context@2"},{"command":"notebook.cellOutput.openInTextEditor","when":"webviewId == 'notebook.output' && webviewSection == 'text'"}]}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["diffContentOptions"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ipynb","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.jake"},"manifest":{"name":"jake","publisher":"vscode","description":"Extension to add Jake capabilities to VS Code.","displayName":"Jake support for VS Code","icon":"images/cowboy_hat.png","version":"10.0.0","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:jake"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"jake","type":"object","title":"Jake","properties":{"jake.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Jake task detection. Jake task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"jake","required":["task"],"properties":{"task":{"type":"string","description":"The Jake task to customize."},"file":{"type":"string","description":"The Jake file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/jake","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.java"},"manifest":{"name":"java","displayName":"Java Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Java files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin redhat-developer/vscode-java language-support/java/java.tmLanguage.json ./syntaxes/java.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"java","extensions":[".java",".jav"],"aliases":["Java","java"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"java","scopeName":"source.java","path":"./syntaxes/java.tmLanguage.json"}],"snippets":[{"language":"java","path":"./snippets/java.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/java","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.javascript"},"manifest":{"name":"javascript","displayName":"JavaScript Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in JavaScript files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Programming Languages"],"contributes":{"configurationDefaults":{"[javascript]":{"editor.maxTokenizationLineLength":2500}},"languages":[{"id":"javascriptreact","aliases":["JavaScript JSX","JavaScript React","jsx"],"extensions":[".jsx"],"configuration":"./javascript-language-configuration.json"},{"id":"javascript","aliases":["JavaScript","javascript","js"],"extensions":[".js",".es6",".mjs",".cjs",".pac"],"filenames":["jakefile"],"firstLine":"^#!.*\\bnode","mimetypes":["text/javascript"],"configuration":"./javascript-language-configuration.json"},{"id":"jsx-tags","aliases":[],"configuration":"./tags-language-configuration.json"}],"grammars":[{"language":"javascriptreact","scopeName":"source.js.jsx","path":"./syntaxes/JavaScriptReact.tmLanguage.json","embeddedLanguages":{"meta.tag.js":"jsx-tags","meta.tag.without-attributes.js":"jsx-tags","meta.tag.attributes.js.jsx":"javascriptreact","meta.embedded.expression.js":"javascriptreact"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"language":"javascript","scopeName":"source.js","path":"./syntaxes/JavaScript.tmLanguage.json","embeddedLanguages":{"meta.tag.js":"jsx-tags","meta.tag.without-attributes.js":"jsx-tags","meta.tag.attributes.js":"javascript","meta.embedded.expression.js":"javascript"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"scopeName":"source.js.regexp","path":"./syntaxes/Regular Expressions (JavaScript).tmLanguage"}],"semanticTokenScopes":[{"language":"javascript","scopes":{"property":["variable.other.property.js"],"property.readonly":["variable.other.constant.property.js"],"variable":["variable.other.readwrite.js"],"variable.readonly":["variable.other.constant.object.js"],"function":["entity.name.function.js"],"namespace":["entity.name.type.module.js"],"variable.defaultLibrary":["support.variable.js"],"function.defaultLibrary":["support.function.js"]}},{"language":"javascriptreact","scopes":{"property":["variable.other.property.jsx"],"property.readonly":["variable.other.constant.property.jsx"],"variable":["variable.other.readwrite.jsx"],"variable.readonly":["variable.other.constant.object.jsx"],"function":["entity.name.function.jsx"],"namespace":["entity.name.type.module.jsx"],"variable.defaultLibrary":["support.variable.js"],"function.defaultLibrary":["support.function.js"]}}],"snippets":[{"language":"javascript","path":"./snippets/javascript.code-snippets"},{"language":"javascriptreact","path":"./snippets/javascript.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/javascript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.json"},"manifest":{"name":"json","displayName":"JSON Language Basics","description":"Provides syntax highlighting & bracket matching in JSON files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"json","aliases":["JSON","json"],"extensions":[".json",".bowerrc",".jscsrc",".webmanifest",".js.map",".css.map",".ts.map",".har",".jslintrc",".jsonld",".geojson",".ipynb",".vuerc"],"filenames":["composer.lock",".watchmanconfig"],"mimetypes":["application/json","application/manifest+json"],"configuration":"./language-configuration.json"},{"id":"jsonc","aliases":["JSON with Comments"],"extensions":[".jsonc",".eslintrc",".eslintrc.json",".jsfmtrc",".jshintrc",".swcrc",".hintrc",".babelrc",".toolset.jsonc"],"filenames":["babel.config.json","bun.lock",".babelrc.json",".ember-cli","typedoc.json"],"filenamePatterns":["**/.github/hooks/*.json"],"configuration":"./language-configuration.json"},{"id":"jsonl","aliases":["JSON Lines"],"extensions":[".jsonl",".ndjson"],"filenames":[],"configuration":"./language-configuration.json"},{"id":"snippets","aliases":["Code Snippets"],"extensions":[".code-snippets"],"filenamePatterns":["**/User/snippets/*.json","**/User/profiles/*/snippets/*.json","**/snippets*.json"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"json","scopeName":"source.json","path":"./syntaxes/JSON.tmLanguage.json"},{"language":"jsonc","scopeName":"source.json.comments","path":"./syntaxes/JSONC.tmLanguage.json"},{"language":"jsonl","scopeName":"source.json.lines","path":"./syntaxes/JSONL.tmLanguage.json"},{"language":"snippets","scopeName":"source.json.comments.snippets","path":"./syntaxes/snippets.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/json","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.json-language-features"},"manifest":{"name":"json-language-features","displayName":"JSON Language Features","description":"Provides rich language support for JSON files.","version":"10.0.0","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.77.0"},"enabledApiProposals":["extensionsAny"],"icon":"icons/json.png","activationEvents":["onLanguage:json","onLanguage:jsonc","onLanguage:snippets","onCommand:json.validate"],"main":"./client/dist/node/jsonClientMain","browser":"./client/dist/browser/jsonClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","description":"The extension requires workspace trust to load schemas from http and https."}},"categories":["Programming Languages"],"contributes":{"configuration":{"id":"json","order":20,"type":"object","title":"JSON","properties":{"json.schemas":{"type":"array","scope":"resource","description":"Associate schemas to JSON files in the current project.","items":{"type":"object","default":{"fileMatch":["/myfile"],"url":"schemaURL"},"properties":{"url":{"type":"string","default":"/user.schema.json","markdownDescription":"A URL or absolute file path to a schema. Can be a relative path (starting with `./`) in workspace and workspace folder settings."},"fileMatch":{"type":"array","items":{"type":"string","default":"MyFile.json","markdownDescription":"A file pattern that can contain `*` and `**` to match against when resolving JSON files to schemas. When beginning with `!`, it defines an exclusion pattern."},"minItems":1,"markdownDescription":"An array of file patterns to match against when resolving JSON files to schemas. `*` and `**` can be used as a wildcard. Exclusion patterns can also be defined and start with `!`. A file matches when there is at least one matching pattern and the last matching pattern is not an exclusion pattern."},"schema":{"$ref":"http://json-schema.org/draft-07/schema#","description":"The schema definition for the given URL. The schema only needs to be provided to avoid accesses to the schema URL."}}}},"json.validate.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable JSON validation."},"json.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default JSON formatter"},"json.format.keepLines":{"type":"boolean","scope":"window","default":false,"description":"Keep all existing new lines when formatting."},"json.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the JSON language server."},"json.colorDecorators.enable":{"type":"boolean","scope":"window","default":true,"description":"Enables or disables color decorators","deprecationMessage":"The setting `json.colorDecorators.enable` has been deprecated in favor of `editor.colorDecorators`."},"json.maxItemsComputed":{"type":"number","default":5000,"description":"The maximum number of outline symbols and folding regions computed (limited for performance reasons)."},"json.schemaDownload.enable":{"type":"boolean","default":true,"description":"When enabled, JSON schemas can be fetched from http and https locations.","tags":["usesOnlineServices"]},"json.schemaDownload.trustedDomains":{"type":"object","default":{"https://schemastore.azurewebsites.net/":true,"https://raw.githubusercontent.com/microsoft/vscode/":true,"https://raw.githubusercontent.com/devcontainers/spec/":true,"https://www.schemastore.org/":true,"https://json.schemastore.org/":true,"https://json-schema.org/":true,"https://developer.microsoft.com/json-schemas/":true},"additionalProperties":{"type":"boolean"},"markdownDescription":"List of trusted domains for downloading JSON schemas over http(s). Use `*` to trust all domains. `*` can also be used as a wildcard in domain names.","tags":["usesOnlineServices"]}}},"configurationDefaults":{"[json]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"},"[jsonc]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"},"[snippets]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.schema.json","url":"http://json-schema.org/draft-07/schema#"}],"jsonValidationRegistry":[{"url":"vscode://schemas-associations/schemas-associations.json"}],"commands":[{"command":"json.clearCache","title":"Clear Schema Cache","category":"JSON"},{"command":"json.sort","title":"Sort Document","category":"JSON"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["extensionsAny"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/json-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.julia"},"manifest":{"name":"julia","displayName":"Julia Language Basics","description":"Provides syntax highlighting & bracket matching in Julia files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin JuliaEditorSupport/atom-language-julia variants/julia_vscode.json ./syntaxes/julia.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"julia","aliases":["Julia","julia"],"extensions":[".jl"],"firstLine":"^#!\\s*/.*\\bjulia[0-9.-]*\\b","configuration":"./language-configuration.json"},{"id":"juliamarkdown","aliases":["Julia Markdown","juliamarkdown"],"extensions":[".jmd"]}],"grammars":[{"language":"julia","scopeName":"source.julia","path":"./syntaxes/julia.tmLanguage.json","embeddedLanguages":{"meta.embedded.inline.cpp":"cpp","meta.embedded.inline.javascript":"javascript","meta.embedded.inline.python":"python","meta.embedded.inline.r":"r","meta.embedded.inline.sql":"sql"}}],"configurationDefaults":{"[julia]":{"editor.defaultColorDecorators":"never"}}}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/julia","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.latex"},"manifest":{"name":"latex","displayName":"LaTeX Language Basics","description":"Provides syntax highlighting and bracket matching for TeX, LaTeX and BibTeX.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"tex","aliases":["TeX","tex"],"extensions":[".sty",".cls",".bbx",".cbx"],"configuration":"latex-language-configuration.json"},{"id":"latex","aliases":["LaTeX","latex"],"extensions":[".tex",".ltx",".ctx"],"configuration":"latex-language-configuration.json"},{"id":"bibtex","aliases":["BibTeX","bibtex"],"extensions":[".bib"]},{"id":"cpp_embedded_latex","configuration":"latex-cpp-embedded-language-configuration.json","aliases":[]},{"id":"markdown_latex_combined","configuration":"markdown-latex-combined-language-configuration.json","aliases":[]}],"grammars":[{"language":"tex","scopeName":"text.tex","path":"./syntaxes/TeX.tmLanguage.json","unbalancedBracketScopes":["keyword.control.ifnextchar.tex","punctuation.math.operator.tex"]},{"language":"latex","scopeName":"text.tex.latex","path":"./syntaxes/LaTeX.tmLanguage.json","unbalancedBracketScopes":["keyword.control.ifnextchar.tex","punctuation.math.operator.tex"],"embeddedLanguages":{"source.cpp":"cpp_embedded_latex","source.css":"css","text.html":"html","source.java":"java","source.js":"javascript","source.julia":"julia","source.lua":"lua","source.python":"python","source.ruby":"ruby","source.ts":"typescript","text.xml":"xml","source.yaml":"yaml","meta.embedded.markdown_latex_combined":"markdown_latex_combined"}},{"language":"bibtex","scopeName":"text.bibtex","path":"./syntaxes/Bibtex.tmLanguage.json"},{"language":"markdown_latex_combined","scopeName":"text.tex.markdown_latex_combined","path":"./syntaxes/markdown-latex-combined.tmLanguage.json"},{"language":"cpp_embedded_latex","scopeName":"source.cpp.embedded.latex","path":"./syntaxes/cpp-grammar-bailout.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/latex","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.less"},"manifest":{"name":"less","displayName":"Less Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Less files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"less","aliases":["Less","less"],"extensions":[".less"],"mimetypes":["text/x-less","text/less"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"less","scopeName":"source.css.less","path":"./syntaxes/less.tmLanguage.json"}],"problemMatchers":[{"name":"lessc","label":"Lessc compiler","owner":"lessc","source":"less","fileLocation":"absolute","pattern":{"regexp":"(.*)\\sin\\s(.*)\\son line\\s(\\d+),\\scolumn\\s(\\d+)","message":1,"file":2,"line":3,"column":4}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/less","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.log"},"manifest":{"name":"log","displayName":"Log","description":"Provides syntax highlighting for files with .log extension.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin emilast/vscode-logfile-highlighter syntaxes/log.tmLanguage ./syntaxes/log.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"log","extensions":[".log","*.log.?"],"aliases":["Log"]}],"grammars":[{"language":"log","scopeName":"text.log","path":"./syntaxes/log.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/log","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.lua"},"manifest":{"name":"lua","displayName":"Lua Language Basics","description":"Provides syntax highlighting and bracket matching in Lua files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin sumneko/lua.tmbundle Syntaxes/Lua.plist ./syntaxes/lua.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"lua","extensions":[".lua"],"aliases":["Lua","lua"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"lua","scopeName":"source.lua","path":"./syntaxes/lua.tmLanguage.json","tokenTypes":{"comment.line.double-dash.doc.lua":"other"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/lua","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.make"},"manifest":{"name":"make","displayName":"Make Language Basics","description":"Provides syntax highlighting and bracket matching in Make files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin fadeevab/make.tmbundle Syntaxes/Makefile.plist ./syntaxes/make.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"makefile","aliases":["Makefile","makefile"],"extensions":[".mak",".mk"],"filenames":["Makefile","makefile","GNUmakefile","OCamlMakefile"],"firstLine":"^#!\\s*/usr/bin/make","configuration":"./language-configuration.json"}],"grammars":[{"language":"makefile","scopeName":"source.makefile","path":"./syntaxes/make.tmLanguage.json","tokenTypes":{"string.interpolated":"other"}}],"configurationDefaults":{"[makefile]":{"editor.insertSpaces":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/make","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown"},"manifest":{"name":"markdown","displayName":"Markdown Language Basics","description":"Provides snippets and syntax highlighting for Markdown.","version":"30.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.20.0"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"markdown","aliases":["Markdown","markdown"],"extensions":[".md",".mkd",".mkdn",".mdwn",".mdown",".markdown",".markdn",".mdtxt",".mdtext",".litcoffee",".ron",".ronn",".workbook"],"filenamePatterns":["**/.cursor/**/*.mdc"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"markdown","scopeName":"text.html.markdown","path":"./syntaxes/markdown.tmLanguage.json","embeddedLanguages":{"meta.embedded.block.html":"html","source.js":"javascript","source.css":"css","meta.embedded.block.frontmatter":"yaml","meta.embedded.block.css":"css","meta.embedded.block.ini":"ini","meta.embedded.block.java":"java","meta.embedded.block.lua":"lua","meta.embedded.block.makefile":"makefile","meta.embedded.block.perl":"perl","meta.embedded.block.r":"r","meta.embedded.block.ruby":"ruby","meta.embedded.block.php":"php","meta.embedded.block.sql":"sql","meta.embedded.block.vs_net":"vs_net","meta.embedded.block.xml":"xml","meta.embedded.block.xsl":"xsl","meta.embedded.block.yaml":"yaml","meta.embedded.block.dosbatch":"dosbatch","meta.embedded.block.clojure":"clojure","meta.embedded.block.coffee":"coffee","meta.embedded.block.c":"c","meta.embedded.block.cpp":"cpp","meta.embedded.block.diff":"diff","meta.embedded.block.dockerfile":"dockerfile","meta.embedded.block.go":"go","meta.embedded.block.groovy":"groovy","meta.embedded.block.pug":"jade","meta.embedded.block.ignore":"ignore","meta.embedded.block.javascript":"javascript","meta.embedded.block.json":"json","meta.embedded.block.jsonc":"jsonc","meta.embedded.block.jsonl":"jsonl","meta.embedded.block.latex":"latex","meta.embedded.block.less":"less","meta.embedded.block.objc":"objc","meta.embedded.block.scss":"scss","meta.embedded.block.perl6":"perl6","meta.embedded.block.powershell":"powershell","meta.embedded.block.python":"python","meta.embedded.block.restructuredtext":"restructuredtext","meta.embedded.block.rust":"rust","meta.embedded.block.scala":"scala","meta.embedded.block.shellscript":"shellscript","meta.embedded.block.typescript":"typescript","meta.embedded.block.typescriptreact":"typescriptreact","meta.embedded.block.csharp":"csharp","meta.embedded.block.fsharp":"fsharp"},"unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown","keyword.operator.relational.cs","keyword.operator.arrow.cs","punctuation.accessor.pointer.cs","keyword.operator.bitwise.shift.cs","keyword.operator.assignment.compound.bitwise.cs","keyword.operator.relational.ts","storage.type.function.arrow.ts","keyword.operator.bitwise.shift.ts","keyword.operator.assignment.compound.bitwise.ts","keyword.operator.relational.tsx","storage.type.function.arrow.tsx","keyword.operator.bitwise.shift.tsx","keyword.operator.assignment.compound.bitwise.tsx"]}],"snippets":[{"language":"markdown","path":"./snippets/markdown.code-snippets"}],"configurationDefaults":{"[markdown]":{"editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false}}},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin microsoft/vscode-markdown-tm-grammar syntaxes/markdown.tmLanguage ./syntaxes/markdown.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/markdown-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown-language-features"},"manifest":{"name":"markdown-language-features","displayName":"Markdown Language Features","description":"Provides rich language support for Markdown.","version":"10.0.0","icon":"icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["agentEditorComments","customEditorDiffs","documentDiff","documentSyntaxHighlighting","externalUriOpener","linkPresentation","textEditorDiffInformation"],"engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension","categories":["Programming Languages"],"activationEvents":["onLanguage:markdown","onLanguage:prompt","onLanguage:instructions","onLanguage:chatagent","onLanguage:skill","onCommand:markdown.api.render","onCommand:markdown.api.reloadPlugins","onWebviewPanel:markdown.preview"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","description":"Required for loading styles configured in the workspace.","restrictedConfigurations":["markdown.styles"]}},"contributes":{"linkPresentationProviders":[{"id":"markdown.gitCommitLinkPresentations","kind":"commit","uriPattern":"^(?:commit:[^?#]+|https?://[^\\s?#]+/(?:commit|-/commit)/[^/?#]+)(?:[?#].*)?$"},{"id":"markdown.workspaceFileLinkPresentations","kind":"file","uriPattern":"^(?:(?:file|vscode-remote|vscode-vfs):[^?#]*|(?!(?:[a-z][a-z0-9+.-]*:|#))[^?#]+)(?:[?#].*)?$"}],"notebookRenderer":[{"id":"vscode.markdown-it-renderer","displayName":"Markdown it renderer","entrypoint":"./notebook-out/index.js","mimeTypes":["text/markdown","text/latex","text/x-css","text/x-html","text/x-json","text/x-typescript","text/x-abap","text/x-apex","text/x-azcli","text/x-bat","text/x-cameligo","text/x-clojure","text/x-coffee","text/x-cpp","text/x-csharp","text/x-csp","text/x-css","text/x-dart","text/x-dockerfile","text/x-ecl","text/x-fsharp","text/x-go","text/x-graphql","text/x-handlebars","text/x-hcl","text/x-html","text/x-ini","text/x-java","text/x-javascript","text/x-julia","text/x-kotlin","text/x-less","text/x-lexon","text/x-lua","text/x-m3","text/x-markdown","text/x-mips","text/x-msdax","text/x-mysql","text/x-objective-c/objective","text/x-pascal","text/x-pascaligo","text/x-perl","text/x-pgsql","text/x-php","text/x-postiats","text/x-powerquery","text/x-powershell","text/x-pug","text/x-python","text/x-r","text/x-razor","text/x-redis","text/x-redshift","text/x-restructuredtext","text/x-ruby","text/x-rust","text/x-sb","text/x-scala","text/x-scheme","text/x-scss","text/x-shell","text/x-solidity","text/x-sophia","text/x-sql","text/x-st","text/x-swift","text/x-systemverilog","text/x-tcl","text/x-twig","text/x-typescript","text/x-vb","text/x-xml","text/x-yaml","application/json"]}],"commands":[{"command":"_markdown.copyImage","title":"Copy Image","category":"Markdown"},{"command":"_markdown.openImage","title":"Open Image","category":"Markdown"},{"command":"_markdown.openFrontMatterSettings","title":"Configure Frontmatter Visibility","category":"Markdown"},{"command":"markdown.showPreview","title":"Open Preview","category":"Markdown","icon":{"light":"./media/preview-light.svg","dark":"./media/preview-dark.svg"}},{"command":"markdown.showPreviewToSide","title":"Open Preview to the Side","category":"Markdown","icon":"$(open-preview)"},{"command":"markdown.showLockedPreviewToSide","title":"Open Locked Preview to the Side","category":"Markdown","icon":"$(open-preview)"},{"command":"markdown.showSource","title":"Open Source File","category":"Markdown","icon":"$(file-code)"},{"command":"markdown.showPreviewSecuritySelector","title":"Change Preview Security Settings","category":"Markdown"},{"command":"markdown.preview.refresh","title":"Refresh Preview","category":"Markdown"},{"command":"markdown.preview.toggleLock","title":"Toggle Preview Locking","category":"Markdown"},{"command":"markdown.findAllFileReferences","title":"Find File References","category":"Markdown"},{"command":"markdown.reopenAsPreview","title":"Open as Preview","category":"Markdown","icon":"$(preview)"},{"command":"markdown.reopenAsSource","title":"Reopen as source file","category":"Markdown","icon":"$(file-code)"},{"command":"markdown.togglePreview","title":"Toggle Preview","category":"Markdown"},{"command":"markdown.editor.insertLinkFromWorkspace","title":"Insert Link to File in Workspace","category":"Markdown","enablement":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !activeEditorIsReadonly"},{"command":"markdown.editor.insertImageFromWorkspace","title":"Insert Image from Workspace","category":"Markdown","enablement":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !activeEditorIsReadonly"},{"command":"markdown.editor.cursorLeft","title":"Move Cursor Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorRight","title":"Move Cursor Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorUp","title":"Move Cursor Up","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDown","title":"Move Cursor Down","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLeftSelect","title":"Select Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorRightSelect","title":"Select Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorUpSelect","title":"Select Up","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDownSelect","title":"Select Down","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordLeft","title":"Move Cursor Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordRight","title":"Move Cursor Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","title":"Select Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","title":"Select Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","title":"Move Cursor to Visual Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","title":"Move Cursor to Visual Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","title":"Select to Visual Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","title":"Select to Visual Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","title":"Move Cursor to Logical Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","title":"Move Cursor to Logical Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","title":"Select to Logical Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","title":"Select to Logical Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentStart","title":"Move Cursor to Document Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","title":"Move Cursor to Document End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","title":"Select to Document Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","title":"Select to Document End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.selectAll","title":"Select All","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLeft","title":"Delete Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteRight","title":"Delete Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteWordLeft","title":"Delete Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteWordRight","title":"Delete Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLineLeft","title":"Delete All Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLineRight","title":"Delete All Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.undo","title":"Undo","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.redo","title":"Redo","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertTab","title":"Insert Tab","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.outdent","title":"Outdent","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.toggleTabFocus","title":"Toggle Tab Key Moves Focus","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.smartEnter","title":"Insert Paragraph","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertHardLineBreak","title":"Insert Hard Line Break","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertParagraph","title":"Insert Paragraph Without Continuing Markup","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true}],"menus":{"webview/context":[{"command":"_markdown.copyImage","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && (webviewSection == 'image' || webviewSection == 'localImage')"},{"command":"_markdown.openImage","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && webviewSection == 'localImage'"},{"command":"_markdown.openFrontMatterSettings","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && webviewSection == 'frontMatter'"}],"editor/title":[{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview","alt":"markdown.showPreview","group":"navigation@1"},{"command":"markdown.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview && !isSessionsWindow","group":"navigation@2"},{"command":"markdown.showSource","when":"activeWebviewPanelId == 'markdown.preview'","group":"navigation@2"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor' && !activeCustomEditorTextDiff && !isSessionsWindow","group":"navigation@2"},{"command":"markdown.preview.refresh","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"},{"command":"markdown.preview.toggleLock","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"},{"command":"markdown.showPreviewSecuritySelector","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"}],"modalEditor/editorTitle":[{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview","alt":"markdown.showPreview","group":"navigation"},{"command":"markdown.reopenAsPreview","when":"(activeEditor == workbench.editors.files.textFileEditor || activeEditor == workbench.editors.textDiffEditor) && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview && !isSessionsWindow","group":"navigation"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor' && !activeCustomEditorTextDiff && !isSessionsWindow","group":"navigation"}],"explorer/context":[{"command":"markdown.showPreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !hasCustomMarkdownPreview","group":"navigation"},{"command":"markdown.findAllFileReferences","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/","group":"4_search"}],"editor/title/context":[{"command":"markdown.showPreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !hasCustomMarkdownPreview","group":"1_open"},{"command":"markdown.findAllFileReferences","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"}],"commandPalette":[{"command":"_markdown.openImage","when":"false"},{"command":"_markdown.copyImage","when":"false"},{"command":"markdown.showPreview","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showLockedPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showSource","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"navigation"},{"command":"markdown.showPreviewSecuritySelector","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.showPreviewSecuritySelector","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.preview.toggleLock","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.preview.refresh","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.preview.refresh","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.findAllFileReferences","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"},{"command":"markdown.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/","group":"navigation"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"navigation"},{"command":"markdown.togglePreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"},{"command":"markdown.editor.cursorLeft","when":"false","$generated":true},{"command":"markdown.editor.cursorRight","when":"false","$generated":true},{"command":"markdown.editor.cursorUp","when":"false","$generated":true},{"command":"markdown.editor.cursorDown","when":"false","$generated":true},{"command":"markdown.editor.cursorLeftSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorRightSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorUpSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDownSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorWordLeft","when":"false","$generated":true},{"command":"markdown.editor.cursorWordRight","when":"false","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentStart","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","when":"false","$generated":true},{"command":"markdown.editor.selectAll","when":"false","$generated":true},{"command":"markdown.editor.deleteLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteRight","when":"false","$generated":true},{"command":"markdown.editor.deleteWordLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteWordRight","when":"false","$generated":true},{"command":"markdown.editor.deleteLineLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteLineRight","when":"false","$generated":true},{"command":"markdown.editor.undo","when":"false","$generated":true},{"command":"markdown.editor.redo","when":"false","$generated":true},{"command":"markdown.editor.insertTab","when":"false","$generated":true},{"command":"markdown.editor.outdent","when":"false","$generated":true},{"command":"markdown.editor.toggleTabFocus","when":"false","$generated":true},{"command":"markdown.editor.smartEnter","when":"false","$generated":true},{"command":"markdown.editor.insertHardLineBreak","when":"false","$generated":true},{"command":"markdown.editor.insertParagraph","when":"false","$generated":true}]},"keybindings":[{"command":"markdown.showPreviewToSide","key":"ctrl+k v","mac":"cmd+k v","when":"editorFocus && editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.togglePreview","key":"shift+ctrl+v","mac":"shift+cmd+v","when":"!terminalFocus && ((editorFocus && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused) || activeCustomEditorId == 'vscode.markdown.preview.editor')"},{"command":"markdown.editor.cursorLeft","key":"ctrl+b","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLeft","key":"left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorRight","key":"ctrl+f","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorRight","key":"right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorUp","key":"ctrl+p","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorUp","key":"up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorDown","key":"ctrl+n","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDown","key":"down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorLeftSelect","key":"shift+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorRightSelect","key":"shift+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorUpSelect","key":"shift+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorDownSelect","key":"shift+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorWordLeft","key":"alt+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordLeft","key":"ctrl+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordRight","key":"alt+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordRight","key":"ctrl+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","key":"shift+alt+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","key":"ctrl+shift+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","key":"shift+alt+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","key":"ctrl+shift+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","key":"cmd+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","key":"home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","key":"cmd+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","key":"end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","key":"shift+cmd+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","key":"shift+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","key":"shift+cmd+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","key":"shift+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","key":"ctrl+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","key":"ctrl+e","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","key":"ctrl+shift+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","key":"ctrl+shift+e","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStart","key":"cmd+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStart","key":"ctrl+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","key":"cmd+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","key":"ctrl+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","key":"shift+cmd+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","key":"ctrl+shift+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","key":"shift+cmd+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","key":"ctrl+shift+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.selectAll","key":"cmd+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.selectAll","key":"ctrl+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"ctrl+h","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"ctrl+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteLeft","key":"shift+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteRight","key":"ctrl+d","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteRight","key":"ctrl+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteRight","key":"delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteWordLeft","key":"alt+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteWordLeft","key":"ctrl+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteWordRight","key":"alt+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteWordRight","key":"ctrl+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteLineLeft","key":"cmd+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLineRight","key":"cmd+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLineRight","key":"ctrl+k","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.undo","key":"cmd+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.undo","key":"ctrl+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.redo","key":"shift+cmd+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.redo","key":"ctrl+shift+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.redo","key":"ctrl+y","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.smartEnter","key":"enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.insertHardLineBreak","key":"shift+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.insertParagraph","key":"cmd+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.insertParagraph","key":"ctrl+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true}],"configuration":[{"title":"Language Features","order":20,"properties":{"markdown.experimental.richLinks.enabled":{"type":"boolean","default":true,"description":"Controls whether supported links in the Markdown editor are rendered as rich links with live metadata. Enabling this may make authenticated requests to services such as GitHub.","scope":"window","tags":["experimental","onExP"]},"markdown.links.openLocation":{"type":"string","default":"currentGroup","description":"Controls where links in Markdown files should be opened.","scope":"resource","enum":["currentGroup","beside"],"enumDescriptions":["Open links in the active editor group.","Open links beside the active editor."]},"markdown.suggest.paths.enabled":{"type":"boolean","default":true,"description":"Controls whether path suggestions are shown while writing links in Markdown files.","scope":"resource"},"markdown.suggest.paths.includeWorkspaceHeaderCompletions":{"type":"string","default":"onDoubleHash","scope":"resource","markdownDescription":"Enable suggestions for headers in other Markdown files in the current workspace. Accepting one of these suggestions inserts the full path to header in that file, for example: `[link text](/path/to/file.md#header)`.","enum":["never","onDoubleHash","onSingleOrDoubleHash"],"markdownEnumDescriptions":["Disable workspace header suggestions.","Enable workspace header suggestions after typing `##` in a path, for example: `[link text](##`.","Enable workspace header suggestions after typing either `##` or `#` in a path, for example: `[link text](#` or `[link text](##`."]},"markdown.editor.drop.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether dropping files into a Markdown editor while holding Shift inserts Markdown links. Requires enabling `#editor.dropIntoEditor.enabled#`.","default":"smart","enum":["always","smart","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not dropping into a code block or other special element. Use the drop widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.drop.copyIntoWorkspace":{"type":"string","markdownDescription":"Controls if files outside of the workspace that are dropped into a Markdown editor should be copied into the workspace.\n\nUse `#markdown.copyFiles.destination#` to configure where copied dropped files should be created","default":"mediaFiles","enum":["mediaFiles","never"],"markdownEnumDescriptions":["Try to copy external image and video files into the workspace.","Do not copy external files into the workspace."]},"markdown.editor.filePaste.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether pasting files into a Markdown editor creates Markdown links. Requires enabling `#editor.pasteAs.enabled#`.","default":"smart","enum":["always","smart","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.filePaste.copyIntoWorkspace":{"type":"string","markdownDescription":"Controls if files outside of the workspace that are pasted into a Markdown editor should be copied into the workspace.\n\nUse `#markdown.copyFiles.destination#` to configure where copied files should be created.","default":"mediaFiles","enum":["mediaFiles","never"],"markdownEnumDescriptions":["Try to copy external image and video files into the workspace.","Do not copy external files into the workspace."]},"markdown.editor.filePaste.videoSnippet":{"type":"string","markdownDescription":"Snippet used when adding videos to Markdown. This snippet can use the following variables:\n- `${src}` — The resolved path of the video file.\n- `${title}` — The title used for the video. A snippet placeholder will automatically be created for this variable.","default":""},"markdown.editor.filePaste.audioSnippet":{"type":"string","markdownDescription":"Snippet used when adding audio to Markdown. This snippet can use the following variables:\n- `${src}` — The resolved path of the audio file.\n- `${title}` — The title used for the audio. A snippet placeholder will automatically be created for this variable.","default":""},"markdown.editor.pasteUrlAsFormattedLink.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls if Markdown links are created when URLs are pasted into a Markdown editor. Requires enabling `#editor.pasteAs.enabled#`.","default":"smartWithSelection","enum":["always","smart","smartWithSelection","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Smartly create Markdown links by default when you have selected text and are not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.updateLinksOnPaste.enabled":{"type":"boolean","markdownDescription":"Enable/disable a paste option that updates links and reference in text that is copied and pasted between Markdown editors.\n\nTo use this feature, after pasting text that contains updatable links, just click on the Paste Widget and select `Paste and update pasted links`.","scope":"resource","default":true},"markdown.updateLinksOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each file move.","Always update links automatically.","Never try to update link and don't prompt."],"default":"never","markdownDescription":"Try to update links in Markdown files when a file is renamed/moved in the workspace. Use `#markdown.updateLinksOnFileMove.include#` to configure which files trigger link updates.","scope":"window"},"markdown.updateLinksOnFileMove.include":{"type":"array","markdownDescription":"Glob patterns that specifies files that trigger automatic link updates. See `#markdown.updateLinksOnFileMove.enabled#` for details about this feature.","scope":"window","items":{"type":"string","description":"The glob pattern to match file paths against. Set to true to enable the pattern."},"default":["**/*.{md,mkd,mdwn,mdown,markdown,markdn,mdtxt,mdtext,workbook}","**/*.{jpg,jpe,jpeg,png,bmp,gif,ico,webp,avif,tiff,svg,mp4}"]},"markdown.updateLinksOnFileMove.enableForDirectories":{"type":"boolean","default":true,"description":"Enable updating links when a directory is moved or renamed in the workspace.","scope":"window"},"markdown.occurrencesHighlight.enabled":{"type":"boolean","default":false,"description":"Controls whether link occurrences in the current document are highlighted.","scope":"resource"},"markdown.copyFiles.destination":{"type":"object","markdownDescription":"Configures the path and file name of files created by copy/paste or drag and drop. This is a map of globs that match against a Markdown document path to the destination path where the new file should be created.\n\nThe destination path may use the following variables:\n\n- `${documentDirName}` — Absolute parent directory path of the Markdown document, e.g. `/Users/me/myProject/docs`.\n- `${documentRelativeDirName}` — Relative parent directory path of the Markdown document, e.g. `docs`. This is the same as `${documentDirName}` if the file is not part of a workspace.\n- `${documentFileName}` — The full filename of the Markdown document, e.g. `README.md`.\n- `${documentBaseName}` — The basename of the Markdown document, e.g. `README`.\n- `${documentExtName}` — The extension of the Markdown document, e.g. `md`.\n- `${documentFilePath}` — Absolute path of the Markdown document, e.g. `/Users/me/myProject/docs/README.md`.\n- `${documentRelativeFilePath}` — Relative path of the Markdown document, e.g. `docs/README.md`. This is the same as `${documentFilePath}` if the file is not part of a workspace.\n- `${documentWorkspaceFolder}` — The workspace folder for the Markdown document, e.g. `/Users/me/myProject`. This is the same as `${documentDirName}` if the file is not part of a workspace.\n- `${fileName}` — The file name of the dropped file, e.g. `image.png`.\n- `${fileExtName}` — The extension of the dropped file, e.g. `png`.\n- `${unixTime}` — The current Unix timestamp in milliseconds.\n- `${isoTime}` — The current time in ISO 8601 format, e.g. '2025-06-06T08:40:32.123Z'.","additionalProperties":{"type":"string"}},"markdown.copyFiles.overwriteBehavior":{"type":"string","markdownDescription":"Controls if files created by drop or paste should overwrite existing files.","default":"nameIncrementally","enum":["nameIncrementally","overwrite"],"markdownEnumDescriptions":["If a file with the same name already exists, append a number to the file name, for example: `image.png` becomes `image-1.png`.","If a file with the same name already exists, overwrite it."]},"markdown.preferredMdPathExtensionStyle":{"type":"string","default":"auto","markdownDescription":"Controls if file extensions (for example `.md`) are added or not for links to Markdown files. This setting is used when file paths are added by tooling such as path completions or file renames.","enum":["auto","includeExtension","removeExtension"],"markdownEnumDescriptions":["For existing paths, try to maintain the file extension style. For new paths, add file extensions.","Prefer including the file extension. For example, path completions to a file named `file.md` will insert `file.md`.","Prefer removing the file extension. For example, path completions to a file named `file.md` will insert `file` without the `.md`."]}}},{"title":"Validation","order":22,"properties":{"markdown.validate.enabled":{"order":0,"type":"boolean","scope":"resource","description":"Controls whether error reporting is enabled in Markdown files.","default":false},"markdown.validate.referenceLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether reference links in Markdown files are validated, for example: `[link][ref]`. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fragmentLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether fragment links to headers in the current Markdown file are validated, for example: `[link](#header)`. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fileLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether links to other files in Markdown files are validated, for example `[link](/path/to/file.md)`. This checks that the target files exist. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fileLinks.markdownFragmentLinks":{"type":"string","scope":"resource","markdownDescription":"Validate the fragment part of links to headers in other files in Markdown files, for example: `[link](/path/to/file.md#header)`. Inherits the setting value from `#markdown.validate.fragmentLinks.enabled#` by default.","default":"inherit","enum":["inherit","ignore","warning","error"]},"markdown.validate.ignoredLinks":{"type":"array","scope":"resource","markdownDescription":"Configure links that should not be validated. For example adding `/about` would not validate the link `[about](/about)`, while the glob `/assets/**/*.svg` would let you skip validation for any link to `.svg` files under the `assets` directory.","items":{"type":"string"}},"markdown.validate.unusedLinkDefinitions.enabled":{"type":"string","scope":"resource","markdownDescription":"Validate link definitions that are unused in the current file.","default":"hint","enum":["ignore","hint","warning","error"]},"markdown.validate.duplicateLinkDefinitions.enabled":{"type":"string","scope":"resource","markdownDescription":"Validate duplicated definitions in the current file.","default":"warning","enum":["ignore","warning","error"]}}},{"title":"Preview","order":23,"properties":{"markdown.styles":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"A list of URLs or local paths to CSS style sheets to use from the Markdown preview. Relative paths are interpreted relative to the folder open in the Explorer. If there is no open folder, they are interpreted relative to the location of the Markdown file. All `\\` need to be written as `\\\\`.","scope":"resource"},"markdown.preview.breaks":{"type":"boolean","default":false,"markdownDescription":"Sets how line-breaks are rendered in the Markdown preview. Setting it to `true` creates a `
` for newlines inside paragraphs.","scope":"resource"},"markdown.preview.linkify":{"type":"boolean","default":true,"description":"Convert URL-like text to links in the Markdown preview.","scope":"resource"},"markdown.preview.typographer":{"type":"boolean","default":false,"description":"Enable some language-neutral replacement and quotes beautification in the Markdown preview.","scope":"resource"},"markdown.preview.fontFamily":{"type":"string","default":"-apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif","description":"Controls the font family used in the Markdown preview.","scope":"resource"},"markdown.preview.fontSize":{"type":"number","default":14,"description":"Controls the font size in pixels used in the Markdown preview.","scope":"resource"},"markdown.preview.lineHeight":{"type":"number","default":1.6,"description":"Controls the line height used in the Markdown preview. This number is relative to the font size.","scope":"resource"},"markdown.preview.scrollPreviewWithEditor":{"type":"boolean","default":true,"description":"When a Markdown editor is scrolled, update the view of the preview.","scope":"resource"},"markdown.preview.markEditorSelection":{"type":"boolean","default":false,"description":"Mark the current editor selection in the Markdown preview.","scope":"resource"},"markdown.preview.scrollEditorWithPreview":{"type":"boolean","default":true,"description":"When a Markdown preview is scrolled, update the view of the editor.","scope":"resource"},"markdown.preview.doubleClickToSwitchToEditor":{"type":"boolean","default":false,"description":"Double-click in the Markdown preview to switch to the editor.","scope":"resource"},"markdown.preview.openMarkdownLinks":{"type":"string","default":"inPreview","description":"Controls how links to other Markdown files in the Markdown preview should be opened.","scope":"resource","enum":["inPreview","inEditor"],"enumDescriptions":["Try to open links in the Markdown preview.","Try to open links in the editor."]},"markdown.preview.frontMatter":{"type":"string","default":"table","scope":"resource","markdownDescription":"Controls how YAML frontmatter (delimited by `---`) at the start of a Markdown file is rendered in the preview.","enum":["hide","codeBlock","table"],"enumDescriptions":["Do not render frontmatter.","Render frontmatter as a code block.","Render frontmatter as a table of keys and values."]}}},{"title":"Advanced","order":24,"properties":{"markdown.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the Markdown language server."},"markdown.server.log":{"type":"string","scope":"window","enum":["off","debug","trace"],"default":"off","description":"Controls the logging level of the Markdown language server."}}}],"configurationDefaults":{"[markdown]":{"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"off","other":"off"}}},"jsonValidation":[{"fileMatch":"package.json","url":"./schemas/package.schema.json"}],"markdown.previewStyles":["./media/markdown.css","./media/highlight.css"],"markdown.previewScripts":[{"path":"./media/index.js","type":"module"}],"customEditors":[{"viewType":"vscode.markdown.preview.editor","displayName":"Markdown Preview","priority":{"diffEditor":"option","textEditor":"option"},"selector":[{"filenamePattern":"*.md"}]},{"viewType":"vscode.markdown.editor","displayName":"Markdown Editor","priority":{"diffEditor":"explicit","textEditor":"option"},"selector":[{"filenamePattern":"*.md"}]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["agentEditorComments","customEditorDiffs","documentDiff","documentSyntaxHighlighting","externalUriOpener","linkPresentation","textEditorDiffInformation"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/markdown-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown-math"},"manifest":{"name":"markdown-math","displayName":"Markdown Math","description":"Adds math support to Markdown in notebooks.","version":"10.0.0","icon":"icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.54.0"},"categories":["Other","Programming Languages"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"main":"./dist/extension","browser":"./dist/browser/extension","activationEvents":[],"contributes":{"languages":[{"id":"markdown-math","aliases":[]}],"grammars":[{"language":"markdown-math","scopeName":"text.html.markdown.math","path":"./syntaxes/md-math.tmLanguage.json"},{"scopeName":"markdown.math.block","path":"./syntaxes/md-math-block.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex"}},{"scopeName":"markdown.math.inline","path":"./syntaxes/md-math-inline.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex","punctuation.definition.math.end.markdown":"latex"}},{"scopeName":"markdown.math.codeblock","path":"./syntaxes/md-math-fence.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex"}}],"notebookRenderer":[{"id":"vscode.markdown-it-katex-extension","displayName":"Markdown it KaTeX renderer","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/katex.js"}}],"markdown.markdownItPlugins":true,"markdown.previewStyles":["./notebook-out/katex.min.css","./preview-styles/index.css"],"configuration":[{"title":"Markdown Math","properties":{"markdown.math.enabled":{"type":"boolean","default":true,"description":"Enable/disable rendering math in the built-in Markdown preview."},"markdown.math.macros":{"type":"object","additionalProperties":{"type":"string"},"default":{},"description":"A collection of custom macros. Each macro is a key-value pair where the key is a new command name and the value is the expansion of the macro.","scope":"resource"}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/markdown-math","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.media-preview"},"manifest":{"name":"media-preview","displayName":"Media Preview","description":"Provides VS Code's built-in previews for images, audio, and video","extensionKind":["ui","workspace"],"version":"10.0.0","publisher":"vscode","icon":"icon.png","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension.js","categories":["Other"],"activationEvents":[],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"type":"object","title":"Media Previewer","properties":{"mediaPreview.video.autoPlay":{"type":"boolean","default":false,"markdownDescription":"Start playing videos on mute automatically."},"mediaPreview.video.loop":{"type":"boolean","default":false,"markdownDescription":"Loop videos over again automatically."}}},"customEditors":[{"viewType":"imagePreview.previewEditor","displayName":"Image Preview","priority":"builtin","selector":[{"filenamePattern":"*.{jpg,jpe,jpeg,png,bmp,gif,ico,webp,avif,svg}"}]},{"viewType":"vscode.audioPreview","displayName":"Audio Preview","priority":"builtin","selector":[{"filenamePattern":"*.{mp3,wav,ogg,oga}"}]},{"viewType":"vscode.videoPreview","displayName":"Video Preview","priority":"builtin","selector":[{"filenamePattern":"*.{mp4,webm}"}]}],"commands":[{"command":"imagePreview.zoomIn","title":"Zoom in","category":"Image Preview"},{"command":"imagePreview.zoomOut","title":"Zoom out","category":"Image Preview"},{"command":"imagePreview.copyImage","title":"Copy","category":"Image Preview"},{"command":"imagePreview.reopenAsPreview","title":"Reopen as image preview","category":"Image Preview","icon":"$(preview)"},{"command":"imagePreview.reopenAsText","title":"Reopen as source text","category":"Image Preview","icon":"$(go-to-file)"}],"menus":{"commandPalette":[{"command":"imagePreview.zoomIn","when":"activeCustomEditorId == 'imagePreview.previewEditor'","group":"1_imagePreview"},{"command":"imagePreview.zoomOut","when":"activeCustomEditorId == 'imagePreview.previewEditor'","group":"1_imagePreview"},{"command":"imagePreview.copyImage","when":"false"},{"command":"imagePreview.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceExtname == '.svg' && !hasCustomImagePreview","group":"navigation"},{"command":"imagePreview.reopenAsText","when":"activeCustomEditorId == 'imagePreview.previewEditor' && resourceExtname == '.svg'","group":"navigation"}],"webview/context":[{"command":"imagePreview.copyImage","when":"webviewId == 'imagePreview.previewEditor'"}],"editor/title":[{"command":"imagePreview.reopenAsPreview","when":"editorFocus && resourceExtname == '.svg' && !hasCustomImagePreview","group":"navigation"},{"command":"imagePreview.reopenAsText","when":"activeCustomEditorId == 'imagePreview.previewEditor' && resourceExtname == '.svg'","group":"navigation"}]}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/media-preview","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.merge-conflict"},"manifest":{"name":"merge-conflict","publisher":"vscode","displayName":"Merge Conflict","description":"Highlighting and commands for inline merge conflicts.","icon":"media/icon.png","version":"10.0.0","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.5.0"},"categories":["Other"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onStartupFinished"],"main":"./dist/mergeConflictMain","browser":"./dist/browser/mergeConflictMain","contributes":{"commands":[{"category":"Merge Conflict","title":"Accept All Current","original":"Accept All Current","command":"merge-conflict.accept.all-current","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept All Incoming","original":"Accept All Incoming","command":"merge-conflict.accept.all-incoming","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept All Both","original":"Accept All Both","command":"merge-conflict.accept.all-both","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Current","original":"Accept Current","command":"merge-conflict.accept.current","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Incoming","original":"Accept Incoming","command":"merge-conflict.accept.incoming","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Selection","original":"Accept Selection","command":"merge-conflict.accept.selection","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Both","original":"Accept Both","command":"merge-conflict.accept.both","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Next Conflict","original":"Next Conflict","command":"merge-conflict.next","enablement":"!isMergeEditor","icon":"$(arrow-down)"},{"category":"Merge Conflict","title":"Previous Conflict","original":"Previous Conflict","command":"merge-conflict.previous","enablement":"!isMergeEditor","icon":"$(arrow-up)"},{"category":"Merge Conflict","title":"Compare Current Conflict","original":"Compare Current Conflict","command":"merge-conflict.compare","enablement":"!isMergeEditor"}],"menus":{"scm/resourceState/context":[{"command":"merge-conflict.accept.all-current","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"merge-conflict.accept.all-incoming","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"}],"editor/title":[{"command":"merge-conflict.previous","group":"navigation@1","when":"!isMergeEditor && mergeConflictsCount && mergeConflictsCount != 0"},{"command":"merge-conflict.next","group":"navigation@2","when":"!isMergeEditor && mergeConflictsCount && mergeConflictsCount != 0"}]},"configuration":{"title":"Merge Conflict","properties":{"merge-conflict.codeLens.enabled":{"type":"boolean","description":"Create a CodeLens for merge conflict blocks within editor.","default":true},"merge-conflict.decorators.enabled":{"type":"boolean","description":"Create decorators for merge conflict blocks within editor.","default":true},"merge-conflict.autoNavigateNextConflict.enabled":{"type":"boolean","description":"Whether to automatically navigate to the next merge conflict after resolving a merge conflict.","default":false},"merge-conflict.diffViewPosition":{"type":"string","enum":["Current","Beside","Below"],"description":"Controls where the diff view should be opened when comparing changes in merge conflicts.","enumDescriptions":["Open the diff view in the current editor group.","Open the diff view next to the current editor group.","Open the diff view below the current editor group."],"default":"Current"}}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/merge-conflict","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.mermaid-markdown-features"},"manifest":{"name":"mermaid-markdown-features","displayName":"Mermaid Markdown Features","description":"Adds Mermaid diagram support to built-in chats, Markdown previews, and notebooks.","version":"10.0.0","publisher":"vscode","license":"MIT","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.104.0"},"enabledApiProposals":["chatOutputRenderer","chatParticipantPrivate"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"main":"./dist/extension","browser":"./dist/browser/extension","activationEvents":["onWebviewPanel:vscode.mermaid-markdown-features.preview"],"contributes":{"commands":[{"command":"_mermaid-markdown.resetPanZoom","title":"Reset Pan and Zoom"},{"command":"_mermaid-markdown.openInEditor","title":"Open Diagram in Editor"},{"command":"_mermaid-markdown.copySource","title":"Copy Diagram Source"}],"menus":{"commandPalette":[{"command":"_mermaid-markdown.resetPanZoom","when":"false"},{"command":"_mermaid-markdown.openInEditor","when":"false"},{"command":"_mermaid-markdown.copySource","when":"false"}],"webview/context":[{"command":"_mermaid-markdown.openInEditor","when":"webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || (webviewSection == 'mermaid' && (webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor' || webviewId == 'notebook.output'))","group":"navigation@1"},{"command":"_mermaid-markdown.copySource","when":"webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || webviewId == 'vscode.mermaid-markdown-features.preview' || (webviewSection == 'mermaid' && (webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor' || webviewId == 'notebook.output'))","group":"navigation@2"},{"command":"_mermaid-markdown.resetPanZoom","when":"!mermaidError && (webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || webviewId == 'vscode.mermaid-markdown-features.preview')","group":"navigation@3"}]},"configuration":{"title":"Mermaid","properties":{"markdown-mermaid.lightModeTheme":{"order":0,"type":"string","enum":["vscode","base","forest","dark","default","neutral"],"enumDescriptions":["Mermaid theme derived from the current VS Code color theme.","Built-in Mermaid theme. The only Mermaid theme that can be customized with theme variables.","Built-in Mermaid theme using shades of green.","Built-in Mermaid theme for dark backgrounds.","The default built-in Mermaid theme. Works well with light backgrounds.","Built-in Mermaid theme using a neutral grayscale palette. Suitable for black and white prints."],"default":"vscode","description":"Default Mermaid theme for light mode."},"markdown-mermaid.darkModeTheme":{"order":1,"type":"string","enum":["vscode","base","forest","dark","default","neutral"],"enumDescriptions":["Mermaid theme derived from the current VS Code color theme.","Built-in Mermaid theme. The only Mermaid theme that can be customized with theme variables.","Built-in Mermaid theme using shades of green.","Built-in Mermaid theme for dark backgrounds.","The default built-in Mermaid theme. Works well with light backgrounds.","Built-in Mermaid theme using a neutral grayscale palette. Suitable for black and white prints."],"default":"vscode","description":"Default Mermaid theme for dark mode."},"markdown-mermaid.languages":{"order":2,"type":"array","default":["mermaid"],"description":"Default languages in Markdown."},"markdown-mermaid.maxTextSize":{"order":3,"type":"number","default":50000,"description":"The maximum allowed size of the user's text diagram."},"markdown-mermaid.mouseNavigation.enabled":{"type":"string","description":"Controls when mouse-based navigation is enabled on Mermaid diagrams.","enum":["always","alt","never"],"default":"alt","markdownEnumDescriptions":["Always enable mouse navigation on Mermaid diagrams.","Only enable mouse navigation when holding down Alt (Option on macOS). Gestures such as pinch-to-zoom will still work without Alt.","Disable mouse navigation."]},"markdown-mermaid.controls.show":{"type":"string","description":"Controls showing UI controls on Mermaid diagrams.","enum":["never","onHoverOrFocus","always"],"enumDescriptions":["Never show controls.","Show zoom controls when hovering over or focusing a diagram.","Always show zoom controls."],"default":"onHoverOrFocus"},"markdown-mermaid.resizable":{"type":"boolean","default":true,"description":"Allow diagrams to be resized vertically by dragging the bottom edge."},"markdown-mermaid.maxHeight":{"type":"string","default":"","markdownDescription":"Maximum height for diagrams. Must be a CSS value with units such as `80vh` or `400px`. Leave empty to try to automatically size diagrams based on their content."}}},"markdown.previewScripts":[{"path":"./markdown-preview-out/index.js","type":"module"}],"notebookRenderer":[{"id":"vscode.markdown-it.mermaid-extension","displayName":"Markdown-It Mermaid Renderer","requiresMessaging":"optional","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/index.js"}}],"markdown.markdownItPlugins":true,"chatOutputRenderers":[{"viewType":"vscode.mermaid-markdown-features.chatOutputItem","mimeTypes":["text/vnd.mermaid"],"codeBlockLanguageIdentifiers":["mermaid"]}],"languageModelTools":[{"name":"renderMermaidDiagram","displayName":"Mermaid Renderer","toolReferenceName":"renderMermaidDiagram","legacyToolReferenceFullNames":["vscode.mermaid-chat-features/renderMermaidDiagram"],"canBeReferencedInPrompt":true,"modelDescription":"Renders a Mermaid diagram from Mermaid.js markup.","userDescription":"Render a Mermaid.js diagram from markup.","when":"chatSessionType == local","inputSchema":{"type":"object","properties":{"markup":{"type":"string","description":"The mermaid diagram markup to render as a Mermaid diagram. This should only be the markup of the diagram. Do not include a wrapping code block."},"title":{"type":"string","description":"A short title that describes the diagram."}}}}]},"overrides":{"lodash-es":"4.18.1"},"allowScripts":{"fsevents@2.3.3":true},"originalEnabledApiProposals":["chatOutputRenderer","chatParticipantPrivate"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/mermaid-markdown-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.microsoft-authentication"},"manifest":{"name":"microsoft-authentication","publisher":"vscode","license":"MIT","displayName":"Microsoft Account","description":"Microsoft authentication provider","version":"0.0.1","engines":{"vscode":"^1.42.0"},"icon":"media/icon.png","categories":["Other"],"activationEvents":[],"enabledApiProposals":["nativeWindowHandle","authIssuers","authenticationChallenges"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","restrictedConfigurations":["microsoft-sovereign-cloud.environment","microsoft-sovereign-cloud.customEnvironment"]}},"extensionKind":["ui","workspace"],"contributes":{"authentication":[{"label":"Microsoft","id":"microsoft","authorizationServerGlobs":["https://login.microsoftonline.com/*","https://login.microsoftonline.com/*/v2.0"]},{"label":"Microsoft Sovereign Cloud","id":"microsoft-sovereign-cloud"}],"configuration":[{"title":"Microsoft Sovereign Cloud","properties":{"microsoft-sovereign-cloud.environment":{"type":"string","markdownDescription":"The Sovereign Cloud to use for authentication. If you select `custom`, you must also set the `#microsoft-sovereign-cloud.customEnvironment#` setting.","enum":["ChinaCloud","USGovernment","custom"],"enumDescriptions":["Azure China","Azure US Government","A custom Microsoft Sovereign Cloud"]},"microsoft-sovereign-cloud.customEnvironment":{"type":"object","additionalProperties":true,"markdownDescription":"The custom configuration for the Sovereign Cloud to use with the Microsoft Sovereign Cloud authentication provider. This along with setting `#microsoft-sovereign-cloud.environment#` to `custom` is required to use this feature.","properties":{"name":{"type":"string","description":"The name of the custom Sovereign Cloud."},"portalUrl":{"type":"string","description":"The portal URL for the custom Sovereign Cloud."},"managementEndpointUrl":{"type":"string","description":"The management endpoint for the custom Sovereign Cloud."},"resourceManagerEndpointUrl":{"type":"string","description":"The resource manager endpoint for the custom Sovereign Cloud."},"activeDirectoryEndpointUrl":{"type":"string","description":"The Active Directory endpoint for the custom Sovereign Cloud."},"activeDirectoryResourceId":{"type":"string","description":"The Active Directory resource ID for the custom Sovereign Cloud."}},"required":["name","portalUrl","managementEndpointUrl","resourceManagerEndpointUrl","activeDirectoryEndpointUrl","activeDirectoryResourceId"]}}},{"title":"Microsoft","properties":{"microsoft-authentication.implementation":{"type":"string","default":"msal","enum":["msal","msal-no-broker"],"enumDescriptions":["Use the Microsoft Authentication Library (MSAL) to sign in with a Microsoft account.","Use the Microsoft Authentication Library (MSAL) to sign in with a Microsoft account using a browser. This is useful if you are having issues with the native broker."],"markdownDescription":"The authentication implementation to use for signing in with a Microsoft account.","tags":["onExP"]}}}]},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","main":"./dist/extension.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"allowScripts":{"@azure/msal-node-runtime@0.20.1":true,"@azure/msal-node-extensions@5.3.2":true},"originalEnabledApiProposals":["nativeWindowHandle","authIssuers","authenticationChallenges"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/microsoft-authentication","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.js-debug"},"manifest":{"name":"js-debug","displayName":"JavaScript Debugger","version":"1.117.0","publisher":"ms-vscode","author":{"name":"Microsoft Corporation"},"keywords":["pwa","javascript","node","chrome","debugger"],"description":"An extension for debugging Node.js programs and Chrome.","license":"MIT","engines":{"vscode":"^1.80.0","node":">=10"},"icon":"resources/logo.png","categories":["Debuggers"],"private":true,"repository":{"type":"git","url":"https://github.com/Microsoft/vscode-pwa.git"},"bugs":{"url":"https://github.com/Microsoft/vscode-pwa/issues"},"main":"./src/extension.js","enabledApiProposals":["portsAttributes","workspaceTrust","tunnels","browser"],"extensionKind":["workspace"],"overrides":{"serialize-javascript":">=7.0.5"},"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":"limited","description":"Trust is required to debug code in this workspace."}},"activationEvents":["onDebugDynamicConfigurations","onDebugInitialConfigurations","onFileSystem:jsDebugNetworkFs","onDebugResolve:pwa-node","onDebugResolve:node-terminal","onDebugResolve:pwa-extensionHost","onDebugResolve:pwa-chrome","onDebugResolve:pwa-msedge","onDebugResolve:pwa-editor-browser","onDebugResolve:node","onDebugResolve:chrome","onDebugResolve:extensionHost","onDebugResolve:msedge","onDebugResolve:editor-browser","onCommand:extension.js-debug.clearAutoAttachVariables","onCommand:extension.js-debug.setAutoAttachVariables","onCommand:extension.js-debug.autoAttachToProcess","onCommand:extension.js-debug.pickNodeProcess","onCommand:extension.js-debug.requestCDPProxy","onCommand:extension.js-debug.completion.nodeTool"],"contributes":{"menus":{"commandPalette":[{"command":"extension.js-debug.prettyPrint","title":"Pretty print for debugging","when":"debugType == pwa-extensionHost && debugState == stopped || debugType == node-terminal && debugState == stopped || debugType == pwa-node && debugState == stopped || debugType == pwa-chrome && debugState == stopped || debugType == pwa-msedge && debugState == stopped || debugType == pwa-editor-browser && debugState == stopped"},{"command":"extension.js-debug.startProfile","title":"Take Performance Profile","when":"debugType == pwa-extensionHost && inDebugMode && !jsDebugIsProfiling || debugType == node-terminal && inDebugMode && !jsDebugIsProfiling || debugType == pwa-node && inDebugMode && !jsDebugIsProfiling || debugType == pwa-chrome && inDebugMode && !jsDebugIsProfiling || debugType == pwa-msedge && inDebugMode && !jsDebugIsProfiling || debugType == pwa-editor-browser && inDebugMode && !jsDebugIsProfiling"},{"command":"extension.js-debug.stopProfile","title":"Stop Performance Profile","when":"debugType == pwa-extensionHost && inDebugMode && jsDebugIsProfiling || debugType == node-terminal && inDebugMode && jsDebugIsProfiling || debugType == pwa-node && inDebugMode && jsDebugIsProfiling || debugType == pwa-chrome && inDebugMode && jsDebugIsProfiling || debugType == pwa-msedge && inDebugMode && jsDebugIsProfiling || debugType == pwa-editor-browser && inDebugMode && jsDebugIsProfiling"},{"command":"extension.js-debug.revealPage","when":"false"},{"command":"extension.js-debug.debugLink","title":"Open Link","when":"!isWeb"},{"command":"extension.js-debug.createDiagnostics","title":"Diagnose Breakpoint Problems","when":"debugType == pwa-extensionHost && inDebugMode || debugType == node-terminal && inDebugMode || debugType == pwa-node && inDebugMode || debugType == pwa-chrome && inDebugMode || debugType == pwa-msedge && inDebugMode || debugType == pwa-editor-browser && inDebugMode"},{"command":"extension.js-debug.getDiagnosticLogs","title":"Save Diagnostic JS Debug Logs","when":"debugType == pwa-extensionHost && inDebugMode || debugType == node-terminal && inDebugMode || debugType == pwa-node && inDebugMode || debugType == pwa-chrome && inDebugMode || debugType == pwa-msedge && inDebugMode || debugType == pwa-editor-browser && inDebugMode"},{"command":"extension.js-debug.openEdgeDevTools","title":"Open Browser Devtools","when":"debugType == pwa-msedge"},{"command":"extension.js-debug.callers.add","title":"Exclude caller from pausing in the current location","when":"debugType == pwa-extensionHost && debugState == \"stopped\" || debugType == node-terminal && debugState == \"stopped\" || debugType == pwa-node && debugState == \"stopped\" || debugType == pwa-chrome && debugState == \"stopped\" || debugType == pwa-msedge && debugState == \"stopped\" || debugType == pwa-editor-browser && debugState == \"stopped\""},{"command":"extension.js-debug.callers.goToCaller","when":"false"},{"command":"extension.js-debug.callers.gotToTarget","when":"false"},{"command":"extension.js-debug.network.copyUri","when":"false"},{"command":"extension.js-debug.network.openBody","when":"false"},{"command":"extension.js-debug.network.openBodyInHex","when":"false"},{"command":"extension.js-debug.network.replayXHR","when":"false"},{"command":"extension.js-debug.network.viewRequest","when":"false"},{"command":"extension.js-debug.network.clear","when":"false"},{"command":"extension.js-debug.enableSourceMapStepping","when":"jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.disableSourceMapStepping","when":"!jsDebugIsMapSteppingDisabled"}],"debug/callstack/context":[{"command":"extension.js-debug.revealPage","group":"navigation","when":"debugType == pwa-chrome && callStackItemType == 'session' || debugType == pwa-msedge && callStackItemType == 'session' || debugType == pwa-editor-browser && callStackItemType == 'session'"},{"command":"extension.js-debug.toggleSkippingFile","group":"navigation","when":"debugType == pwa-extensionHost && callStackItemType == 'session' || debugType == node-terminal && callStackItemType == 'session' || debugType == pwa-node && callStackItemType == 'session' || debugType == pwa-chrome && callStackItemType == 'session' || debugType == pwa-msedge && callStackItemType == 'session' || debugType == pwa-editor-browser && callStackItemType == 'session'"},{"command":"extension.js-debug.startProfile","group":"navigation","when":"debugType == pwa-extensionHost && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == node-terminal && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-node && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-chrome && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-msedge && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-editor-browser && !jsDebugIsProfiling && callStackItemType == 'session'"},{"command":"extension.js-debug.stopProfile","group":"navigation","when":"debugType == pwa-extensionHost && jsDebugIsProfiling && callStackItemType == 'session' || debugType == node-terminal && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-node && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-chrome && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-msedge && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-editor-browser && jsDebugIsProfiling && callStackItemType == 'session'"},{"command":"extension.js-debug.startProfile","group":"inline","when":"debugType == pwa-extensionHost && !jsDebugIsProfiling || debugType == node-terminal && !jsDebugIsProfiling || debugType == pwa-node && !jsDebugIsProfiling || debugType == pwa-chrome && !jsDebugIsProfiling || debugType == pwa-msedge && !jsDebugIsProfiling || debugType == pwa-editor-browser && !jsDebugIsProfiling"},{"command":"extension.js-debug.stopProfile","group":"inline","when":"debugType == pwa-extensionHost && jsDebugIsProfiling || debugType == node-terminal && jsDebugIsProfiling || debugType == pwa-node && jsDebugIsProfiling || debugType == pwa-chrome && jsDebugIsProfiling || debugType == pwa-msedge && jsDebugIsProfiling || debugType == pwa-editor-browser && jsDebugIsProfiling"},{"command":"extension.js-debug.callers.add","when":"debugType == pwa-extensionHost && callStackItemType == 'stackFrame' || debugType == node-terminal && callStackItemType == 'stackFrame' || debugType == pwa-node && callStackItemType == 'stackFrame' || debugType == pwa-chrome && callStackItemType == 'stackFrame' || debugType == pwa-msedge && callStackItemType == 'stackFrame' || debugType == pwa-editor-browser && callStackItemType == 'stackFrame'"}],"debug/toolBar":[{"command":"extension.js-debug.stopProfile","when":"debugType == pwa-extensionHost && jsDebugIsProfiling || debugType == node-terminal && jsDebugIsProfiling || debugType == pwa-node && jsDebugIsProfiling || debugType == pwa-chrome && jsDebugIsProfiling || debugType == pwa-msedge && jsDebugIsProfiling || debugType == pwa-editor-browser && jsDebugIsProfiling"},{"command":"extension.js-debug.openEdgeDevTools","when":"debugType == pwa-msedge"},{"command":"extension.js-debug.enableSourceMapStepping","when":"jsDebugIsMapSteppingDisabled"}],"view/title":[{"command":"extension.js-debug.addCustomBreakpoints","when":"view == jsBrowserBreakpoints","group":"navigation"},{"command":"extension.js-debug.removeAllCustomBreakpoints","when":"view == jsBrowserBreakpoints","group":"navigation"},{"command":"extension.js-debug.callers.removeAll","group":"navigation","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.disableSourceMapStepping","group":"navigation","when":"debugType == pwa-extensionHost && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == node-terminal && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-node && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-chrome && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-msedge && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-editor-browser && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.enableSourceMapStepping","group":"navigation","when":"debugType == pwa-extensionHost && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == node-terminal && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-node && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-chrome && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-msedge && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-editor-browser && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.network.clear","group":"navigation","when":"view == jsDebugNetworkTree"}],"view/item/context":[{"command":"extension.js-debug.addXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.editXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint","group":"inline"},{"command":"extension.js-debug.editXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.removeXHRBreakpoint","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint","group":"inline"},{"command":"extension.js-debug.removeXHRBreakpoint","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.addXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrCategory","group":"inline"},{"command":"extension.js-debug.callers.goToCaller","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.callers.gotToTarget","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.callers.remove","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.network.viewRequest","group":"inline@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.openBody","group":"body@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.openBodyInHex","group":"body@2","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.copyUri","group":"other@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.replayXHR","group":"other@2","when":"view == jsDebugNetworkTree"}],"editor/title":[{"command":"extension.js-debug.prettyPrint","group":"navigation","when":"jsDebugCanPrettyPrint"}]},"breakpoints":[{"language":"javascript"},{"language":"typescript"},{"language":"typescriptreact"},{"language":"javascriptreact"},{"language":"fsharp"},{"language":"html"},{"language":"wat"},{"language":"c"},{"language":"cpp"},{"language":"rust"},{"language":"zig"}],"debuggers":[{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","type":"string"},"attachExistingChildren":{"default":false,"description":"Whether to attempt to attach to already-spawned child processes.","type":"boolean"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"continueOnAttach":{"default":true,"markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","type":"boolean"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"port":{"default":9229,"description":"Debug port to attach to. Default is 9229.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"processId":{"default":"${command:PickProcess}","description":"ID of process to attach to.","type":"string"},"remoteHostHeader":{"description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header.","type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"websocketAddress":{"description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port.","type":"string"}}},"launch":{"properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[],"deprecated":"Please use type node instead","label":"Node.js","languages":["javascript","typescript","javascriptreact","typescriptreact"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-node","variables":{"PickProcess":"extension.js-debug.pickNodeProcess"}},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","type":"string"},"attachExistingChildren":{"default":false,"description":"Whether to attempt to attach to already-spawned child processes.","type":"boolean"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"continueOnAttach":{"default":true,"markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","type":"boolean"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"port":{"default":9229,"description":"Debug port to attach to. Default is 9229.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"processId":{"default":"${command:PickProcess}","description":"ID of process to attach to.","type":"string"},"remoteHostHeader":{"description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header.","type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"websocketAddress":{"description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port.","type":"string"}}},"launch":{"properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[{"body":{"name":"${1:Attach}","port":9229,"request":"attach","skipFiles":["/**"],"type":"node"},"description":"Attach to a running node program","label":"Node.js: Attach"},{"body":{"address":"${2:TCP/IP address of process to be debugged}","localRoot":"^\"\\${workspaceFolder}\"","name":"${1:Attach to Remote}","port":9229,"remoteRoot":"${3:Absolute path to the remote directory containing the program}","request":"attach","skipFiles":["/**"],"type":"node"},"description":"Attach to the debug port of a remote node program","label":"Node.js: Attach to Remote Program"},{"body":{"name":"${1:Attach by Process ID}","processId":"^\"\\${command:PickProcess}\"","request":"attach","skipFiles":["/**"],"type":"node"},"description":"Open process picker to select node process to attach to","label":"Node.js: Attach to Process"},{"body":{"name":"${2:Launch Program}","program":"^\"\\${workspaceFolder}/${1:app.js}\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Launch a node program in debug mode","label":"Node.js: Launch Program"},{"body":{"name":"${1:Launch via NPM}","request":"launch","runtimeArgs":["run-script","debug"],"runtimeExecutable":"npm","skipFiles":["/**"],"type":"node"},"label":"Node.js: Launch via npm","markdownDescription":"Launch a node program through an npm `debug` script"},{"body":{"console":"integratedTerminal","internalConsoleOptions":"neverOpen","name":"nodemon","program":"^\"\\${workspaceFolder}/${1:app.js}\"","request":"launch","restart":true,"runtimeExecutable":"nodemon","skipFiles":["/**"],"type":"node"},"description":"Use nodemon to relaunch a debug session on source changes","label":"Node.js: Nodemon Setup"},{"body":{"args":["-u","tdd","--timeout","999999","--colors","^\"\\${workspaceFolder}/${1:test}\""],"internalConsoleOptions":"openOnSessionStart","name":"Mocha Tests","program":"^\"mocha\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Debug mocha tests","label":"Node.js: Mocha Tests"},{"body":{"args":["${1:generator}"],"console":"integratedTerminal","internalConsoleOptions":"neverOpen","name":"Yeoman ${1:generator}","program":"^\"\\${workspaceFolder}/node_modules/yo/lib/cli.js\"","request":"launch","skipFiles":["/**"],"type":"node"},"label":"Node.js: Yeoman generator","markdownDescription":"Debug yeoman generator (install by running `npm link` in project folder)"},{"body":{"args":["${1:task}"],"name":"Gulp ${1:task}","program":"^\"\\${workspaceFolder}/node_modules/gulp/bin/gulp.js\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Debug gulp task (make sure to have a local gulp installed in your project)","label":"Node.js: Gulp task"},{"body":{"name":"Electron Main","program":"^\"\\${workspaceFolder}/main.js\"","request":"launch","runtimeExecutable":"^\"electron\"","skipFiles":["/**"],"type":"node"},"description":"Debug the Electron main process","label":"Node.js: Electron Main"}],"label":"Node.js","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"node","variables":{"PickProcess":"extension.js-debug.pickNodeProcess"}},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[{"body":{"command":"npm start","name":"Run npm start","request":"launch","type":"node-terminal"},"description":"Run \"npm start\" in a debug terminal","label":"Run \"npm start\" in a debug terminal"}],"label":"JavaScript Debug Terminal","languages":[],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"node-terminal"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"args":{"default":["--extensionDevelopmentPath=${workspaceFolder}"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":"array"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"debugWebWorkerHost":{"default":true,"markdownDescription":"Configures whether we should try to attach to the web worker extension host.","type":["boolean"]},"debugWebviews":{"default":true,"markdownDescription":"Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.","type":["boolean"]},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"rendererDebugOptions":{"default":{"webRoot":"${workspaceFolder}"},"markdownDescription":"Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.","properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"type":"object"},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeExecutable":{"default":"node","markdownDescription":"Absolute path to VS Code.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"testConfiguration":{"default":"${workspaceFolder}/.vscode-test.js","markdownDescription":"Path to a test configuration file for the [test CLI](https://code.visualstudio.com/api/working-with-extensions/testing-extension#quick-setup-the-test-cli).","type":"string"},"testConfigurationLabel":{"default":"","markdownDescription":"A single configuration to run from the file. If not specified, you may be asked to pick.","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"required":[]}},"configurationSnippets":[],"deprecated":"Please use type extensionHost instead","label":"VS Code Extension Development","languages":["javascript","typescript","javascriptreact","typescriptreact"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-extensionHost"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"args":{"default":["--extensionDevelopmentPath=${workspaceFolder}"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":"array"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"debugWebWorkerHost":{"default":true,"markdownDescription":"Configures whether we should try to attach to the web worker extension host.","type":["boolean"]},"debugWebviews":{"default":true,"markdownDescription":"Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.","type":["boolean"]},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"rendererDebugOptions":{"default":{"webRoot":"${workspaceFolder}"},"markdownDescription":"Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.","properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"type":"object"},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeExecutable":{"default":"node","markdownDescription":"Absolute path to VS Code.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"testConfiguration":{"default":"${workspaceFolder}/.vscode-test.js","markdownDescription":"Path to a test configuration file for the [test CLI](https://code.visualstudio.com/api/working-with-extensions/testing-extension#quick-setup-the-test-cli).","type":"string"},"testConfigurationLabel":{"default":"","markdownDescription":"A single configuration to run from the file. If not specified, you may be asked to pick.","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"required":[]}},"configurationSnippets":[{"body":{"args":["^\"--extensionDevelopmentPath=\\${workspaceFolder}\""],"name":"Launch Extension","outFiles":["^\"\\${workspaceFolder}/out/**/*.js\""],"preLaunchTask":"npm","request":"launch","type":"extensionHost"},"description":"Launch a VS Code extension in debug mode","label":"VS Code Extension Development"}],"label":"VS Code Extension Development","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"extensionHost"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":0,"description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[],"deprecated":"Please use type chrome instead","label":"Web App (Chrome)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-chrome"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":0,"description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[{"body":{"name":"Launch Chrome","request":"launch","type":"chrome","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch Chrome to debug a URL","label":"Chrome: Launch"},{"body":{"name":"Attach to Chrome","port":9222,"request":"attach","type":"chrome","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an instance of Chrome already in debug mode","label":"Chrome: Attach"}],"label":"Web App (Chrome)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"chrome"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":{"pipeName":"MyPipeName"},"description":"An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"","properties":{"pipeName":{"type":"string"}},"type":"object"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"address":{"default":"localhost","description":"When debugging webviews, the IP address or hostname the webview is listening on. Will be automatically discovered if not set.","type":"string"},"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"When debugging webviews, the port the webview debugger is listening on. Will be automatically discovered if not set.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":false,"description":"When 'true', the debugger will treat the runtime executable as a host application that contains a WebView allowing you to debug the WebView script content.","type":"boolean"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[],"deprecated":"Please use type msedge instead","label":"Web App (Edge)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-msedge"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":{"pipeName":"MyPipeName"},"description":"An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"","properties":{"pipeName":{"type":"string"}},"type":"object"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"address":{"default":"localhost","description":"When debugging webviews, the IP address or hostname the webview is listening on. Will be automatically discovered if not set.","type":"string"},"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"When debugging webviews, the port the webview debugger is listening on. Will be automatically discovered if not set.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":false,"description":"When 'true', the debugger will treat the runtime executable as a host application that contains a WebView allowing you to debug the WebView script content.","type":"boolean"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[{"body":{"name":"Launch Edge","request":"launch","type":"msedge","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch Edge to debug a URL","label":"Edge: Launch"},{"body":{"name":"Attach to Edge","port":9222,"request":"attach","type":"msedge","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an instance of Edge already in debug mode","label":"Edge: Attach"}],"label":"Web App (Edge)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"msedge"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"required":["url"]}},"configurationSnippets":[],"deprecated":"Please use type editor-browser instead","label":"Web App (Integrated Browser)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-editor-browser","when":"!isWeb"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"required":["url"]}},"configurationSnippets":[{"body":{"name":"Launch Integrated Browser","request":"launch","type":"editor-browser","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch a VS Code integrated browser to debug a URL","label":"Integrated Browser: Launch"},{"body":{"name":"Attach to Integrated Browser","request":"attach","type":"editor-browser","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an open VS Code integrated browser","label":"Integrated Browser: Attach"}],"label":"Web App (Integrated Browser)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"editor-browser","when":"!isWeb"}],"commands":[{"command":"extension.js-debug.prettyPrint","title":"Pretty print for debugging","category":"Debug","icon":"$(json)"},{"command":"extension.js-debug.toggleSkippingFile","title":"Toggle Skipping this File","category":"Debug"},{"command":"extension.js-debug.addCustomBreakpoints","title":"Toggle Event Listener Breakpoints","icon":"$(add)"},{"command":"extension.js-debug.removeAllCustomBreakpoints","title":"Remove All Event Listener Breakpoints","icon":"$(close-all)"},{"command":"extension.js-debug.addXHRBreakpoints","title":"Add XHR/fetch Breakpoint","icon":"$(add)"},{"command":"extension.js-debug.removeXHRBreakpoint","title":"Remove XHR/fetch Breakpoint","icon":"$(remove)"},{"command":"extension.js-debug.editXHRBreakpoints","title":"Edit XHR/fetch Breakpoint","icon":"$(edit)"},{"command":"extension.pwa-node-debug.attachNodeProcess","title":"Attach to Node Process","category":"Debug"},{"command":"extension.js-debug.npmScript","title":"Debug npm Script","category":"Debug"},{"command":"extension.js-debug.createDebuggerTerminal","title":"JavaScript Debug Terminal","category":"Debug"},{"command":"extension.js-debug.startProfile","title":"Take Performance Profile","category":"Debug","icon":"$(record)"},{"command":"extension.js-debug.stopProfile","title":"Stop Performance Profile","category":"Debug","icon":"resources/dark/stop-profiling.svg"},{"command":"extension.js-debug.revealPage","title":"Focus Tab","category":"Debug"},{"command":"extension.js-debug.debugLink","title":"Open Link","category":"Debug"},{"command":"extension.js-debug.createDiagnostics","title":"Diagnose Breakpoint Problems","category":"Debug"},{"command":"extension.js-debug.getDiagnosticLogs","title":"Save Diagnostic JS Debug Logs","category":"Debug"},{"command":"extension.node-debug.startWithStopOnEntry","title":"Start Debugging and Stop on Entry","category":"Debug"},{"command":"extension.js-debug.openEdgeDevTools","title":"Open Browser Devtools","icon":"$(inspect)","category":"Debug"},{"command":"extension.js-debug.callers.add","title":"Exclude Caller","category":"Debug"},{"command":"extension.js-debug.callers.remove","title":"Remove excluded caller","icon":"$(close)"},{"command":"extension.js-debug.callers.removeAll","title":"Remove all excluded callers","icon":"$(clear-all)"},{"command":"extension.js-debug.callers.goToCaller","title":"Go to caller location","icon":"$(call-outgoing)"},{"command":"extension.js-debug.callers.gotToTarget","title":"Go to target location","icon":"$(call-incoming)"},{"command":"extension.js-debug.enableSourceMapStepping","title":"Enable Source Mapped Stepping","icon":"$(compass-dot)"},{"command":"extension.js-debug.disableSourceMapStepping","title":"Disable Source Mapped Stepping","icon":"$(compass)"},{"command":"extension.js-debug.network.viewRequest","title":"View Request as cURL","icon":"$(arrow-right)"},{"command":"extension.js-debug.network.clear","title":"Clear Network Log","icon":"$(clear-all)"},{"command":"extension.js-debug.network.openBody","title":"Open Response Body"},{"command":"extension.js-debug.network.openBodyInHex","title":"Open Response Body in Hex Editor"},{"command":"extension.js-debug.network.replayXHR","title":"Replay Request"},{"command":"extension.js-debug.network.copyUri","title":"Copy Request URL"}],"keybindings":[{"command":"extension.node-debug.startWithStopOnEntry","key":"F10","mac":"F10","when":"debugConfigurationType == pwa-node && !inDebugMode || debugConfigurationType == pwa-extensionHost && !inDebugMode || debugConfigurationType == node && !inDebugMode"},{"command":"extension.node-debug.startWithStopOnEntry","key":"F11","mac":"F11","when":"debugConfigurationType == pwa-node && !inDebugMode && activeViewlet == workbench.view.debug || debugConfigurationType == pwa-extensionHost && !inDebugMode && activeViewlet == workbench.view.debug || debugConfigurationType == node && !inDebugMode && activeViewlet == workbench.view.debug"}],"configuration":{"title":"JavaScript Debugger","properties":{"debug.javascript.codelens.npmScripts":{"enum":["top","all","never"],"default":"top","description":"Where a \"Run\" and \"Debug\" code lens should be shown in your npm scripts. It may be on \"all\", scripts, on \"top\" of the script section, or \"never\"."},"debug.javascript.terminalOptions":{"type":"object","description":"Default launch options for the JavaScript debug terminal and npm scripts.","default":{},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"command":{"type":["string","null"],"description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","default":"npm start","tags":["setup"]}}},"debug.javascript.automaticallyTunnelRemoteServer":{"type":"boolean","description":"When debugging a remote web app, configures whether to automatically tunnel the remote server to your local machine.","default":true},"debug.javascript.debugByLinkOptions":{"default":"on","description":"Options used when debugging open links clicked from inside the JavaScript Debug Terminal. Can be set to \"off\" to disable this behavior, or \"always\" to enable debugging in all terminals.","oneOf":[{"type":"string","enum":["on","off","always"]},{"type":"object","properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":null,"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"disableNetworkCache":{"type":"boolean","description":"Controls whether to skip the network cache for each request","default":true},"pathMapping":{"type":"object","description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","default":{}},"webRoot":{"type":"string","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","default":"${workspaceFolder}","tags":["setup"]},"urlFilter":{"type":"string","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","default":""},"url":{"type":"string","description":"Will search for a tab with this exact url and attach to it, if found","default":"http://localhost:8080","tags":["setup"]},"inspectUri":{"type":["string","null"],"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","default":null},"vueComponentPaths":{"type":"array","description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","default":["${workspaceFolder}/**/*.vue"]},"server":{"oneOf":[{"type":"object","description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","additionalProperties":false,"default":{"program":"node my-server.js"},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"program":{"type":"string","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","default":"","tags":["setup"]},"stopOnEntry":{"type":["boolean","string"],"description":"Automatically stop program after launch.","default":true},"console":{"type":"string","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"description":"Where to launch the debug target.","default":"internalConsole"},"args":{"type":["array","string"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"default":[],"tags":["setup"]},"restart":{"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","properties":{"delay":{"type":"number","minimum":0,"default":1000},"maxAttempts":{"type":"number","minimum":0,"default":10}}}]},"runtimeExecutable":{"type":["string","null"],"markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","default":"node"},"runtimeVersion":{"type":"string","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","default":"default"},"runtimeArgs":{"type":"array","description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"default":[],"tags":["setup"]},"profileStartup":{"type":"boolean","description":"If true, will start profiling as soon as the process launches","default":true},"attachSimplePort":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\${.*}$"}],"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","default":9229},"killBehavior":{"type":"string","enum":["forceful","polite","none"],"default":"forceful","markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen."},"experimentalNetworking":{"type":"string","default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"]}}},{"type":"object","description":"JavaScript Debug Terminal","additionalProperties":false,"default":{"program":"npm start"},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"command":{"type":["string","null"],"description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","default":"npm start","tags":["setup"]}}}]},"perScriptSourcemaps":{"type":"string","default":"auto","enum":["yes","no","auto"],"description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate."},"port":{"type":"number","description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","default":0},"file":{"type":"string","description":"A local html file to open in the browser","default":"${workspaceFolder}/index.html","tags":["setup"]},"userDataDir":{"type":["string","boolean"],"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","default":true},"includeDefaultArgs":{"type":"boolean","description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","default":true},"includeLaunchArgs":{"type":"boolean","description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","default":true},"runtimeExecutable":{"type":["string","null"],"description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","default":"stable"},"runtimeArgs":{"type":"array","description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"default":[]},"env":{"type":"object","description":"Optional dictionary of environment key/value pairs for the browser.","default":{}},"cwd":{"type":"string","description":"Optional working directory for the runtime executable.","default":null},"profileStartup":{"type":"boolean","description":"If true, will start profiling soon as the process launches","default":true},"cleanUp":{"type":"string","enum":["wholeBrowser","onlyTab"],"description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","default":"wholeBrowser"},"killBehavior":{"type":"string","enum":["forceful","polite","none"],"default":"forceful","markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen."},"browserLaunchLocation":{"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","default":null,"oneOf":[{"type":"null"},{"type":"string","enum":["ui","workspace"]}]},"enabled":{"type":"string","enum":["on","off","always"]}}}]},"debug.javascript.pickAndAttachOptions":{"type":"object","default":{},"markdownDescription":"Default options used when debugging a process through the `Debug: Attach to Node.js Process` command","properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"address":{"type":"string","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","default":"localhost"},"port":{"description":"Debug port to attach to. Default is 9229.","default":9229,"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\${.*}$"}],"tags":["setup"]},"websocketAddress":{"type":"string","description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port."},"remoteHostHeader":{"type":"string","description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header."},"restart":{"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","properties":{"delay":{"type":"number","minimum":0,"default":1000},"maxAttempts":{"type":"number","minimum":0,"default":10}}}]},"processId":{"type":"string","description":"ID of process to attach to.","default":"${command:PickProcess}"},"attachExistingChildren":{"type":"boolean","description":"Whether to attempt to attach to already-spawned child processes.","default":false},"continueOnAttach":{"type":"boolean","markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","default":true}}},"debug.javascript.autoAttachFilter":{"type":"string","default":"disabled","enum":["always","smart","onlyWithFlag","disabled"],"enumDescriptions":["Auto attach to every Node.js process launched in the terminal.","Auto attach when running scripts that aren't in a node_modules folder.","Only auto attach when the `--inspect` is given.","Auto attach is disabled and not shown in status bar."],"markdownDescription":"Configures which processes to automatically attach and debug when `#debug.node.autoAttach#` is on. A Node process launched with the `--inspect` flag will always be attached to, regardless of this setting."},"debug.javascript.autoAttachSmartPattern":{"type":"array","items":{"type":"string"},"default":["${workspaceFolder}/**","!**/node_modules/**","**/$KNOWN_TOOLS$/**"],"markdownDescription":"Configures glob patterns for determining when to attach in \"smart\" `#debug.javascript.autoAttachFilter#` mode. `$KNOWN_TOOLS$` is replaced with a list of names of common test and code runners. [Read more on the VS Code docs](https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_auto-attach-smart-patterns)."},"debug.javascript.breakOnConditionalError":{"type":"boolean","default":false,"markdownDescription":"Whether to stop when conditional breakpoints throw an error."},"debug.javascript.unmapMissingSources":{"type":"boolean","default":false,"description":"Configures whether sourcemapped file where the original file can't be read will automatically be unmapped. If this is false (default), a prompt is shown."},"debug.javascript.defaultRuntimeExecutable":{"type":"object","default":{"pwa-node":"node"},"markdownDescription":"The default `runtimeExecutable` used for launch configurations, if unspecified. This can be used to config custom paths to Node.js or browser installations.","properties":{"pwa-node":{"type":"string"},"pwa-chrome":{"type":"string"},"pwa-msedge":{"type":"string"}}},"debug.javascript.resourceRequestOptions":{"type":"object","default":{},"markdownDescription":"Request options to use when loading resources, such as source maps, in the debugger. You may need to configure this if your sourcemaps require authentication or use a self-signed certificate, for instance. Options are used to create a request using the [`got`](https://github.com/sindresorhus/got) library.\n\nA common case to disable certificate verification can be done by passing `{ \"https\": { \"rejectUnauthorized\": false } }`."},"debug.javascript.enableNetworkView":{"type":"boolean","default":true,"description":"Enables the experimental network view for targets that support it."}}},"grammars":[{"language":"wat","scopeName":"text.wat","path":"./src/ui/basic-wat.tmLanguage.json"}],"languages":[{"id":"wat","extensions":[".wat",".wasm"],"aliases":["WebAssembly Text Format"],"firstLine":"^\\(module","mimetypes":["text/wat"],"configuration":"./src/ui/basic-wat.configuration.json"}],"terminal":{"profiles":[{"id":"extension.js-debug.debugTerminal","title":"JavaScript Debug Terminal","icon":"$(debug)"}]},"views":{"debug":[{"id":"jsBrowserBreakpoints","name":"Browser Options","when":"debugType == pwa-chrome || debugType == pwa-msedge || debugType == pwa-editor-browser"},{"id":"jsExcludedCallers","name":"Excluded Callers","when":"debugType == pwa-extensionHost && jsDebugHasExcludedCallers || debugType == node-terminal && jsDebugHasExcludedCallers || debugType == pwa-node && jsDebugHasExcludedCallers || debugType == pwa-chrome && jsDebugHasExcludedCallers || debugType == pwa-msedge && jsDebugHasExcludedCallers || debugType == pwa-editor-browser && jsDebugHasExcludedCallers"},{"id":"jsDebugNetworkTree","name":"Network","when":"jsDebugNetworkAvailable"}]},"viewsWelcome":[{"view":"debug","contents":"[JavaScript Debug Terminal](command:extension.js-debug.createDebuggerTerminal)\n\nYou can use the JavaScript Debug Terminal to debug Node.js processes run on the command line.\n\n[Debug URL](command:extension.js-debug.debugLink)","when":"debugStartLanguage == javascript && !isWeb || debugStartLanguage == typescript && !isWeb || debugStartLanguage == javascriptreact && !isWeb || debugStartLanguage == typescriptreact && !isWeb"},{"view":"debug","contents":"[JavaScript Debug Terminal](command:extension.js-debug.createDebuggerTerminal)\n\nYou can use the JavaScript Debug Terminal to debug Node.js processes run on the command line.","when":"debugStartLanguage == javascript && isWeb || debugStartLanguage == typescript && isWeb || debugStartLanguage == javascriptreact && isWeb || debugStartLanguage == typescriptreact && isWeb"}]},"originalEnabledApiProposals":["portsAttributes","workspaceTrust","tunnels","browser"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ms-vscode.js-debug","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.js-debug-companion"},"manifest":{"name":"js-debug-companion","displayName":"JavaScript Debugger Companion Extension","description":"Companion extension to js-debug that provides capability for remote debugging","version":"1.1.3","publisher":"ms-vscode","engines":{"vscode":"^1.90.0"},"icon":"resources/logo.png","categories":["Other"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode-js-debug-companion.git"},"author":"Connor Peet ","license":"MIT","bugs":{"url":"https://github.com/microsoft/vscode-js-debug-companion/issues"},"homepage":"https://github.com/microsoft/vscode-js-debug-companion#readme","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onCommand:js-debug-companion.launchAndAttach","onCommand:js-debug-companion.kill","onCommand:js-debug-companion.launch","onCommand:js-debug-companion.defaultBrowser"],"main":"./out/extension.js","contributes":{},"extensionKind":["ui"],"api":"none","prettier":{"trailingComma":"all","singleQuote":true,"printWidth":100,"tabWidth":2,"arrowParens":"avoid"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ms-vscode.js-debug-companion","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.vscode-js-profile-table"},"manifest":{"name":"vscode-js-profile-table","version":"1.0.11","displayName":"Table Visualizer for JavaScript Profiles","description":"Text visualizer for profiles taken from the JavaScript debugger","author":"Connor Peet ","homepage":"https://github.com/microsoft/vscode-js-profile-visualizer#readme","license":"MIT","main":"out/extension.js","browser":"out/extension.web.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode-js-profile-visualizer.git"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"icon":"resources/icon.png","publisher":"ms-vscode","sideEffects":false,"engines":{"vscode":"^1.74.0"},"contributes":{"customEditors":[{"viewType":"jsProfileVisualizer.cpuprofile.table","displayName":"CPU Profile Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.cpuprofile"}]},{"viewType":"jsProfileVisualizer.heapprofile.table","displayName":"Heap Profile Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.heapprofile"}]},{"viewType":"jsProfileVisualizer.heapsnapshot.table","displayName":"Heap Snapshot Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.heapsnapshot"}]}],"commands":[{"command":"extension.jsProfileVisualizer.table.clearCodeLenses","title":"Clear Profile Code Lenses"}],"menus":{"commandPalette":[{"command":"extension.jsProfileVisualizer.table.clearCodeLenses","when":"jsProfileVisualizer.hasCodeLenses == true"}]}},"bugs":{"url":"https://github.com/microsoft/vscode-js-profile-visualizer/issues"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ms-vscode.vscode-js-profile-table","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.builtin-notebook-renderers"},"manifest":{"name":"builtin-notebook-renderers","displayName":"Builtin Notebook Output Renderers","description":"Provides basic output renderers for notebooks","publisher":"vscode","version":"10.0.0","license":"MIT","icon":"media/icon.png","engines":{"vscode":"^1.57.0"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"notebookRenderer":[{"id":"vscode.builtin-renderer","entrypoint":"./renderer-out/index.js","displayName":"VS Code Builtin Notebook Output Renderer","requiresMessaging":"never","mimeTypes":["image/gif","image/png","image/jpeg","image/git","image/svg+xml","text/html","application/javascript","application/vnd.code.notebook.error","application/vnd.code.notebook.stdout","application/x.notebook.stdout","application/x.notebook.stream","application/vnd.code.notebook.stderr","application/x.notebook.stderr","text/plain"]}]},"scripts":{"compile":"npx gulp compile-extension:notebook-renderers && npm run build-notebook","watch":"npx gulp compile-watch:notebook-renderers","build-notebook":"node ./esbuild.notebook.mts"},"devDependencies":{"@types/jsdom":"^21.1.0","@types/node":"24.x","@types/vscode-notebook-renderer":"^1.60.0","jsdom":"^28.1.0"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/notebook-renderers","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.npm"},"manifest":{"name":"npm","publisher":"vscode","displayName":"NPM support for VS Code","description":"Extension to add task support for npm scripts.","version":"10.0.0","private":true,"license":"MIT","engines":{"vscode":"0.10.x"},"icon":"images/npm_icon.png","categories":["Other"],"enabledApiProposals":["terminalQuickFixProvider"],"main":"./dist/npmMain","browser":"./dist/browser/npmBrowserMain","activationEvents":["onTaskType:npm","onLanguage:json","workspaceContains:package.json"],"capabilities":{"virtualWorkspaces":{"supported":"limited","description":"Functionality that requires running the 'npm' command is not available in virtual workspaces."},"untrustedWorkspaces":{"supported":"limited","description":"This extension executes tasks, which require trust to run."}},"contributes":{"languages":[{"id":"ignore","extensions":[".npmignore"]},{"id":"properties","extensions":[".npmrc"]}],"views":{"explorer":[{"id":"npm","name":"NPM Scripts","when":"npm:showScriptExplorer","icon":"$(json)","visibility":"hidden","contextualTitle":"NPM Scripts"}]},"commands":[{"command":"npm.runScript","title":"Run","icon":"$(run)"},{"command":"npm.debugScript","title":"Debug","icon":"$(debug)"},{"command":"npm.openScript","title":"Open"},{"command":"npm.runInstall","title":"Run Install"},{"command":"npm.refresh","title":"Refresh","icon":"$(refresh)"},{"command":"npm.runSelectedScript","title":"Run Script"},{"command":"npm.runScriptFromFolder","title":"Run NPM Script in Folder..."},{"command":"npm.packageManager","title":"Get Configured Package Manager"}],"menus":{"commandPalette":[{"command":"npm.refresh","when":"false"},{"command":"npm.runScript","when":"false"},{"command":"npm.debugScript","when":"false"},{"command":"npm.openScript","when":"false"},{"command":"npm.runInstall","when":"false"},{"command":"npm.runSelectedScript","when":"false"},{"command":"npm.runScriptFromFolder","when":"false"},{"command":"npm.packageManager","when":"false"}],"editor/context":[{"command":"npm.runSelectedScript","when":"resourceFilename == 'package.json' && resourceScheme == file","group":"navigation@+1"}],"view/title":[{"command":"npm.refresh","when":"view == npm","group":"navigation"}],"view/item/context":[{"command":"npm.openScript","when":"view == npm && viewItem == packageJSON","group":"navigation@1"},{"command":"npm.runInstall","when":"view == npm && viewItem == packageJSON","group":"navigation@2"},{"command":"npm.openScript","when":"view == npm && viewItem == script","group":"navigation@1"},{"command":"npm.runScript","when":"view == npm && viewItem == script","group":"navigation@2"},{"command":"npm.runScript","when":"view == npm && viewItem == script","group":"inline"},{"command":"npm.debugScript","when":"view == npm && viewItem == script","group":"inline"},{"command":"npm.debugScript","when":"view == npm && viewItem == script","group":"navigation@3"}],"explorer/context":[{"when":"config.npm.enableRunFromFolder && explorerViewletVisible && explorerResourceIsFolder && resourceScheme == file","command":"npm.runScriptFromFolder","group":"2_workspace"}]},"configuration":{"id":"npm","type":"object","title":"Npm","properties":{"npm.autoDetect":{"type":"string","enum":["off","on"],"default":"on","scope":"resource","description":"Controls whether npm scripts should be automatically detected."},"npm.runSilent":{"type":"boolean","default":false,"scope":"resource","markdownDescription":"Run npm commands with the `--silent` option."},"npm.packageManager":{"scope":"resource","type":"string","enum":["auto","npm","yarn","pnpm","bun"],"enumDescriptions":["Auto-detect which package manager to use based on lock files and installed package managers.","Use npm as the package manager.","Use yarn as the package manager.","Use pnpm as the package manager.","Use bun as the package manager."],"default":"auto","description":"The package manager used to install dependencies."},"npm.scriptRunner":{"scope":"resource","type":"string","enum":["auto","npm","yarn","pnpm","bun","node","vp"],"enumDescriptions":["Auto-detect which script runner to use based on lock files and installed package managers.","Use npm as the script runner.","Use yarn as the script runner.","Use pnpm as the script runner.","Use bun as the script runner.","Use Node.js as the script runner.","Use Vite+ (vp) as the script runner."],"default":"auto","description":"The script runner used to run scripts."},"npm.exclude":{"type":["string","array"],"items":{"type":"string"},"description":"Configure glob patterns for folders that should be excluded from automatic script detection.","scope":"resource"},"npm.enableScriptExplorer":{"type":"boolean","default":false,"scope":"resource","deprecationMessage":"The NPM Script Explorer is now available in 'Views' menu in the Explorer in all folders.","markdownDescription":"Enable an explorer view for npm scripts when there is no top-level `package.json` file."},"npm.enableRunFromFolder":{"type":"boolean","default":false,"scope":"resource","description":"Enable running npm scripts contained in a folder from the Explorer context menu."},"npm.scriptExplorerAction":{"type":"string","enum":["open","run"],"markdownDescription":"The default click action used in the NPM Scripts Explorer: `open` or `run`, the default is `open`.","scope":"window","default":"open"},"npm.scriptExplorerExclude":{"type":"array","items":{"type":"string"},"markdownDescription":"An array of regular expressions that indicate which scripts should be excluded from the NPM Scripts view.","scope":"resource","default":[]},"npm.fetchOnlinePackageInfo":{"type":"boolean","description":"Fetch data from https://registry.npmjs.org and https://registry.bower.io to provide auto-completion and information on hover features on npm dependencies.","default":true,"scope":"window","tags":["usesOnlineServices"]},"npm.scriptHover":{"type":"boolean","markdownDescription":"Display hover with `Run` and `Debug` commands for scripts.","default":true,"scope":"window"}}},"jsonValidation":[{"fileMatch":"package.json","url":"https://www.schemastore.org/package"},{"fileMatch":"bower.json","url":"https://www.schemastore.org/bower"}],"taskDefinitions":[{"type":"npm","required":["script"],"properties":{"script":{"type":"string","description":"The npm script to customize."},"path":{"type":"string","description":"The path to the folder of the package.json file that provides the script. Can be omitted."}},"when":"shellExecutionSupported"}],"terminalQuickFixes":[{"id":"ms-vscode.npm-command","commandLineMatcher":"npm","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":8,"lineMatcher":"Did you mean (?:this|one of these)\\?((?:\\n.+?npm .+ #.+)+)","offset":2}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalQuickFixProvider"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/npm","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.objective-c"},"manifest":{"name":"objective-c","displayName":"Objective-C Language Basics","description":"Provides syntax highlighting and bracket matching in Objective-C files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"objective-c","extensions":[".m"],"aliases":["Objective-C"],"configuration":"./language-configuration.json"},{"id":"objective-cpp","extensions":[".mm"],"aliases":["Objective-C++"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"objective-c","scopeName":"source.objc","path":"./syntaxes/objective-c.tmLanguage.json"},{"language":"objective-cpp","scopeName":"source.objcpp","path":"./syntaxes/objective-c++.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/objective-c","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.perl"},"manifest":{"name":"perl","displayName":"Perl Language Basics","description":"Provides syntax highlighting and bracket matching in Perl files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/perl.tmbundle Syntaxes/Perl.plist ./syntaxes/perl.tmLanguage.json Syntaxes/Perl%206.tmLanguage ./syntaxes/perl6.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"perl","aliases":["Perl","perl"],"extensions":[".pl",".pm",".pod",".t",".PL",".psgi"],"firstLine":"^#!.*\\bperl\\b","configuration":"./perl.language-configuration.json"},{"id":"raku","aliases":["Raku","Perl6","perl6"],"extensions":[".raku",".rakumod",".rakutest",".rakudoc",".nqp",".p6",".pl6",".pm6"],"firstLine":"(^#!.*\\bperl6\\b)|use\\s+v6|raku|=begin\\spod|my\\sclass","configuration":"./perl6.language-configuration.json"}],"grammars":[{"language":"perl","scopeName":"source.perl","path":"./syntaxes/perl.tmLanguage.json","unbalancedBracketScopes":["variable.other.predefined.perl"]},{"language":"raku","scopeName":"source.perl.6","path":"./syntaxes/perl6.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/perl","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.php"},"manifest":{"name":"php","displayName":"PHP Language Basics","description":"Provides syntax highlighting and bracket matching for PHP files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"php","extensions":[".php",".php4",".php5",".phtml",".ctp"],"aliases":["PHP","php"],"firstLine":"^#!\\s*/.*\\bphp\\b","mimetypes":["application/x-php"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"php","scopeName":"source.php","path":"./syntaxes/php.tmLanguage.json"},{"language":"php","scopeName":"text.html.php","path":"./syntaxes/html.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.php":"php","source.sql":"sql","text.xml":"xml","source.js":"javascript","source.json":"json","source.css":"css"}}],"snippets":[{"language":"php","path":"./snippets/php.code-snippets"}]},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/php","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.php-language-features"},"manifest":{"name":"php-language-features","displayName":"PHP Language Features","description":"Provides rich language support for PHP files.","version":"10.0.0","publisher":"vscode","license":"MIT","icon":"icons/logo.png","engines":{"vscode":"0.10.x"},"activationEvents":["onLanguage:php"],"main":"./dist/phpMain","categories":["Programming Languages"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":"limited","description":"The extension requires workspace trust when the `php.validate.executablePath` setting will load a version of PHP in the workspace.","restrictedConfigurations":["php.validate.executablePath"]}},"contributes":{"configuration":{"title":"PHP","type":"object","order":20,"properties":{"php.suggest.basic":{"type":"boolean","default":true,"description":"Controls whether the built-in PHP language suggestions are enabled. The support suggests PHP globals and variables."},"php.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable built-in PHP validation."},"php.validate.executablePath":{"type":["string","null"],"default":null,"description":"Points to the PHP executable.","scope":"machine-overridable"},"php.validate.run":{"type":"string","enum":["onSave","onType"],"default":"onSave","description":"Whether the linter is run on save or on type."}}},"jsonValidation":[{"fileMatch":"composer.json","url":"https://getcomposer.org/schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/php-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.powershell"},"manifest":{"name":"powershell","displayName":"Powershell Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Powershell files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"powershell","extensions":[".ps1",".psm1",".psd1",".pssc",".psrc"],"aliases":["PowerShell","powershell","ps","ps1","pwsh"],"firstLine":"^#!\\s*/.*\\bpwsh\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"powershell","scopeName":"source.powershell","path":"./syntaxes/powershell.tmLanguage.json"}]},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin PowerShell/EditorSyntax PowerShellSyntax.tmLanguage ./syntaxes/powershell.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/powershell","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.prompt"},"manifest":{"name":"prompt","displayName":"Prompt Language Basics","description":"Syntax highlighting for Prompt and Instructions documents.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.20.0"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"prompt","aliases":["Prompt","prompt"],"extensions":[".prompt.md"],"configuration":"./language-configuration.json"},{"id":"instructions","aliases":["Instructions","instructions"],"extensions":[".instructions.md","copilot-instructions.md"],"filenamePatterns":["**/.claude/rules/**/*.md"],"configuration":"./language-configuration.json"},{"id":"chatagent","aliases":["Agent","chat agent"],"extensions":[".agent.md",".chatmode.md"],"filenamePatterns":["**/.github/agents/*.md","**/.claude/agents/*.md"],"configuration":"./language-configuration.json"},{"id":"skill","aliases":["Skill","skill"],"filenames":["SKILL.md"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"prompt","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"instructions","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"chatagent","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"skill","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]}],"configurationDefaults":{"[prompt]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[instructions]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[chatagent]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[skill]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"}}},"scripts":{},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/prompt-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.pug"},"manifest":{"name":"pug","displayName":"Pug Language Basics","description":"Provides syntax highlighting and bracket matching in Pug files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin davidrios/pug-tmbundle Syntaxes/Pug.JSON-tmLanguage ./syntaxes/pug.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"jade","extensions":[".pug",".jade"],"aliases":["Pug","Jade","jade"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"jade","scopeName":"text.pug","path":"./syntaxes/pug.tmLanguage.json"}],"configurationDefaults":{"[jade]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/pug","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.python"},"manifest":{"name":"python","displayName":"Python Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Python files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"python","extensions":[".py",".rpy",".pyw",".cpy",".gyp",".gypi",".pyi",".ipy",".pyt"],"aliases":["Python","py"],"filenames":["SConstruct","SConscript"],"firstLine":"^#!\\s*/?.*\\bpython[0-9.-]*\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"python","scopeName":"source.python","path":"./syntaxes/MagicPython.tmLanguage.json"},{"scopeName":"source.regexp.python","path":"./syntaxes/MagicRegExp.tmLanguage.json"}],"configurationDefaults":{"[python]":{"diffEditor.ignoreTrimWhitespace":false,"editor.defaultColorDecorators":"never"}}},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin MagicStack/MagicPython grammars/MagicPython.tmLanguage ./syntaxes/MagicPython.tmLanguage.json grammars/MagicRegExp.tmLanguage ./syntaxes/MagicRegExp.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/python","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.r"},"manifest":{"name":"r","displayName":"R Language Basics","description":"Provides syntax highlighting and bracket matching in R files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin REditorSupport/vscode-R-syntax syntaxes/r.json ./syntaxes/r.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"r","extensions":[".R",".Rhistory",".Rprofile",".rt"],"aliases":["R","r"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"r","scopeName":"source.r","path":"./syntaxes/r.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/r","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.razor"},"manifest":{"name":"razor","displayName":"Razor Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Razor files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"razor","extensions":[".cshtml",".razor"],"aliases":["Razor","razor"],"mimetypes":["text/x-cshtml"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"razor","scopeName":"text.html.cshtml","path":"./syntaxes/cshtml.tmLanguage.json","embeddedLanguages":{"section.embedded.source.cshtml":"csharp","source.css":"css","source.js":"javascript"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/razor","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.references-view"},"manifest":{"name":"references-view","displayName":"Reference Search View","description":"Reference Search results as separate, stable view in the sidebar","icon":"media/icon.png","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.67.0"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"repository":{"type":"git","url":"https://github.com/Microsoft/vscode-references-view"},"bugs":{"url":"https://github.com/Microsoft/vscode-references-view/issues"},"activationEvents":["onCommand:references-view.find","onCommand:editor.action.showReferences"],"main":"./dist/extension","browser":"./dist/browser/extension","contributes":{"configuration":{"properties":{"references.preferredLocation":{"description":"Controls whether 'Peek References' or 'Find References' is invoked when selecting CodeLens references.","type":"string","default":"peek","enum":["peek","view"],"enumDescriptions":["Show references in peek editor.","Show references in separate view."]}}},"viewsContainers":{"activitybar":[{"id":"references-view","icon":"$(references)","title":"References"}]},"views":{"references-view":[{"id":"references-view.tree","name":"Reference Search Results","when":"reference-list.isActive"}]},"commands":[{"command":"references-view.findReferences","title":"Find All References","category":"References"},{"command":"references-view.findImplementations","title":"Find All Implementations","category":"References"},{"command":"references-view.clearHistory","title":"Clear History","category":"References","icon":"$(clear-all)"},{"command":"references-view.clear","title":"Clear","category":"References","icon":"$(clear-all)"},{"command":"references-view.refresh","title":"Refresh","category":"References","icon":"$(refresh)"},{"command":"references-view.pickFromHistory","title":"Show History","category":"References"},{"command":"references-view.removeReferenceItem","title":"Dismiss","icon":"$(close)"},{"command":"references-view.copy","title":"Copy"},{"command":"references-view.copyAll","title":"Copy All"},{"command":"references-view.copyPath","title":"Copy Path"},{"command":"references-view.refind","title":"Rerun","icon":"$(refresh)"},{"command":"references-view.showCallHierarchy","title":"Show Call Hierarchy","category":"Calls"},{"command":"references-view.showOutgoingCalls","title":"Show Outgoing Calls","category":"Calls","icon":"$(call-incoming)"},{"command":"references-view.showIncomingCalls","title":"Show Incoming Calls","category":"Calls","icon":"$(call-outgoing)"},{"command":"references-view.removeCallItem","title":"Dismiss","icon":"$(close)"},{"command":"references-view.next","title":"Go to Next Reference","enablement":"references-view.canNavigate"},{"command":"references-view.prev","title":"Go to Previous Reference","enablement":"references-view.canNavigate"},{"command":"references-view.showTypeHierarchy","title":"Show Type Hierarchy","category":"Types"},{"command":"references-view.showSupertypes","title":"Show Supertypes","category":"Types","icon":"$(type-hierarchy-super)"},{"command":"references-view.showSubtypes","title":"Show Subtypes","category":"Types","icon":"$(type-hierarchy-sub)"},{"command":"references-view.removeTypeItem","title":"Dismiss","icon":"$(close)"}],"menus":{"editor/context":[{"command":"references-view.findReferences","when":"editorHasReferenceProvider","group":"0_navigation@1"},{"command":"references-view.findImplementations","when":"editorHasImplementationProvider","group":"0_navigation@2"},{"command":"references-view.showCallHierarchy","when":"editorHasCallHierarchyProvider","group":"0_navigation@3"},{"command":"references-view.showTypeHierarchy","when":"editorHasTypeHierarchyProvider","group":"0_navigation@4"}],"view/title":[{"command":"references-view.clear","group":"navigation@3","when":"view == references-view.tree && reference-list.hasResult"},{"command":"references-view.clearHistory","group":"navigation@3","when":"view == references-view.tree && reference-list.hasHistory && !reference-list.hasResult"},{"command":"references-view.refresh","group":"navigation@2","when":"view == references-view.tree && reference-list.hasResult"},{"command":"references-view.showOutgoingCalls","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == callHierarchy && references-view.callHierarchyMode == showIncoming"},{"command":"references-view.showIncomingCalls","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == callHierarchy && references-view.callHierarchyMode == showOutgoing"},{"command":"references-view.showSupertypes","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == typeHierarchy && references-view.typeHierarchyMode != supertypes"},{"command":"references-view.showSubtypes","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == typeHierarchy && references-view.typeHierarchyMode != subtypes"}],"view/item/context":[{"command":"references-view.removeReferenceItem","group":"inline","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.removeCallItem","group":"inline","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.removeTypeItem","group":"inline","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.refind","group":"inline","when":"view == references-view.tree && viewItem == history-item"},{"command":"references-view.removeReferenceItem","group":"1","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.removeCallItem","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.removeTypeItem","group":"1","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.refind","group":"1","when":"view == references-view.tree && viewItem == history-item"},{"command":"references-view.copy","group":"2@1","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.copyPath","group":"2@2","when":"view == references-view.tree && viewItem == file-item"},{"command":"references-view.copyAll","group":"2@3","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.showOutgoingCalls","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.showIncomingCalls","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.showSupertypes","group":"1","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.showSubtypes","group":"1","when":"view == references-view.tree && viewItem == type-item"}],"commandPalette":[{"command":"references-view.removeReferenceItem","when":"never"},{"command":"references-view.removeCallItem","when":"never"},{"command":"references-view.removeTypeItem","when":"never"},{"command":"references-view.copy","when":"never"},{"command":"references-view.copyAll","when":"never"},{"command":"references-view.copyPath","when":"never"},{"command":"references-view.refind","when":"never"},{"command":"references-view.findReferences","when":"editorHasReferenceProvider"},{"command":"references-view.clear","when":"reference-list.hasResult"},{"command":"references-view.clearHistory","when":"reference-list.isActive && !reference-list.hasResult"},{"command":"references-view.refresh","when":"reference-list.hasResult"},{"command":"references-view.pickFromHistory","when":"reference-list.isActive"},{"command":"references-view.next","when":"never"},{"command":"references-view.prev","when":"never"}]},"keybindings":[{"command":"references-view.findReferences","when":"editorHasReferenceProvider","key":"shift+alt+f12"},{"command":"references-view.next","when":"reference-list.hasResult","key":"f4"},{"command":"references-view.prev","when":"reference-list.hasResult","key":"shift+f4"},{"command":"references-view.showCallHierarchy","when":"editorHasCallHierarchyProvider","key":"shift+alt+h"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/references-view","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.restructuredtext"},"manifest":{"name":"restructuredtext","displayName":"reStructuredText Language Basics","description":"Provides syntax highlighting in reStructuredText files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin trond-snekvik/vscode-rst syntaxes/rst.tmLanguage.json ./syntaxes/rst.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"restructuredtext","aliases":["reStructuredText"],"configuration":"./language-configuration.json","extensions":[".rst"]}],"grammars":[{"language":"restructuredtext","scopeName":"source.rst","path":"./syntaxes/rst.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/restructuredtext","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ruby"},"manifest":{"name":"ruby","displayName":"Ruby Language Basics","description":"Provides syntax highlighting and bracket matching in Ruby files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin Shopify/ruby-lsp vscode/grammars/ruby.cson.json ./syntaxes/ruby.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"ruby","extensions":[".rb",".rbx",".rjs",".gemspec",".rake",".ru",".erb",".podspec",".rbi"],"filenames":["rakefile","gemfile","guardfile","podfile","capfile","cheffile","hobofile","vagrantfile","appraisals","rantfile","berksfile","berksfile.lock","thorfile","puppetfile","dangerfile","brewfile","fastfile","appfile","deliverfile","matchfile","scanfile","snapfile","gymfile"],"aliases":["Ruby","rb"],"firstLine":"^#!\\s*/.*\\bruby\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"ruby","scopeName":"source.ruby","path":"./syntaxes/ruby.tmLanguage.json"}],"configurationDefaults":{"[ruby]":{"editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ruby","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.rust"},"manifest":{"name":"rust","displayName":"Rust Language Basics","description":"Provides syntax highlighting and bracket matching in Rust files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"rust","extensions":[".rs"],"aliases":["Rust","rust"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"rust","path":"./syntaxes/rust.tmLanguage.json","scopeName":"source.rust"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/rust","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.scss"},"manifest":{"name":"scss","displayName":"SCSS Language Basics","description":"Provides syntax highlighting, bracket matching and folding in SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-sass grammars/scss.cson ./syntaxes/scss.tmLanguage.json grammars/sassdoc.cson ./syntaxes/sassdoc.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"scss","aliases":["SCSS","scss"],"extensions":[".scss"],"mimetypes":["text/x-scss","text/scss"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"scss","scopeName":"source.css.scss","path":"./syntaxes/scss.tmLanguage.json"},{"scopeName":"source.sassdoc","path":"./syntaxes/sassdoc.tmLanguage.json"}],"problemMatchers":[{"name":"node-sass","label":"Node Sass Compiler","owner":"node-sass","fileLocation":"absolute","pattern":[{"regexp":"^{$"},{"regexp":"\\s*\"status\":\\s\\d+,"},{"regexp":"\\s*\"file\":\\s\"(.*)\",","file":1},{"regexp":"\\s*\"line\":\\s(\\d+),","line":1},{"regexp":"\\s*\"column\":\\s(\\d+),","column":1},{"regexp":"\\s*\"message\":\\s\"(.*)\",","message":1},{"regexp":"\\s*\"formatted\":\\s(.*)"},{"regexp":"^}$"}]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/scss","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.search-result"},"manifest":{"name":"search-result","displayName":"Search Result","description":"Provides syntax highlighting and language features for tabbed search results.","version":"10.0.0","publisher":"vscode","license":"MIT","icon":"images/icon.png","engines":{"vscode":"^1.39.0"},"main":"./dist/extension.js","browser":"./dist/browser/extension","activationEvents":["onLanguage:search-result"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["documentFiltersExclusive"],"contributes":{"configurationDefaults":{"[search-result]":{"editor.lineNumbers":"off"}},"languages":[{"id":"search-result","extensions":[".code-search"],"aliases":["Search Result"]}],"grammars":[{"language":"search-result","scopeName":"text.searchResult","path":"./syntaxes/searchResult.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["documentFiltersExclusive"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/search-result","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.shaderlab"},"manifest":{"name":"shaderlab","displayName":"Shaderlab Language Basics","description":"Provides syntax highlighting and bracket matching in Shaderlab files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin tgjones/shaders-tmLanguage grammars/shaderlab.json ./syntaxes/shaderlab.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"shaderlab","extensions":[".shader"],"aliases":["ShaderLab","shaderlab"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"shaderlab","path":"./syntaxes/shaderlab.tmLanguage.json","scopeName":"source.shaderlab"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/shaderlab","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.shellscript"},"manifest":{"name":"shellscript","displayName":"Shell Script Language Basics","description":"Provides syntax highlighting and bracket matching in Shell Script files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin jeff-hykin/better-shell-syntax autogenerated/shell.tmLanguage.json ./syntaxes/shell-unix-bash.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"shellscript","aliases":["Shell Script","shellscript","bash","fish","sh","zsh","ksh","csh"],"extensions":[".sh",".bash",".bashrc",".bash_aliases",".bash_profile",".bash_login",".ebuild",".eclass",".profile",".bash_logout",".xprofile",".xsession",".xsessionrc",".Xsession",".zsh",".zshrc",".zprofile",".zlogin",".zlogout",".zshenv",".zsh-theme",".fish",".ksh",".csh",".cshrc",".tcshrc",".yashrc",".yash_profile"],"filenames":["APKBUILD","PKGBUILD",".envrc",".hushlogin","zshrc","zshenv","zlogin","zprofile","zlogout","bashrc_Apple_Terminal","zshrc_Apple_Terminal"],"firstLine":"^#!.*\\b(bash|fish|zsh|sh|ksh|dtksh|pdksh|mksh|ash|dash|yash|sh|csh|jcsh|tcsh|itcsh).*|^#\\s*-\\*-[^*]*mode:\\s*shell-script[^*]*-\\*-","configuration":"./language-configuration.json","mimetypes":["text/x-shellscript"]}],"grammars":[{"language":"shellscript","scopeName":"source.shell","path":"./syntaxes/shell-unix-bash.tmLanguage.json","balancedBracketScopes":["*"],"unbalancedBracketScopes":["meta.scope.case-pattern.shell"]}],"configurationDefaults":{"[shellscript]":{"files.eol":"\n","editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/shellscript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.simple-browser"},"manifest":{"name":"simple-browser","displayName":"Simple Browser","description":"A very basic built-in webview for displaying web content.","enabledApiProposals":["externalUriOpener"],"version":"10.0.0","icon":"media/icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension","categories":["Other"],"extensionKind":["ui","workspace"],"activationEvents":["onCommand:simpleBrowser.api.open","onOpenExternalUri:http","onOpenExternalUri:https","onWebviewPanel:simpleBrowser.view"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"commands":[{"command":"simpleBrowser.show","title":"Show","category":"Simple Browser"}],"menus":{"commandPalette":[{"command":"simpleBrowser.show","when":"isWeb"}]},"configuration":[{"title":"Simple Browser","properties":{"simpleBrowser.focusLockIndicator.enabled":{"type":"boolean","default":true,"title":"Focus Lock Indicator Enabled","description":"Enable/disable the floating indicator that shows when focused in the simple browser."}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["externalUriOpener"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/simple-browser","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.sql"},"manifest":{"name":"sql","displayName":"SQL Language Basics","description":"Provides syntax highlighting and bracket matching in SQL files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"sql","extensions":[".sql",".dsql"],"aliases":["MS SQL","T-SQL"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"sql","scopeName":"source.sql","path":"./syntaxes/sql.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/sql","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.swift"},"manifest":{"name":"swift","displayName":"Swift Language Basics","description":"Provides snippets, syntax highlighting and bracket matching in Swift files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin jtbandes/swift-tmlanguage Swift.tmLanguage.json ./syntaxes/swift.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"swift","aliases":["Swift","swift"],"extensions":[".swift"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"swift","scopeName":"source.swift","path":"./syntaxes/swift.tmLanguage.json"}],"snippets":[{"language":"swift","path":"./snippets/swift.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/swift","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.terminal-suggest"},"manifest":{"name":"terminal-suggest","publisher":"vscode","displayName":"Terminal Suggest for VS Code","description":"Extension to add terminal completions for zsh, bash, and fish terminals.","version":"1.0.1","private":true,"license":"MIT","icon":"./media/icon.png","engines":{"vscode":"^1.95.0"},"categories":["Other"],"enabledApiProposals":["terminalCompletionProvider","terminalShellEnv"],"contributes":{"commands":[{"command":"terminal.integrated.suggest.clearCachedGlobals","category":"Terminal","title":"Clear Suggest Cached Globals"}],"terminal":{"completionProviders":[{"description":"Show suggestions for commands, arguments, flags, and file paths based upon the Fig spec."}]}},"main":"./dist/terminalSuggestMain","activationEvents":["onTerminalShellIntegration:*"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalCompletionProvider","terminalShellEnv"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/terminal-suggest","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-abyss"},"manifest":{"name":"theme-abyss","displayName":"Abyss Theme","description":"Abyss theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Abyss","label":"Abyss","uiTheme":"vs-dark","path":"./themes/abyss-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-abyss","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-defaults"},"manifest":{"name":"theme-defaults","displayName":"Default Themes","description":"The default Visual Studio light and dark themes","categories":["Themes"],"version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"contributes":{"themes":[{"id":"Light 2026","label":"Light 2026","uiTheme":"vs","path":"./themes/2026-light.json"},{"id":"Dark 2026","label":"Dark 2026","uiTheme":"vs-dark","path":"./themes/2026-dark.json"},{"id":"Dark+","label":"Dark+","uiTheme":"vs-dark","path":"./themes/dark_plus.json"},{"id":"Dark Modern","label":"Dark Modern","uiTheme":"vs-dark","path":"./themes/dark_modern.json"},{"id":"Light+","label":"Light+","uiTheme":"vs","path":"./themes/light_plus.json"},{"id":"Light Modern","label":"Light Modern","uiTheme":"vs","path":"./themes/light_modern.json"},{"id":"Visual Studio Dark","label":"Dark (Visual Studio)","uiTheme":"vs-dark","path":"./themes/dark_vs.json"},{"id":"Visual Studio Light","label":"Light (Visual Studio)","uiTheme":"vs","path":"./themes/light_vs.json"},{"id":"Default High Contrast","label":"Dark High Contrast","uiTheme":"hc-black","path":"./themes/hc_black.json"},{"id":"Default High Contrast Light","label":"Light High Contrast","uiTheme":"hc-light","path":"./themes/hc_light.json"}],"iconThemes":[{"id":"vs-minimal","label":"Minimal (Visual Studio Code)","path":"./fileicons/vs_minimal-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-defaults","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-kimbie-dark"},"manifest":{"name":"theme-kimbie-dark","displayName":"Kimbie Dark Theme","description":"Kimbie dark theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Kimbie Dark","label":"Kimbie Dark","uiTheme":"vs-dark","path":"./themes/kimbie-dark-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-kimbie-dark","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vscode-modern-icons"},"manifest":{"name":"vscode-modern-icons","private":true,"version":"1.0.0","displayName":"VS Code Modern File Icons","description":"A modern file icon theme for Visual Studio Code","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"iconThemes":[{"id":"vscode-modern-icons","label":"VS Code Modern Icons","path":"./fileicons/vscode-modern-icons-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-modern-icons","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-monokai"},"manifest":{"name":"theme-monokai","displayName":"Monokai Theme","description":"Monokai theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Monokai","label":"Monokai","uiTheme":"vs-dark","path":"./themes/monokai-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-monokai","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-monokai-dimmed"},"manifest":{"name":"theme-monokai-dimmed","displayName":"Monokai Dimmed Theme","description":"Monokai dimmed theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Monokai Dimmed","label":"Monokai Dimmed","uiTheme":"vs-dark","path":"./themes/dimmed-monokai-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-monokai-dimmed","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-quietlight"},"manifest":{"name":"theme-quietlight","displayName":"Quiet Light Theme","description":"Quiet light theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Quiet Light","label":"Quiet Light","uiTheme":"vs","path":"./themes/quietlight-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-quietlight","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-red"},"manifest":{"name":"theme-red","displayName":"Red Theme","description":"Red theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Red","label":"Red","uiTheme":"vs-dark","path":"./themes/Red-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-red","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vscode-theme-seti"},"manifest":{"name":"vscode-theme-seti","private":true,"version":"10.0.0","displayName":"Seti File Icon Theme","description":"A file icon theme made out of the Seti UI file icons","publisher":"vscode","license":"MIT","icon":"icons/seti-circular-128x128.png","scripts":{"update":"node ./build/update-icon-theme.js"},"engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"iconThemes":[{"id":"vs-seti","label":"Seti (Visual Studio Code)","path":"./icons/vs-seti-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-seti","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-solarized-dark"},"manifest":{"name":"theme-solarized-dark","displayName":"Solarized Dark Theme","description":"Solarized dark theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Solarized Dark","label":"Solarized Dark","uiTheme":"vs-dark","path":"./themes/solarized-dark-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-solarized-dark","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-solarized-light"},"manifest":{"name":"theme-solarized-light","displayName":"Solarized Light Theme","description":"Solarized light theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Solarized Light","label":"Solarized Light","uiTheme":"vs","path":"./themes/solarized-light-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-solarized-light","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-tomorrow-night-blue"},"manifest":{"name":"theme-tomorrow-night-blue","displayName":"Tomorrow Night Blue Theme","description":"Tomorrow night blue theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Tomorrow Night Blue","label":"Tomorrow Night Blue","uiTheme":"vs-dark","path":"./themes/tomorrow-night-blue-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-tomorrow-night-blue","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.tunnel-forwarding"},"manifest":{"name":"tunnel-forwarding","displayName":"Local Tunnel Port Forwarding","description":"Allows forwarding local ports to be accessible over the internet.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.82.0"},"icon":"media/icon.png","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["resolvers","tunnelFactory"],"activationEvents":["onTunnel"],"contributes":{"commands":[{"category":"Port Forwarding","command":"tunnel-forwarding.showLog","title":"Show Log","enablement":"tunnelForwardingHasLog"},{"category":"Port Forwarding","command":"tunnel-forwarding.restart","title":"Restart Forwarding System","enablement":"tunnelForwardingIsRunning"}]},"main":"./dist/extension","prettier":{"printWidth":100,"trailingComma":"all","singleQuote":true,"arrowParens":"avoid"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["resolvers","tunnelFactory"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/tunnel-forwarding","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.typescript"},"manifest":{"name":"typescript","description":"Provides snippets, syntax highlighting, bracket matching and folding in TypeScript files.","displayName":"TypeScript Language Basics","version":"10.0.0","author":"vscode","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"typescript","aliases":["TypeScript","ts","typescript"],"extensions":[".ts",".cts",".mts"],"firstLine":"^#!.*\\b(deno|bun|ts-node)\\b","configuration":"./language-configuration.json"},{"id":"typescriptreact","aliases":["TypeScript JSX","TypeScript React","tsx"],"extensions":[".tsx"],"configuration":"./language-configuration.json"},{"id":"jsonc","filenames":["tsconfig.json","jsconfig.json"],"filenamePatterns":["tsconfig.*.json","jsconfig.*.json","tsconfig-*.json","jsconfig-*.json"]},{"id":"json","extensions":[".tsbuildinfo"]}],"grammars":[{"language":"typescript","scopeName":"source.ts","path":"./syntaxes/TypeScript.tmLanguage.json","unbalancedBracketScopes":["keyword.operator.relational","storage.type.function.arrow","keyword.operator.bitwise.shift","meta.brace.angle","punctuation.definition.tag","keyword.operator.assignment.compound.bitwise.ts"],"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"language":"typescriptreact","scopeName":"source.tsx","path":"./syntaxes/TypeScriptReact.tmLanguage.json","unbalancedBracketScopes":["keyword.operator.relational","storage.type.function.arrow","keyword.operator.bitwise.shift","punctuation.definition.tag","keyword.operator.assignment.compound.bitwise.ts"],"embeddedLanguages":{"meta.tag.tsx":"jsx-tags","meta.tag.without-attributes.tsx":"jsx-tags","meta.tag.attributes.tsx":"typescriptreact","meta.embedded.expression.tsx":"typescriptreact"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"scopeName":"documentation.injection.ts","path":"./syntaxes/jsdoc.ts.injection.tmLanguage.json","injectTo":["source.ts","source.tsx"]},{"scopeName":"documentation.injection.js.jsx","path":"./syntaxes/jsdoc.js.injection.tmLanguage.json","injectTo":["source.js","source.js.jsx"]}],"semanticTokenScopes":[{"language":"typescript","scopes":{"property":["variable.other.property.ts"],"property.readonly":["variable.other.constant.property.ts"],"variable":["variable.other.readwrite.ts"],"variable.readonly":["variable.other.constant.object.ts"],"function":["entity.name.function.ts"],"namespace":["entity.name.type.module.ts"],"variable.defaultLibrary":["support.variable.ts"],"function.defaultLibrary":["support.function.ts"]}},{"language":"typescriptreact","scopes":{"property":["variable.other.property.tsx"],"property.readonly":["variable.other.constant.property.tsx"],"variable":["variable.other.readwrite.tsx"],"variable.readonly":["variable.other.constant.object.tsx"],"function":["entity.name.function.tsx"],"namespace":["entity.name.type.module.tsx"],"variable.defaultLibrary":["support.variable.tsx"],"function.defaultLibrary":["support.function.tsx"]}}],"snippets":[{"language":"typescript","path":"./snippets/typescript.code-snippets"},{"language":"typescriptreact","path":"./snippets/typescript.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/typescript-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.typescript-language-features"},"manifest":{"name":"typescript-language-features","description":"Provides rich language support for JavaScript and TypeScript.","displayName":"JavaScript and TypeScript Language Features","version":"10.0.0","author":"vscode","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["workspaceTrust","multiDocumentHighlightProvider","codeActionAI","codeActionRanges","editorHoverVerbosityLevel"],"capabilities":{"virtualWorkspaces":{"supported":"limited","description":"In virtual workspaces, resolving and finding references across files is not supported."},"untrustedWorkspaces":{"supported":false,"description":"The extension requires workspace trust when the workspace version is used because it executes code specified by the workspace."}},"engines":{"vscode":"^1.30.0"},"icon":"media/icon.png","categories":["Programming Languages"],"activationEvents":["onLanguage:javascript","onLanguage:javascriptreact","onLanguage:typescript","onLanguage:typescriptreact","onLanguage:jsx-tags","onCommand:typescript.tsserverRequest","onCommand:_typescript.configurePlugin","onCommand:_typescript.learnMoreAboutRefactorings","onCommand:typescript.fileReferences","onTaskType:typescript","onLanguage:jsonc","onWalkthrough:nodejsWelcome"],"main":"./dist/extension","browser":"./dist/browser/extension","contributes":{"jsonValidation":[{"fileMatch":"package.json","url":"./schemas/package.schema.json"},{"fileMatch":"tsconfig.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"tsconfig.*.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig-*.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"tsconfig-*.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig.*.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"typings.json","url":"https://www.schemastore.org/typings"},{"fileMatch":".bowerrc","url":"https://www.schemastore.org/bowerrc"},{"fileMatch":".babelrc","url":"https://www.schemastore.org/babelrc"},{"fileMatch":".babelrc.json","url":"https://www.schemastore.org/babelrc"},{"fileMatch":"babel.config.json","url":"https://www.schemastore.org/babelrc"},{"fileMatch":"jsconfig.json","url":"https://www.schemastore.org/jsconfig"},{"fileMatch":"jsconfig.json","url":"./schemas/jsconfig.schema.json"},{"fileMatch":"jsconfig.*.json","url":"https://www.schemastore.org/jsconfig"},{"fileMatch":"jsconfig.*.json","url":"./schemas/jsconfig.schema.json"},{"fileMatch":".swcrc","url":"https://swc.rs/schema.json"},{"fileMatch":"typedoc.json","url":"https://typedoc.org/schema.json"}],"configuration":[{"type":"object","properties":{"js/ts.tsdk.path":{"type":"string","markdownDescription":"Specifies the folder path to the tsserver and `lib*.d.ts` files under a TypeScript install to use for IntelliSense, for example: `./node_modules/typescript/lib`.\n\n- When specified as a user setting, the TypeScript version from `js/ts.tsdk.path` automatically replaces the built-in TypeScript version.\n- When specified as a workspace setting, `js/ts.tsdk.path` allows you to switch to use that workspace version of TypeScript for IntelliSense with the `TypeScript: Select TypeScript version` command.\n\nSee the [TypeScript documentation](https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-newer-typescript-versions) for more detail about managing TypeScript versions.","scope":"window","order":1,"keywords":["TypeScript"]},"typescript.tsdk":{"type":"string","markdownDescription":"Specifies the folder path to the tsserver and `lib*.d.ts` files under a TypeScript install to use for IntelliSense, for example: `./node_modules/typescript/lib`.\n\n- When specified as a user setting, the TypeScript version from `js/ts.tsdk.path` automatically replaces the built-in TypeScript version.\n- When specified as a workspace setting, `js/ts.tsdk.path` allows you to switch to use that workspace version of TypeScript for IntelliSense with the `TypeScript: Select TypeScript version` command.\n\nSee the [TypeScript documentation](https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-newer-typescript-versions) for more detail about managing TypeScript versions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsdk.path#` instead.","scope":"window","order":1},"js/ts.experimental.useTsgo":{"type":"boolean","default":false,"markdownDescription":"Disables TypeScript and JavaScript language features to allow usage of the TypeScript Go experimental extension. Requires TypeScript Go to be installed and configured. Requires reloading extensions after changing this setting.","scope":"window","order":2,"keywords":["TypeScript","experimental"]},"typescript.experimental.useTsgo":{"type":"boolean","default":false,"markdownDescription":"Disables TypeScript and JavaScript language features to allow usage of the TypeScript Go experimental extension. Requires TypeScript Go to be installed and configured. Requires reloading extensions after changing this setting.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.experimental.useTsgo#` instead.","scope":"window","order":2,"keywords":["experimental"]},"js/ts.locale":{"type":"string","default":"auto","enum":["auto","de","es","en","fr","it","ja","ko","ru","zh-CN","zh-TW"],"enumDescriptions":["Use VS Code's configured display language.","Deutsch","español","English","français","italiano","日本語","한국어","русский","中文(简体)","中文(繁體)"],"markdownDescription":"Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VS Code's locale.","scope":"window","order":3,"keywords":["TypeScript"]},"typescript.locale":{"type":"string","default":"auto","enum":["auto","de","es","en","fr","it","ja","ko","ru","zh-CN","zh-TW"],"enumDescriptions":["Use VS Code's configured display language.","Deutsch","español","English","français","italiano","日本語","한국어","русский","中文(简体)","中文(繁體)"],"markdownDescription":"Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VS Code's locale.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.locale#` instead.","scope":"window","order":3},"js/ts.tsc.autoDetect":{"type":"string","default":"on","enum":["on","off","build","watch"],"markdownEnumDescriptions":["Create both build and watch tasks.","Disable this feature.","Only create single run compile tasks.","Only create compile and watch tasks."],"description":"Controls auto detection of tsc tasks.","scope":"window","order":4,"keywords":["TypeScript"]},"typescript.tsc.autoDetect":{"type":"string","default":"on","enum":["on","off","build","watch"],"markdownEnumDescriptions":["Create both build and watch tasks.","Disable this feature.","Only create single run compile tasks.","Only create compile and watch tasks."],"description":"Controls auto detection of tsc tasks.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsc.autoDetect#` instead.","scope":"window","order":4}}},{"type":"object","title":"Preferences","properties":{"js/ts.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.quoteStyle#` instead.","scope":"language-overridable"},"typescript.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.quoteStyle#` instead.","scope":"language-overridable"},"js/ts.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifier#` instead.","scope":"language-overridable"},"typescript.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifier#` instead.","scope":"language-overridable"},"js/ts.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifierEnding#` instead.","scope":"language-overridable"},"typescript.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifierEnding#` instead.","scope":"language-overridable"},"js/ts.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#js/ts.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#javascript.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.jsxAttributeCompletionStyle#` instead.","scope":"language-overridable"},"typescript.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#typescript.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.jsxAttributeCompletionStyle#` instead.","scope":"language-overridable"},"js/ts.preferences.includePackageJsonAutoImports":{"type":"string","enum":["auto","on","off"],"enumDescriptions":["Search dependencies based on estimated performance impact.","Always search dependencies.","Never search dependencies."],"default":"auto","markdownDescription":"Enable/disable searching `package.json` dependencies for available auto imports.","scope":"window","keywords":["TypeScript"]},"typescript.preferences.includePackageJsonAutoImports":{"type":"string","enum":["auto","on","off"],"enumDescriptions":["Search dependencies based on estimated performance impact.","Always search dependencies.","Never search dependencies."],"default":"auto","markdownDescription":"Enable/disable searching `package.json` dependencies for available auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.includePackageJsonAutoImports#` instead.","scope":"window"},"js/ts.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","scope":"resource","keywords":["JavaScript","TypeScript"]},"javascript.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportFileExcludePatterns#` instead.","scope":"resource"},"typescript.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportFileExcludePatterns#` instead.","scope":"resource"},"js/ts.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","scope":"resource","keywords":["JavaScript","TypeScript"]},"javascript.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportSpecifierExcludeRegexes#` instead.","scope":"resource"},"typescript.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportSpecifierExcludeRegexes#` instead.","scope":"resource"},"js/ts.preferences.preferTypeOnlyAutoImports":{"type":"boolean","default":false,"markdownDescription":"Include the `type` keyword in auto-imports whenever possible. Requires using TypeScript 5.3+ in the workspace.","scope":"resource","keywords":["TypeScript"]},"typescript.preferences.preferTypeOnlyAutoImports":{"type":"boolean","default":false,"markdownDescription":"Include the `type` keyword in auto-imports whenever possible. Requires using TypeScript 5.3+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.preferTypeOnlyAutoImports#` instead.","scope":"resource"},"js/ts.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.useAliasesForRenames#` instead.","scope":"language-overridable"},"typescript.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.useAliasesForRenames#` instead.","scope":"language-overridable"},"js/ts.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.renameMatchingJsxTags#` instead.","scope":"language-overridable"},"typescript.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.renameMatchingJsxTags#` instead.","scope":"language-overridable"},"js/ts.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","Sort imports case-insensitively.","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}},"keywords":["JavaScript","TypeScript"]},"javascript.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.organizeImports#` instead.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","Sort imports case-insensitively.","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}}},"typescript.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.organizeImports#` instead.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","%typescript.preferences.organizeImports.caseSensitivity.insensitive","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}}}}},{"type":"object","title":"Formatting","properties":{"js/ts.format.enabled":{"type":"boolean","default":true,"description":"Enable/disable the default JavaScript and TypeScript formatter.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.enable":{"type":"boolean","default":true,"description":"Enable/disable default JavaScript formatter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.enabled#` instead.","scope":"window"},"typescript.format.enable":{"type":"boolean","default":true,"description":"Enable/disable default TypeScript formatter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.enabled#` instead.","scope":"window"},"js/ts.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterCommaDelimiter#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterCommaDelimiter#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterConstructor#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterConstructor#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterSemicolonInForStatements#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterSemicolonInForStatements#` instead.","scope":"resource"},"js/ts.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeAndAfterBinaryOperators#` instead.","scope":"resource"},"typescript.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeAndAfterBinaryOperators#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions#` instead.","scope":"resource"},"js/ts.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeFunctionParenthesis#` instead.","scope":"resource"},"typescript.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeFunctionParenthesis#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterTypeAssertion":{"type":"boolean","default":false,"description":"Defines space handling after type assertions in TypeScript.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.format.insertSpaceAfterTypeAssertion":{"type":"boolean","default":false,"description":"Defines space handling after type assertions in TypeScript.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterTypeAssertion#` instead.","scope":"resource"},"js/ts.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForFunctions#` instead.","scope":"resource"},"typescript.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForFunctions#` instead.","scope":"resource"},"js/ts.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForControlBlocks#` instead.","scope":"resource"},"typescript.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForControlBlocks#` instead.","scope":"resource"},"js/ts.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","scope":"language-overridable","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."],"keywords":["JavaScript","TypeScript"]},"javascript.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.semicolons#` instead.","scope":"resource","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."]},"typescript.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.semicolons#` instead.","scope":"resource","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."]},"js/ts.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.indentSwitchCase#` instead.","scope":"resource"},"typescript.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.indentSwitchCase#` instead.","scope":"resource"}}},{"type":"object","title":"Validation","properties":{"js/ts.validate.enabled":{"type":"boolean","default":true,"description":"Enable/disable JavaScript and TypeScript validation.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"typescript.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable TypeScript validation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.validate.enabled#` instead.","scope":"window"},"javascript.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable JavaScript validation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.validate.enabled#` instead.","scope":"window"},"js/ts.reportStyleChecksAsWarnings":{"type":"boolean","default":true,"description":"Report style checks as warnings.","scope":"window","keywords":["TypeScript"]},"typescript.reportStyleChecksAsWarnings":{"type":"boolean","default":true,"description":"Report style checks as warnings.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.reportStyleChecksAsWarnings#` instead.","scope":"window"},"js/ts.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for JavaScript and TypeScript files in the editor.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for JavaScript files in the editor.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggestionActions.enabled#` instead.","scope":"resource"},"typescript.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for TypeScript files in the editor.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggestionActions.enabled#` instead.","scope":"resource"},"js/ts.tsserver.experimental.enableProjectDiagnostics":{"type":"boolean","default":false,"description":"Enables project wide error reporting.","scope":"window","keywords":["JavaScript","TypeScript","experimental"]},"typescript.tsserver.experimental.enableProjectDiagnostics":{"type":"boolean","default":false,"description":"Enables project wide error reporting.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.experimental.enableProjectDiagnostics#` instead.","scope":"window","keywords":["experimental"]}}},{"type":"object","title":"Implicit Project Config","properties":{"js/ts.implicitProjectConfig.module":{"type":"string","markdownDescription":"Sets the module system for the program. See more: https://www.typescriptlang.org/tsconfig#module.","default":"ESNext","enum":["CommonJS","AMD","System","UMD","ES6","ES2015","ES2020","ESNext","None","ES2022","Node12","NodeNext"],"scope":"window"},"js/ts.implicitProjectConfig.target":{"type":"string","default":"ES2024","markdownDescription":"Set target JavaScript language version for emitted JavaScript and include library declarations. See more: https://www.typescriptlang.org/tsconfig#target.","enum":["ES3","ES5","ES6","ES2015","ES2016","ES2017","ES2018","ES2019","ES2020","ES2021","ES2022","ES2023","ES2024","ESNext"],"scope":"window"},"js/ts.implicitProjectConfig.checkJs":{"type":"boolean","default":false,"markdownDescription":"Enable/disable semantic checking of JavaScript files. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.experimentalDecorators":{"type":"boolean","default":false,"markdownDescription":"Enable/disable `experimentalDecorators` in JavaScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strictNullChecks":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict null checks](https://www.typescriptlang.org/tsconfig#strictNullChecks) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strictFunctionTypes":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict function types](https://www.typescriptlang.org/tsconfig#strictFunctionTypes) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strict":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict mode](https://www.typescriptlang.org/tsconfig#strict) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"}}},{"type":"object","title":"Language Features","properties":{"js/ts.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","scope":"resource","keywords":["JavaScript","TypeScript"]},"typescript.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnFileMove.enabled#` instead.","scope":"resource"},"javascript.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnFileMove.enabled#` instead.","scope":"resource"},"js/ts.autoClosingTags.enabled":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"typescript.autoClosingTags":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.autoClosingTags.enabled#` instead.","scope":"language-overridable"},"javascript.autoClosingTags":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.autoClosingTags.enabled#` instead.","scope":"language-overridable"},"js/ts.workspaceSymbols.scope":{"type":"string","enum":["allOpenProjects","currentProject"],"enumDescriptions":["Search all open JavaScript or TypeScript projects for symbols.","Only search for symbols in the current JavaScript or TypeScript project."],"default":"allOpenProjects","markdownDescription":"Controls which files are searched by [Go to Symbol in Workspace](https://code.visualstudio.com/docs/editor/editingevolved#_open-symbol-by-name).","scope":"window","keywords":["TypeScript"]},"typescript.workspaceSymbols.scope":{"type":"string","enum":["allOpenProjects","currentProject"],"enumDescriptions":["Search all open JavaScript or TypeScript projects for symbols.","Only search for symbols in the current JavaScript or TypeScript project."],"default":"allOpenProjects","markdownDescription":"Controls which files are searched by [Go to Symbol in Workspace](https://code.visualstudio.com/docs/editor/editingevolved#_open-symbol-by-name).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.workspaceSymbols.scope#` instead.","scope":"window"},"js/ts.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","scope":"window","keywords":["JavaScript","TypeScript"]},"typescript.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferGoToSourceDefinition#` instead.","scope":"window"},"javascript.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferGoToSourceDefinition#` instead.","scope":"window"},"js/ts.workspaceSymbols.excludeLibrarySymbols":{"type":"boolean","default":true,"markdownDescription":"Exclude symbols that come from library files in `Go to Symbol in Workspace` results. Requires using TypeScript 5.3+ in the workspace.","scope":"window","keywords":["TypeScript"]},"typescript.workspaceSymbols.excludeLibrarySymbols":{"type":"boolean","default":true,"markdownDescription":"Exclude symbols that come from library files in `Go to Symbol in Workspace` results. Requires using TypeScript 5.3+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.workspaceSymbols.excludeLibrarySymbols#` instead.","scope":"window"},"js/ts.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","keywords":["JavaScript","TypeScript"]},"javascript.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnPaste.enabled#` instead."},"typescript.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnPaste.enabled#` instead."},"js/ts.hover.maximumLength":{"type":"number","default":500,"description":"The maximum number of characters in a hover. If the hover is longer than this, it will be truncated. Requires TypeScript 5.9+.","scope":"resource"}}},{"type":"object","title":"Suggestions","properties":{"js/ts.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.enabled#` instead.","scope":"language-overridable"},"typescript.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.enabled#` instead.","scope":"language-overridable"},"js/ts.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.autoImports#` instead.","scope":"resource"},"typescript.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.autoImports#` instead.","scope":"resource"},"js/ts.suggest.names":{"type":"boolean","default":true,"markdownDescription":"Enable/disable including unique names from the file in JavaScript suggestions. Note that name suggestions are always disabled in JavaScript code that is semantically checked using `@ts-check` or `checkJs`.","scope":"language-overridable","keywords":["JavaScript"]},"javascript.suggest.names":{"type":"boolean","default":true,"markdownDescription":"Enable/disable including unique names from the file in JavaScript suggestions. Note that name suggestions are always disabled in JavaScript code that is semantically checked using `@ts-check` or `checkJs`.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.names#` instead.","scope":"resource"},"js/ts.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.completeFunctionCalls#` instead.","scope":"resource"},"typescript.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.completeFunctionCalls#` instead.","scope":"resource"},"js/ts.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.paths#` instead.","scope":"resource"},"typescript.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.paths#` instead.","scope":"resource"},"js/ts.suggest.jsdoc.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.completeJSDocs":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.enabled#` instead.","scope":"language-overridable"},"typescript.suggest.completeJSDocs":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.enabled#` instead.","scope":"language-overridable"},"js/ts.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.generateReturns#` instead.","scope":"language-overridable"},"typescript.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.generateReturns#` instead.","scope":"language-overridable"},"js/ts.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeAutomaticOptionalChainCompletions#` instead.","scope":"resource"},"typescript.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeAutomaticOptionalChainCompletions#` instead.","scope":"resource"},"js/ts.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeCompletionsForImportStatements#` instead.","scope":"resource"},"typescript.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeCompletionsForImportStatements#` instead.","scope":"resource"},"js/ts.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.classMemberSnippets.enabled#` instead.","scope":"resource"},"typescript.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.classMemberSnippets.enabled#` instead.","scope":"resource"},"js/ts.suggest.objectLiteralMethodSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for methods in object literals.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.suggest.objectLiteralMethodSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for methods in object literals.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.objectLiteralMethodSnippets.enabled#` instead.","scope":"resource"}}},{"type":"object","title":"CodeLens","properties":{"js/ts.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.enabled#` instead.","scope":"window"},"typescript.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.enabled#` instead.","scope":"window"},"js/ts.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.showOnAllFunctions#` instead.","scope":"window"},"typescript.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.showOnAllFunctions#` instead.","scope":"window"},"js/ts.implementationsCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable implementations CodeLens in TypeScript files. This CodeLens shows the implementers of TypeScript interfaces.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable implementations CodeLens in TypeScript files. This CodeLens shows the implementers of TypeScript interfaces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.enabled#` instead.","scope":"window"},"js/ts.implementationsCodeLens.showOnInterfaceMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) on TypeScript interface methods.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.showOnInterfaceMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) on TypeScript interface methods.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.showOnInterfaceMethods#` instead.","scope":"window"},"js/ts.implementationsCodeLens.showOnAllClassMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable showing [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) above all TypeScript class methods instead of only on abstract methods.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.showOnAllClassMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable showing [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) above all TypeScript class methods instead of only on abstract methods.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.showOnAllClassMethods#` instead.","scope":"window"}}},{"type":"object","title":"Inlay Hints","properties":{"js/ts.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.enabled#` instead.","scope":"resource"},"typescript.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName#` instead.","scope":"resource"},"typescript.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName#` instead.","scope":"resource"},"js/ts.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName#` instead.","scope":"resource"},"typescript.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName#` instead.","scope":"resource"},"js/ts.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.propertyDeclarationTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.propertyDeclarationTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.functionLikeReturnTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.functionLikeReturnTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.enumMemberValues.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for member values in enum declarations:\n```typescript\n\nenum MyValue {\n\tA /* = 0 */;\n\tB /* = 1 */;\n}\n \n```","scope":"language-overridable","keywords":["TypeScript"]},"typescript.inlayHints.enumMemberValues.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for member values in enum declarations:\n```typescript\n\nenum MyValue {\n\tA /* = 0 */;\n\tB /* = 1 */;\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.enumMemberValues.enabled#` instead.","scope":"resource"}}},{"type":"object","title":"TS Server Advanced Settings","properties":{"js/ts.tsdk.promptToUseWorkspaceVersion":{"type":"boolean","default":false,"description":"Enables prompting of users to use the TypeScript version configured in the workspace for Intellisense.","scope":"window","keywords":["TypeScript"]},"typescript.enablePromptUseWorkspaceTsdk":{"type":"boolean","default":false,"description":"Enables prompting of users to use the TypeScript version configured in the workspace for Intellisense.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsdk.promptToUseWorkspaceVersion#` instead.","scope":"window"},"js/ts.tsserver.automaticTypeAcquisition.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable [automatic type acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition). Automatic type acquisition fetches `@types` packages from npm to improve IntelliSense for external libraries.","scope":"window","keywords":["TypeScript","usesOnlineServices"]},"typescript.disableAutomaticTypeAcquisition":{"type":"boolean","default":false,"markdownDescription":"Disables [automatic type acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition). Automatic type acquisition fetches `@types` packages from npm to improve IntelliSense for external libraries.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.automaticTypeAcquisition.enabled#` instead.","scope":"window","keywords":["usesOnlineServices"]},"js/ts.tsserver.node.path":{"type":"string","markdownDescription":"Run TS Server on a custom Node installation. This can be a path to a Node executable, or `node` if you want VS Code to detect a Node installation.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.nodePath":{"type":"string","markdownDescription":"Run TS Server on a custom Node installation. This can be a path to a Node executable, or `node` if you want VS Code to detect a Node installation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.node.path#` instead.","scope":"window"},"js/ts.tsserver.npm.path":{"type":"string","markdownDescription":"Specifies the path to the npm executable used for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","scope":"machine","keywords":["TypeScript"]},"typescript.npm":{"type":"string","markdownDescription":"Specifies the path to the npm executable used for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.npm.path#` instead.","scope":"machine"},"js/ts.tsserver.checkNpmIsInstalled":{"type":"boolean","default":true,"markdownDescription":"Check if npm is installed for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","scope":"window","keywords":["TypeScript"]},"typescript.check.npmIsInstalled":{"type":"boolean","default":true,"markdownDescription":"Check if npm is installed for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.checkNpmIsInstalled#` instead.","scope":"window"},"js/ts.tsserver.web.projectWideIntellisense.enabled":{"type":"boolean","default":true,"description":"Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.projectWideIntellisense.enabled":{"type":"boolean","default":true,"description":"Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.projectWideIntellisense.enabled#` instead.","scope":"window"},"js/ts.tsserver.web.projectWideIntellisense.suppressSemanticErrors":{"type":"boolean","default":false,"description":"Suppresses semantic errors on web even when project wide IntelliSense is enabled. This is always on when project wide IntelliSense is not enabled or available. See `#js/ts.tsserver.web.projectWideIntellisense.enabled#`","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.projectWideIntellisense.suppressSemanticErrors":{"type":"boolean","default":false,"description":"Suppresses semantic errors on web even when project wide IntelliSense is enabled. This is always on when project wide IntelliSense is not enabled or available. See `#js/ts.tsserver.web.projectWideIntellisense.enabled#`","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.projectWideIntellisense.suppressSemanticErrors#` instead.","scope":"window"},"js/ts.tsserver.web.typeAcquisition.enabled":{"type":"boolean","default":true,"description":"Enable/disable package acquisition on the web. This enables IntelliSense for imported packages. Requires `#js/ts.tsserver.web.projectWideIntellisense.enabled#`. Currently not supported for Safari.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.typeAcquisition.enabled":{"type":"boolean","default":true,"description":"Enable/disable package acquisition on the web. This enables IntelliSense for imported packages. Requires `#js/ts.tsserver.web.projectWideIntellisense.enabled#`. Currently not supported for Safari.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.typeAcquisition.enabled#` instead.","scope":"window"},"js/ts.tsserver.useSyntaxServer":{"type":"string","scope":"window","description":"Controls if TypeScript launches a dedicated server to more quickly handle syntax related operations, such as computing code folding.","default":"auto","enum":["always","never","auto"],"enumDescriptions":["Use a lighter weight syntax server to handle all IntelliSense operations. This disables project-wide features including auto-imports, cross-file completions, and go to definition for symbols in other files. Only use this for very large projects where performance is critical.","Don't use a dedicated syntax server. Use a single server to handle all IntelliSense operations.","Spawn both a full server and a lighter weight server dedicated to syntax operations. The syntax server is used to speed up syntax operations and provide IntelliSense while projects are loading."],"keywords":["TypeScript"]},"typescript.tsserver.useSyntaxServer":{"type":"string","scope":"window","description":"Controls if TypeScript launches a dedicated server to more quickly handle syntax related operations, such as computing code folding.","default":"auto","enum":["always","never","auto"],"enumDescriptions":["Use a lighter weight syntax server to handle all IntelliSense operations. This disables project-wide features including auto-imports, cross-file completions, and go to definition for symbols in other files. Only use this for very large projects where performance is critical.","Don't use a dedicated syntax server. Use a single server to handle all IntelliSense operations.","Spawn both a full server and a lighter weight server dedicated to syntax operations. The syntax server is used to speed up syntax operations and provide IntelliSense while projects are loading."],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.useSyntaxServer#` instead."},"js/ts.tsserver.maxMemory":{"type":"number","default":3072,"markdownDescription":"The maximum amount of memory (in MB) to allocate to the TypeScript server process. To use a memory limit greater than 4 GB, use `#js/ts.tsserver.node.path#` to run TS Server with a custom Node installation.","scope":"window","keywords":["TypeScript"]},"js/ts.tsserver.diagnosticDir":{"type":"string","markdownDescription":"Directory where TypeScript server writes Node diagnostic output by passing `--diagnostic-dir`.","scope":"machine","keywords":["TypeScript","diagnostic","memory"]},"typescript.tsserver.maxTsServerMemory":{"type":"number","default":3072,"markdownDescription":"The maximum amount of memory (in MB) to allocate to the TypeScript server process. To use a memory limit greater than 4 GB, use `#js/ts.tsserver.node.path#` to run TS Server with a custom Node installation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.maxMemory#` instead.","scope":"window"},"js/ts.tsserver.heapSnapshot":{"type":"number","default":0,"minimum":0,"markdownDescription":"Controls how many near-heap-limit snapshots TypeScript server writes by passing `--heapsnapshot-near-heap-limit`. Set to `0` to disable.","scope":"window","keywords":["TypeScript","memory","diagnostics"]},"js/ts.tsserver.heapProfile":{"type":"object","default":{"enabled":false},"markdownDescription":"Configures heap profiling for TypeScript server.","scope":"machine","properties":{"enabled":{"type":"boolean","default":false,"description":"Enable heap profiling for TypeScript server by passing `--heap-prof`."},"dir":{"type":"string","description":"Directory where TypeScript server writes heap profiles by passing `--heap-prof-dir`."},"interval":{"type":"number","minimum":1,"description":"Sampling interval in bytes for TypeScript server heap profiling by passing `--heap-prof-interval`."}},"keywords":["TypeScript","memory","heap","profile"]},"js/ts.tsserver.watchOptions":{"description":"Configure which watching strategies should be used to keep track of files and directories.","scope":"window","default":"vscode","oneOf":[{"type":"string","const":"vscode","description":"Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace."},{"type":"object","properties":{"watchFile":{"type":"string","description":"Strategy for how individual files are watched.","enum":["fixedChunkSizePolling","fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling","useFsEvents","useFsEventsOnParentDirectory"],"enumDescriptions":["Polls files in chunks at regular interval.","Check every file for changes several times a second at a fixed interval.","Check every file for changes several times a second, but use heuristics to check certain types of files less frequently than others.","Use a dynamic queue where less-frequently modified files will be checked less often.","Attempt to use the operating system/file system's native events for file changes.","Attempt to use the operating system/file system's native events to listen for changes on a file's containing directories. This can use fewer file watchers, but might be less accurate."],"default":"useFsEvents"},"watchDirectory":{"type":"string","description":"Strategy for how entire directory trees are watched under systems that lack recursive file-watching functionality.","enum":["fixedChunkSizePolling","fixedPollingInterval","dynamicPriorityPolling","useFsEvents"],"enumDescriptions":["Polls directories in chunks at regular interval.","Check every directory for changes several times a second at a fixed interval.","Use a dynamic queue where less-frequently modified directories will be checked less often.","Attempt to use the operating system/file system's native events for directory changes."],"default":"useFsEvents"},"fallbackPolling":{"type":"string","description":"When using file system events, this option specifies the polling strategy that gets used when the system runs out of native file watchers and/or doesn't support native file watchers.","enum":["fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling"],"enumDescriptions":["configuration.tsserver.watchOptions.fallbackPolling.fixedPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.priorityPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.dynamicPriorityPolling"]},"synchronousWatchDirectory":{"type":"boolean","description":"Disable deferred watching on directories. Deferred watching is useful when lots of file changes might occur at once (e.g. a change in node_modules from running npm install), but you might want to disable it with this flag for some less-common setups."}}}],"keywords":["TypeScript"]},"typescript.tsserver.watchOptions":{"description":"Configure which watching strategies should be used to keep track of files and directories.","scope":"window","default":"vscode","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.watchOptions#` instead.","oneOf":[{"type":"string","const":"vscode","description":"Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace."},{"type":"object","properties":{"watchFile":{"type":"string","description":"Strategy for how individual files are watched.","enum":["fixedChunkSizePolling","fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling","useFsEvents","useFsEventsOnParentDirectory"],"enumDescriptions":["Polls files in chunks at regular interval.","Check every file for changes several times a second at a fixed interval.","Check every file for changes several times a second, but use heuristics to check certain types of files less frequently than others.","Use a dynamic queue where less-frequently modified files will be checked less often.","Attempt to use the operating system/file system's native events for file changes.","Attempt to use the operating system/file system's native events to listen for changes on a file's containing directories. This can use fewer file watchers, but might be less accurate."],"default":"useFsEvents"},"watchDirectory":{"type":"string","description":"Strategy for how entire directory trees are watched under systems that lack recursive file-watching functionality.","enum":["fixedChunkSizePolling","fixedPollingInterval","dynamicPriorityPolling","useFsEvents"],"enumDescriptions":["Polls directories in chunks at regular interval.","Check every directory for changes several times a second at a fixed interval.","Use a dynamic queue where less-frequently modified directories will be checked less often.","Attempt to use the operating system/file system's native events for directory changes."],"default":"useFsEvents"},"fallbackPolling":{"type":"string","description":"When using file system events, this option specifies the polling strategy that gets used when the system runs out of native file watchers and/or doesn't support native file watchers.","enum":["fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling"],"enumDescriptions":["configuration.tsserver.watchOptions.fallbackPolling.fixedPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.priorityPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.dynamicPriorityPolling"]},"synchronousWatchDirectory":{"type":"boolean","description":"Disable deferred watching on directories. Deferred watching is useful when lots of file changes might occur at once (e.g. a change in node_modules from running npm install), but you might want to disable it with this flag for some less-common setups."}}}]},"js/ts.tsserver.tracing.enabled":{"type":"boolean","default":false,"description":"Enables tracing TS server performance to a directory. These trace files can be used to diagnose TS Server performance issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.enableTracing":{"type":"boolean","default":false,"description":"Enables tracing TS server performance to a directory. These trace files can be used to diagnose TS Server performance issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.tracing.enabled#` instead.","scope":"window"},"js/ts.tsserver.log":{"type":"string","enum":["off","terse","normal","verbose","requestTime"],"default":"off","description":"Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.log":{"type":"string","enum":["off","terse","normal","verbose","requestTime"],"default":"off","description":"Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.log#` instead.","scope":"window"},"js/ts.tsserver.pluginPaths":{"type":"array","items":{"type":"string","description":"Either an absolute or relative path. Relative path will be resolved against workspace folder(s)."},"default":[],"description":"Additional paths to discover TypeScript Language Service plugins.","scope":"machine","keywords":["TypeScript"]},"typescript.tsserver.pluginPaths":{"type":"array","items":{"type":"string","description":"Either an absolute or relative path. Relative path will be resolved against workspace folder(s)."},"default":[],"description":"Additional paths to discover TypeScript Language Service plugins.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.pluginPaths#` instead.","scope":"machine"}}}],"commands":[{"command":"typescript.reloadProjects","title":"Reload Project","category":"TypeScript"},{"command":"javascript.reloadProjects","title":"Reload Project","category":"JavaScript"},{"command":"typescript.selectTypeScriptVersion","title":"Select TypeScript Version...","category":"TypeScript"},{"command":"typescript.goToProjectConfig","title":"Go to Project Configuration (tsconfig)","category":"TypeScript"},{"command":"javascript.goToProjectConfig","title":"Go to Project Configuration (jsconfig / tsconfig)","category":"JavaScript"},{"command":"typescript.openTsServerLog","title":"Open TS Server log","category":"TypeScript"},{"command":"typescript.restartTsServer","title":"Restart TS Server","category":"TypeScript"},{"command":"typescript.findAllFileReferences","title":"Find File References","category":"TypeScript"},{"command":"typescript.goToSourceDefinition","title":"Go to Source Definition","category":"TypeScript"},{"command":"typescript.sortImports","title":"Sort Imports","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"javascript.sortImports","title":"Sort Imports","category":"JavaScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"typescript.removeUnusedImports","title":"Remove Unused Imports","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"javascript.removeUnusedImports","title":"Remove Unused Imports","category":"JavaScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"typescript.experimental.enableTsgo","title":"Use TypeScript Go (Experimental)","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && config.typescript-go.executablePath"},{"command":"typescript.experimental.disableTsgo","title":"Stop using TypeScript Go (Experimental)","category":"TypeScript","enablement":"config.js/ts.experimental.useTsgo || config.typescript.experimental.useTsgo"}],"menus":{"commandPalette":[{"command":"typescript.reloadProjects","when":"editorLangId == typescript && typescript.isManagedFile"},{"command":"typescript.reloadProjects","when":"editorLangId == typescriptreact && typescript.isManagedFile"},{"command":"javascript.reloadProjects","when":"editorLangId == javascript && typescript.isManagedFile"},{"command":"javascript.reloadProjects","when":"editorLangId == javascriptreact && typescript.isManagedFile"},{"command":"typescript.goToProjectConfig","when":"editorLangId == typescript && typescript.isManagedFile"},{"command":"typescript.goToProjectConfig","when":"editorLangId == typescriptreact && typescript.isManagedFile"},{"command":"javascript.goToProjectConfig","when":"editorLangId == javascript && typescript.isManagedFile"},{"command":"javascript.goToProjectConfig","when":"editorLangId == javascriptreact && typescript.isManagedFile"},{"command":"typescript.selectTypeScriptVersion","when":"typescript.isManagedFile"},{"command":"typescript.openTsServerLog","when":"typescript.isManagedFile"},{"command":"typescript.restartTsServer","when":"typescript.isManagedFile"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && typescript.isManagedFile"},{"command":"typescript.goToSourceDefinition","when":"tsSupportsSourceDefinition && typescript.isManagedFile"},{"command":"typescript.sortImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.sortImports\\b/ && editorLangId =~ /^typescript(react)?$/"},{"command":"javascript.sortImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.sortImports\\b/ && editorLangId =~ /^javascript(react)?$/"},{"command":"typescript.removeUnusedImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.removeUnusedImports\\b/ && editorLangId =~ /^typescript(react)?$/"},{"command":"javascript.removeUnusedImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.removeUnusedImports\\b/ && editorLangId =~ /^javascript(react)?$/"}],"editor/context":[{"command":"typescript.goToSourceDefinition","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && tsSupportsSourceDefinition && (resourceLangId == typescript || resourceLangId == typescriptreact || resourceLangId == javascript || resourceLangId == javascriptreact)","group":"navigation@1.41"}],"explorer/context":[{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescript","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescriptreact","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascript","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascriptreact","group":"4_search"}],"editor/title/context":[{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascript"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascriptreact"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescript"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescriptreact"}]},"breakpoints":[{"language":"typescript"},{"language":"typescriptreact"}],"taskDefinitions":[{"type":"typescript","required":["tsconfig"],"properties":{"tsconfig":{"type":"string","description":"The tsconfig file that defines the TS build."},"option":{"type":"string"}},"when":"shellExecutionSupported"}],"problemPatterns":[{"name":"tsc","regexp":"^([^\\s].*)[\\(:](\\d+)[,:](\\d+)(?:\\):\\s+|\\s+-\\s+)(error|warning|info)\\s+TS(\\d+)\\s*:\\s*(.*)$","file":1,"line":2,"column":3,"severity":4,"code":5,"message":6}],"problemMatchers":[{"name":"tsc","label":"TypeScript problems","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc"},{"name":"tsgo-watch","label":"TypeScript problems (watch mode)","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc","background":{"activeOnStart":true,"beginsPattern":{"regexp":"^build starting at .*$"},"endsPattern":{"regexp":"^build finished in .*$"}}},{"name":"tsc-watch","label":"TypeScript problems (watch mode)","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc","background":{"activeOnStart":true,"beginsPattern":{"regexp":"^\\s*(?:message TS6032:|\\[?\\D*.{1,2}[:.].{1,2}[:.].{1,2}\\D*(├\\D*\\d{1,2}\\D+┤)?(?:\\]| -)) (Starting compilation in watch mode|File change detected\\. Starting incremental compilation)\\.\\.\\."},"endsPattern":{"regexp":"^\\s*(?:message TS6042:|\\[?\\D*.{1,2}[:.].{1,2}[:.].{1,2}\\D*(├\\D*\\d{1,2}\\D+┤)?(?:\\]| -)) (?:Compilation complete\\.|Found \\d+ errors?\\.) Watching for file changes\\."}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["workspaceTrust","multiDocumentHighlightProvider","codeActionAI","codeActionRanges","editorHoverVerbosityLevel"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/typescript-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vb"},"manifest":{"name":"vb","displayName":"Visual Basic Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Visual Basic files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/asp.vb.net.tmbundle Syntaxes/ASP%20VB.net.plist ./syntaxes/asp-vb-net.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"vb","extensions":[".vb",".brs",".vbs",".bas",".vba"],"aliases":["Visual Basic","vb"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"vb","scopeName":"source.asp.vb.net","path":"./syntaxes/asp-vb-net.tmLanguage.json"}],"snippets":[{"language":"vb","path":"./snippets/vb.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/vb","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.xml"},"manifest":{"name":"xml","displayName":"XML Language Basics","description":"Provides syntax highlighting and bracket matching in XML files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"xml","extensions":[".xml",".xsd",".ascx",".atom",".axml",".axaml",".bpmn",".cpt",".csl",".csproj",".csproj.user",".dita",".ditamap",".dtd",".ent",".mod",".dtml",".fsproj",".fxml",".iml",".isml",".jmx",".launch",".menu",".mxml",".nuspec",".opml",".owl",".proj",".props",".pt",".publishsettings",".pubxml",".pubxml.user",".rbxlx",".rbxmx",".rdf",".rng",".rss",".shproj",".slnx",".storyboard",".svg",".targets",".tld",".tmx",".vbproj",".vbproj.user",".vcxproj",".vcxproj.filters",".wixproj",".wsdl",".wxi",".wxl",".wxs",".xaml",".xbl",".xib",".xlf",".xliff",".xpdl",".xul",".xoml"],"firstLine":"(\\<\\?xml.*)|(\\{if(t&&typeof t=="object"||typeof t=="function")for(let n of l(t))!d.call(s,n)&&n!==e&&S(s,n,{get:()=>t[n],enumerable:!(o=f(t,n))||o.enumerable});return s};var _=(s,t,e)=>(e=s!=null?E(T(s)):{},C(t||!s||!s.__esModule?S(e,"default",{value:s,enumerable:!0}):e,s));var P=_(require("fs"));var h=_(require("http")),c=class{constructor(t){this.handlerName=t;let e=process.env.VSCODE_GIT_IPC_HANDLE;if(!e)throw new Error("Missing VSCODE_GIT_IPC_HANDLE");this.ipcHandlePath=e}handlerName;ipcHandlePath;call(t){let e={socketPath:this.ipcHandlePath,path:`/${this.handlerName}`,method:"POST"};return new Promise((o,n)=>{let p=h.request(e,r=>{if(r.statusCode!==200)return n(new Error(`Bad status code: ${r.statusCode}`));let a=[];r.on("data",u=>a.push(u)),r.on("end",()=>o(JSON.parse(Buffer.concat(a).toString("utf8"))))});p.on("error",r=>n(r)),p.write(JSON.stringify(t)),p.end()})}};function i(s){console.error("Missing or invalid credentials."),console.error(s),process.exit(1)}function v(s){if(!process.env.VSCODE_GIT_ASKPASS_PIPE)return i("Missing pipe");if(!process.env.VSCODE_GIT_ASKPASS_TYPE)return i("Missing type");if(process.env.VSCODE_GIT_ASKPASS_TYPE!=="https"&&process.env.VSCODE_GIT_ASKPASS_TYPE!=="ssh")return i(`Invalid type: ${process.env.VSCODE_GIT_ASKPASS_TYPE}`);if(process.env.VSCODE_GIT_COMMAND==="fetch"&&process.env.VSCODE_GIT_FETCH_SILENT)return i("Skip silent fetch commands");let t=process.env.VSCODE_GIT_ASKPASS_PIPE,e=process.env.VSCODE_GIT_ASKPASS_TYPE;new c("askpass").call({askpassType:e,argv:s}).then(n=>{P.writeFileSync(t,n+` +`),setTimeout(()=>process.exit(0),0)}).catch(n=>i(n))}v(process.argv); +//# sourceMappingURL=askpass-main.js.map diff --git a/Extension/artifacts/panel-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh b/Extension/artifacts/panel-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh new file mode 100644 index 000000000..93a08c389 --- /dev/null +++ b/Extension/artifacts/panel-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh @@ -0,0 +1,5 @@ +#!/bin/sh +VSCODE_GIT_ASKPASS_PIPE=`mktemp` +ELECTRON_RUN_AS_NODE="1" VSCODE_GIT_ASKPASS_PIPE="$VSCODE_GIT_ASKPASS_PIPE" VSCODE_GIT_ASKPASS_TYPE="https" "$VSCODE_GIT_ASKPASS_NODE" "$VSCODE_GIT_ASKPASS_MAIN" $VSCODE_GIT_ASKPASS_EXTRA_ARGS $* +cat $VSCODE_GIT_ASKPASS_PIPE +rm $VSCODE_GIT_ASKPASS_PIPE diff --git a/Extension/artifacts/panel-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh b/Extension/artifacts/panel-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh new file mode 100644 index 000000000..8fb014e5c --- /dev/null +++ b/Extension/artifacts/panel-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh @@ -0,0 +1,2 @@ +#!/bin/sh +echo '' \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh b/Extension/artifacts/panel-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh new file mode 100644 index 000000000..dca45bc84 --- /dev/null +++ b/Extension/artifacts/panel-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh @@ -0,0 +1,5 @@ +#!/bin/sh +VSCODE_GIT_ASKPASS_PIPE=`mktemp` +ELECTRON_RUN_AS_NODE="1" VSCODE_GIT_ASKPASS_PIPE="$VSCODE_GIT_ASKPASS_PIPE" VSCODE_GIT_ASKPASS_TYPE="ssh" "$VSCODE_GIT_ASKPASS_NODE" "$VSCODE_GIT_ASKPASS_MAIN" $VSCODE_GIT_ASKPASS_EXTRA_ARGS $* +cat $VSCODE_GIT_ASKPASS_PIPE +rm $VSCODE_GIT_ASKPASS_PIPE diff --git a/Extension/artifacts/panel-host/user/User/settings.json b/Extension/artifacts/panel-host/user/User/settings.json new file mode 100644 index 000000000..e5d90f660 --- /dev/null +++ b/Extension/artifacts/panel-host/user/User/settings.json @@ -0,0 +1 @@ +{"security.workspace.trust.enabled":false,"workbench.startupEditor":"none","extensions.autoUpdate":"off","update.mode":"none","workbench.panel.defaultLocation":"bottom"} diff --git a/Extension/artifacts/panel-host/user/User/workspaceStorage/3052a5c0ad9aefbdde77ce0a0cdc626f/meta.json b/Extension/artifacts/panel-host/user/User/workspaceStorage/3052a5c0ad9aefbdde77ce0a0cdc626f/meta.json new file mode 100644 index 000000000..30fe7cdf8 --- /dev/null +++ b/Extension/artifacts/panel-host/user/User/workspaceStorage/3052a5c0ad9aefbdde77ce0a0cdc626f/meta.json @@ -0,0 +1,4 @@ +{ + "id": "3052a5c0ad9aefbdde77ce0a0cdc626f", + "name": "project2" +} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user/User/workspaceStorage/61495d554a25e6350ab15e45b50a1edd/meta.json b/Extension/artifacts/panel-host/user/User/workspaceStorage/61495d554a25e6350ab15e45b50a1edd/meta.json new file mode 100644 index 000000000..a5bfec66e --- /dev/null +++ b/Extension/artifacts/panel-host/user/User/workspaceStorage/61495d554a25e6350ab15e45b50a1edd/meta.json @@ -0,0 +1,4 @@ +{ + "id": "61495d554a25e6350ab15e45b50a1edd", + "name": "project" +} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user/WebStorage/1/CacheStorage/ed425c7b-3846-46e8-a284-ec440f96b073/index b/Extension/artifacts/panel-host/user/WebStorage/1/CacheStorage/ed425c7b-3846-46e8-a284-ec440f96b073/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/panel-host/user/WebStorage/1/CacheStorage/ed425c7b-3846-46e8-a284-ec440f96b073/index differ diff --git a/Extension/artifacts/panel-host/user/WebStorage/1/CacheStorage/ed425c7b-3846-46e8-a284-ec440f96b073/index-dir/the-real-index b/Extension/artifacts/panel-host/user/WebStorage/1/CacheStorage/ed425c7b-3846-46e8-a284-ec440f96b073/index-dir/the-real-index new file mode 100644 index 000000000..b68541c0d Binary files /dev/null and b/Extension/artifacts/panel-host/user/WebStorage/1/CacheStorage/ed425c7b-3846-46e8-a284-ec440f96b073/index-dir/the-real-index differ diff --git a/Extension/artifacts/panel-host/user/WebStorage/1/CacheStorage/index.txt b/Extension/artifacts/panel-host/user/WebStorage/1/CacheStorage/index.txt new file mode 100644 index 000000000..6d4335781 Binary files /dev/null and b/Extension/artifacts/panel-host/user/WebStorage/1/CacheStorage/index.txt differ diff --git a/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/59b6767e93a85a33_0 b/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/59b6767e93a85a33_0 new file mode 100644 index 000000000..e916297fe Binary files /dev/null and b/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/59b6767e93a85a33_0 differ diff --git a/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/a1fc5a00aa54504c_0 b/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/a1fc5a00aa54504c_0 new file mode 100644 index 000000000..b07b7c042 Binary files /dev/null and b/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/a1fc5a00aa54504c_0 differ diff --git a/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/da95c0f23032e34b_0 b/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/da95c0f23032e34b_0 new file mode 100644 index 000000000..7dcff8b69 Binary files /dev/null and b/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/da95c0f23032e34b_0 differ diff --git a/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/index b/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/index differ diff --git a/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/index-dir/the-real-index b/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/index-dir/the-real-index new file mode 100644 index 000000000..e8db95d0d Binary files /dev/null and b/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/86a4e951-c166-4aa9-b07a-5be76919cd49/index-dir/the-real-index differ diff --git a/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/index.txt b/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/index.txt new file mode 100644 index 000000000..6d3bfcf41 Binary files /dev/null and b/Extension/artifacts/panel-host/user/WebStorage/2/CacheStorage/index.txt differ diff --git a/Extension/artifacts/panel-host/user/WebStorage/QuotaManager b/Extension/artifacts/panel-host/user/WebStorage/QuotaManager new file mode 100644 index 000000000..c762939fe Binary files /dev/null and b/Extension/artifacts/panel-host/user/WebStorage/QuotaManager differ diff --git a/Extension/artifacts/panel-host/user/WebStorage/QuotaManager-journal b/Extension/artifacts/panel-host/user/WebStorage/QuotaManager-journal new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/languagepacks.json b/Extension/artifacts/panel-host/user/languagepacks.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/panel-host/user/languagepacks.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/agenthost.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/agenthost.log new file mode 100644 index 000000000..bbe846bf7 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061356/agenthost.log @@ -0,0 +1,45 @@ +2026-09-10 06:13:57.948 [info] Agent Host process started successfully +2026-09-10 06:13:57.981 [info] AgentService initialized +2026-09-10 06:13:57.987 [info] Registering agent provider: copilotcli +2026-09-10 06:13:57.990 [info] Registering agent provider: claude +2026-09-10 06:13:58.009 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:13:58.010 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:13:58.015 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:13:58.022 [info] [Claude] Models refreshed (merged). Count: 0, +2026-09-10 06:13:58.024 [info] [ProtocolServer] Initialize: clientId=80079ff9-c38e-422c-a80c-8bfa71a80dc1, protocolVersions=[1.0.0, 0.9.0, 0.8.0, 0.7.0, 0.6.0, 0.5.2, 0.5.1] +2026-09-10 06:13:58.053 [info] [AgentService] showExternalSessions changed 'none' -> 'recent'; queueing session list reconciliation +2026-09-10 06:13:58.084 [info] [CommandAutoApprover] Tree-sitter initialized (bash=available, powershell=available) +2026-09-10 06:13:58.101 [info] [Copilot] Listing chats to migrate... +2026-09-10 06:13:58.102 [info] [Copilot] Starting CopilotClient... +2026-09-10 06:13:58.103 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-10 06:13:58.106 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-10 06:13:58.186 [info] [Claude] SDK not downloaded yet; deferring the migratable chat list +2026-09-10 06:13:58.323 [info] [Claude] Auth token unchanged +2026-09-10 06:13:58.417 [info] [WebSocketProtocol] Server listening on socket \\.\pipe\vscode-agent-host-ff6b9e55db65722126acea7b88459f23c02eb8c169d9cc0032f7e65db48e4f5d-asrk-npdRFP14HvORxlk_g +2026-09-10 06:13:59.180 [info] [Copilot] CopilotClient started successfully +2026-09-10 06:13:59.180 [info] [Copilot] Restarting CopilotClient (CAPI proxy configuration changed (proxy (none) -> http://127.0.0.1:7890)) +2026-09-10 06:13:59.187 [warning] [AgentService] initial provider catalog for copilotcli was unavailable; retrying before accessing sessions Request session.list failed with message: JSON-RPC server handle disposed +2026-09-10 06:13:59.187 [info] [Copilot] Listing chats to migrate... +2026-09-10 06:13:59.187 [warning] [AgentService] initial provider catalog for copilotcli was unavailable; retrying before accessing sessions Request session.list failed with message: JSON-RPC server handle disposed +2026-09-10 06:13:59.187 [warning] [AgentService] provider initialization failed before Automations could refresh for copilotcli Request session.list failed with message: JSON-RPC server handle disposed +2026-09-10 06:13:59.187 [warning] [AgentService] Failed to restore Agent-Merge-enabled sessions Request session.list failed with message: JSON-RPC server handle disposed +2026-09-10 06:13:59.233 [info] [Copilot] Starting CopilotClient... +2026-09-10 06:13:59.233 [info] [Copilot] Resolved CAPI proxy and forwarded HTTP_PROXY/HTTPS_PROXY to Copilot SDK +2026-09-10 06:13:59.233 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-10 06:13:59.234 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-10 06:13:59.991 [info] [Copilot] CopilotClient started successfully +2026-09-10 06:14:00.009 [info] [Copilot] Listed 0 SDK session(s) for chats to migrate +2026-09-10 06:14:00.009 [info] [Copilot] Found 0 legacy sessions +2026-09-10 06:14:00.014 [info] [Copilot] Listing discoverable chats... +2026-09-10 06:14:00.015 [info] [AgentService] listSessions computed 0 of 0 session(s) for mode 'last30Days' in 1961ms (0 state-manager fallback) +2026-09-10 06:14:00.015 [info] [AgentService] External session reconciliation done in 1961ms (mode: 'recent', previous: 'none'): 0 published, 0 retracted, 0 visible +2026-09-10 06:14:00.015 [info] [Copilot] Listed 0 SDK session(s) for discoverable chats +2026-09-10 06:14:00.016 [info] [AgentService] listSessions computed 0 of 0 session(s) for mode 'recent' in 1695ms (0 state-manager fallback) +2026-09-10 06:14:00.016 [info] [AgentService] pruned 0 stale external session row(s) older than 30 days +2026-09-10 06:14:00.017 [info] [Copilot] Chat discovery: 0 SDK session(s) -> 0 external, 0 adoptable legacy extension-host, 0 suppressed adoptable legacy extension-host, 0 suppressed archived legacy extension-host, 0 already known to Agent Host, 0 without a working directory, 0 with unsupported or missing client name, 0 outside the import window, 0 without repository metadata, 0 failed to classify (adopt legacy extension-host chats: false) +2026-09-10 06:14:00.017 [info] [Claude] SDK not downloaded yet; deferring chat discovery +2026-09-10 06:14:01.920 [info] [ProtocolServer] Client disconnected: 80079ff9-c38e-422c-a80c-8bfa71a80dc1, subscriptions=1 +2026-09-10 06:14:01.929 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:14:01.930 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:14:01.934 [info] AgentService: shutting down all providers... +2026-09-10 06:14:01.934 [info] [Copilot] Shutting down... diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/editSessions.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/editSessions.log new file mode 100644 index 000000000..5b6761575 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061356/editSessions.log @@ -0,0 +1 @@ +2026-09-10 06:13:58.993 [info] Prompting to enable cloud changes, has application previously launched from Continue On flow: false diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/main.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/main.log new file mode 100644 index 000000000..bedf8c82a --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061356/main.log @@ -0,0 +1,13 @@ +2026-09-10 06:13:56.696 [info] StorageMainService: creating application shared storage +2026-09-10 06:13:56.696 [info] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +2026-09-10 06:13:56.696 [info] [shared storage] Initializing fallback application storage (path: in-memory) +2026-09-10 06:13:56.696 [error] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +2026-09-10 06:13:56.706 [info] [shared storage] Fallback application storage initialized with 3 items +2026-09-10 06:13:57.515 [info] update#disable - updates are disabled by user preference +2026-09-10 06:13:57.518 [info] update#setState disabled +2026-09-10 06:13:57.538 [info] AgentHostProcessManager: agent host started +2026-09-10 06:13:58.020 [error] [AgentHost:stderr] (node:9732) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +2026-09-10 06:14:01.968 [info] Extension host with pid 18136 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/mcpGateway.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/mcpGateway.log new file mode 100644 index 000000000..df1ed67d6 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061356/mcpGateway.log @@ -0,0 +1 @@ +2026-09-10 06:13:56.700 [info] [McpGatewayService] Initialized diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/network-shared.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/network-shared.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/remoteTunnelService.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/remoteTunnelService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/sharedprocess.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/sharedprocess.log new file mode 100644 index 000000000..a39f833b2 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061356/sharedprocess.log @@ -0,0 +1,2 @@ +2026-09-10 06:13:58.172 [info] Started initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/panel-host/extensions +2026-09-10 06:13:58.249 [info] Completed initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/panel-host/extensions diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/telemetry.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/telemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/terminal.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/terminal.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/tunnelHostService.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/tunnelHostService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/userDataSync.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/userDataSync.log new file mode 100644 index 000000000..a41b2a599 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061356/userDataSync.log @@ -0,0 +1,2 @@ +2026-09-10 06:13:58.152 [info] [AutoSync] Using settings sync service https://vscode-sync.trafficmanager.net/ +2026-09-10 06:13:58.153 [info] [AutoSync] Disabled. diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/extHostTelemetry.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/extHostTelemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/exthost.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/exthost.log new file mode 100644 index 000000000..6d04b6ad2 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/exthost.log @@ -0,0 +1,39 @@ +2026-09-10 06:13:58.625 [info] Extension host with pid 18136 started +2026-09-10 06:13:58.625 [info] Skipping acquiring lock for i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\user\User\workspaceStorage\61495d554a25e6350ab15e45b50a1edd. +2026-09-10 06:13:58.729 [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onLanguage' +2026-09-10 06:13:58.755 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github' +2026-09-10 06:13:58.861 [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.git +2026-09-10 06:13:58.906 [info] ExtensionService#_doActivateExtension vscode.git, startup: true, activationEvent: '*' +2026-09-10 06:13:58.969 [info] ExtensionService#_doActivateExtension vscode.github, startup: true, activationEvent: '*' +2026-09-10 06:13:59.034 [info] ExtensionService#_doActivateExtension hornet.hornet-cpp, startup: true, activationEvent: 'workspaceContains:**/CMakeLists.txt,**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}' +2026-09-10 06:13:59.296 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.openRepositoryInParentFolders', provide the URI of a resource or 'null' for any resource. +2026-09-10 06:13:59.296 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.showProgress', provide the URI of a resource or 'null' for any resource. +2026-09-10 06:13:59.318 [info] Eager extensions activated +2026-09-10 06:13:59.336 [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 06:13:59.339 [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 06:14:00.452 [info] ExtensionService#_doActivateExtension vscode.configuration-editing, startup: false, activationEvent: 'onLanguage:jsonc' +2026-09-10 06:14:00.460 [info] ExtensionService#_doActivateExtension vscode.json-language-features, startup: false, activationEvent: 'onLanguage:jsonc' +2026-09-10 06:14:00.534 [info] ExtensionService#_doActivateExtension vscode.typescript-language-features, startup: false, activationEvent: 'onLanguage:jsonc' +2026-09-10 06:14:01.866 [warning] hornet.hornet-cpp created a webview without a content security policy: https://aka.ms/vscode-webview-missing-csp +2026-09-10 06:14:01.890 [info] Extension host terminating: received terminate message from renderer +2026-09-10 06:14:01.955 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14046:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 06:14:01.965 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14046:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 06:14:01.967 [info] Extension host with pid 18136 exiting with code 0 diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/output_logging_20260910T061358/1-Hornet CC++.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/output_logging_20260910T061358/1-Hornet CC++.log new file mode 100644 index 000000000..d9207d799 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/output_logging_20260910T061358/1-Hornet CC++.log @@ -0,0 +1,174 @@ +Hornet C/C++ 0.1.5 (i:\BackFile\code\hornet-cpptools\Extension) +[2026-09-10T13:13:59.067Z] [project] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:13:59.087Z] [project] [Compiler] No compilation database: inferred browsing commands for 2 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:13:59.088Z] [project] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:13:59.144Z] [project] [Compiler] I[06:13:59.144] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:13:59.145] Features: windows+grpc +I[06:13:59.145] PID: 15156 +I[06:13:59.145] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project +I[06:13:59.145] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:13:59.145] argv[1]: --background-index +I[06:13:59.145] argv[2]: --enable-config=0 +I[06:13:59.145] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\.vscode\hornet\compile-db\fallback +I[06:13:59.145] argv[4]: -j=10 +[2026-09-10T13:13:59.145Z] [project] [Compiler] I[06:13:59.145] Starting LSP over stdin/stdout +I[06:13:59.145] <-- initialize(0) +[2026-09-10T13:13:59.164Z] [project] [Compiler] I[06:13:59.165] --> reply:initialize(0) 19 ms +[2026-09-10T13:13:59.165Z] [project] [Compiler] Compiler ready +[2026-09-10T13:13:59.171Z] [project] [Compiler] I[06:13:59.166] <-- initialized +[2026-09-10T13:13:59.172Z] [project] [Compiler] I[06:13:59.173] <-- textDocument/didOpen +[2026-09-10T13:13:59.172Z] [project] [Compiler] I[06:13:59.173] <-- textDocument/documentSymbol(1) +[2026-09-10T13:13:59.172Z] [project] [Compiler] I[06:13:59.173] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\.vscode\hornet\compile-db\fallback\compile_commands.json +[2026-09-10T13:13:59.172Z] [project] [Compiler] I[06:13:59.174] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project\\a.cpp" +I[06:13:59.174] --> window/workDoneProgress/create(0) +I[06:13:59.174] Enqueueing 2 commands for indexing +[2026-09-10T13:13:59.174Z] [project] [Compiler] I[06:13:59.175] <-- reply(0) +I[06:13:59.175] --> $/progress +I[06:13:59.175] --> $/progress +[2026-09-10T13:13:59.183Z] [project] [Compiler] I[06:13:59.184] --> $/progress +I[06:13:59.184] --> $/progress +I[06:13:59.184] --> $/progress +I[06:13:59.184] --> $/progress +[2026-09-10T13:13:59.197Z] [project] [Compiler] I[06:13:59.198] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\a.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T13:13:59.197Z] [project] [Compiler] I[06:13:59.198] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\b.cpp (2 symbols, 3 refs, 1 files) +[2026-09-10T13:13:59.205Z] [project] [Compiler] I[06:13:59.201] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\a.cpp version 0 in 0.01 seconds +I[06:13:59.206] --> $/progress +[2026-09-10T13:13:59.206Z] [project] [Compiler] I[06:13:59.207] --> $/progress +[2026-09-10T13:13:59.225Z] [project] [Compiler] I[06:13:59.226] --> textDocument/publishDiagnostics +[2026-09-10T13:13:59.226Z] [project] [Compiler] I[06:13:59.226] --> reply:textDocument/documentSymbol(1) 53 ms +[2026-09-10T13:13:59.227Z] [project] [Compiler] I[06:13:59.228] <-- textDocument/documentSymbol(2) +[2026-09-10T13:13:59.227Z] [project] [Compiler] I[06:13:59.228] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:13:59.373Z] [project] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:13:59.376Z] [project] [Compiler] I[06:13:59.377] <-- shutdown(3) +I[06:13:59.377] --> reply:shutdown(3) 0 ms +[2026-09-10T13:13:59.383Z] [project] [Compiler] I[06:13:59.378] <-- exit +I[06:13:59.378] LSP finished, exiting with status 0 +[2026-09-10T13:13:59.394Z] [project] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:13:59.395Z] [project] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:13:59.430Z] [project] [Compiler] Index build: Error: Index build interrupted by a language-service restart. +[2026-09-10T13:13:59.460Z] [project] [Compiler] I[06:13:59.460] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:13:59.461] Features: windows+grpc +I[06:13:59.461] PID: 28268 +I[06:13:59.461] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project +I[06:13:59.461] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:13:59.461] argv[1]: --background-index +I[06:13:59.461] argv[2]: --enable-config=0 +I[06:13:59.461] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\.vscode\hornet\compile-db\fallback +I[06:13:59.461] argv[4]: -j=10 +[2026-09-10T13:13:59.460Z] [project] [Compiler] I[06:13:59.461] Starting LSP over stdin/stdout +I[06:13:59.461] <-- initialize(0) +[2026-09-10T13:13:59.490Z] [project] [Compiler] I[06:13:59.491] --> reply:initialize(0) 29 ms +[2026-09-10T13:13:59.491Z] [project] [Compiler] Compiler ready +[2026-09-10T13:13:59.495Z] [project] [Compiler] I[06:13:59.492] <-- initialized +[2026-09-10T13:13:59.496Z] [project] [Compiler] I[06:13:59.497] <-- textDocument/didOpen +[2026-09-10T13:13:59.496Z] [project] [Compiler] I[06:13:59.498] <-- textDocument/documentSymbol(1) +[2026-09-10T13:13:59.497Z] [project] [Compiler] I[06:13:59.499] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:13:59.499] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project\\a.cpp" +[2026-09-10T13:13:59.498Z] [project] [Compiler] I[06:13:59.499] --> window/workDoneProgress/create(0) +I[06:13:59.499] Enqueueing 3 commands for indexing +[2026-09-10T13:13:59.498Z] [project] [Compiler] I[06:13:59.500] <-- reply(0) +I[06:13:59.500] --> $/progress +I[06:13:59.500] --> $/progress +[2026-09-10T13:13:59.507Z] [project] [Compiler] I[06:13:59.508] --> $/progress +I[06:13:59.508] --> $/progress +I[06:13:59.508] --> $/progress +[2026-09-10T13:13:59.513Z] [project] [Compiler] I[06:13:59.514] <-- workspace/didChangeWatchedFiles +[2026-09-10T13:13:59.523Z] [project] [Compiler] I[06:13:59.524] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\new.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T13:13:59.525Z] [project] [Compiler] I[06:13:59.526] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\a.cpp version 0 in 0.01 seconds +[2026-09-10T13:13:59.532Z] [project] [Compiler] I[06:13:59.533] --> $/progress +[2026-09-10T13:13:59.537Z] [project] [Compiler] I[06:13:59.538] <-- workspace/didChangeWatchedFiles +[2026-09-10T13:13:59.551Z] [project] [Compiler] I[06:13:59.552] --> textDocument/publishDiagnostics +[2026-09-10T13:13:59.552Z] [project] [Compiler] I[06:13:59.552] --> reply:textDocument/documentSymbol(1) 54 ms +[2026-09-10T13:13:59.553Z] [project] [Compiler] I[06:13:59.555] <-- textDocument/documentSymbol(2) +[2026-09-10T13:13:59.554Z] [project] [Compiler] I[06:13:59.555] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:14:01.145Z] [project] [Compiler] Index ready: 3 source files (cached for next startup) +[2026-09-10T13:14:01.174Z] [project] [Compiler] I[06:14:01.175] <-- workspace/symbol(3) +[2026-09-10T13:14:01.175Z] [project] [Compiler] I[06:14:01.176] --> reply:workspace/symbol(3) 0 ms +[2026-09-10T13:14:01.212Z] [project] [Compiler] I[06:14:01.213] <-- textDocument/didChange +[2026-09-10T13:14:01.277Z] [project] [Compiler] I[06:14:01.273] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\a.cpp version 1 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project\\a.cpp" +[2026-09-10T13:14:01.289Z] [project] [Compiler] I[06:14:01.290] <-- textDocument/documentSymbol(4) +[2026-09-10T13:14:01.289Z] [project] [Compiler] I[06:14:01.290] --> reply:textDocument/documentSymbol(4) 0 ms +[2026-09-10T13:14:01.335Z] [project] [Compiler] I[06:14:01.336] <-- textDocument/prepareCallHierarchy(5) +[2026-09-10T13:14:01.335Z] [project] [Compiler] I[06:14:01.336] --> reply:textDocument/prepareCallHierarchy(5) 0 ms +[2026-09-10T13:14:01.479Z] [project] [Compiler] I[06:14:01.480] <-- textDocument/didOpen +[2026-09-10T13:14:01.480Z] [project] [Compiler] I[06:14:01.481] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\b.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project\\b.cpp" +I[06:14:01.481] <-- textDocument/didOpen +[2026-09-10T13:14:01.480Z] [project] [Compiler] I[06:14:01.481] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\new.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project\\new.cpp" +I[06:14:01.481] <-- textDocument/documentSymbol(6) +[2026-09-10T13:14:01.480Z] [project] [Compiler] I[06:14:01.481] <-- textDocument/documentSymbol(7) +[2026-09-10T13:14:01.499Z] [project] [Compiler] I[06:14:01.500] <-- textDocument/inlayHint(8) +I[06:14:01.500] --> reply:textDocument/inlayHint(8) 0 ms +[2026-09-10T13:14:01.500Z] [project] [Compiler] I[06:14:01.501] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\b.cpp version 0 in 0.01 seconds +I[06:14:01.501] Built preamble of size 266884 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\new.cpp version 0 in 0.01 seconds +[2026-09-10T13:14:01.525Z] [project] [Compiler] I[06:14:01.526] --> textDocument/publishDiagnostics +I[06:14:01.526] --> textDocument/publishDiagnostics +I[06:14:01.526] --> reply:textDocument/documentSymbol(7) 44 ms +I[06:14:01.526] --> reply:textDocument/documentSymbol(6) 45 ms +[2026-09-10T13:14:01.530Z] [project] [Compiler] I[06:14:01.531] <-- textDocument/documentSymbol(9) +I[06:14:01.531] --> reply:textDocument/documentSymbol(9) 0 ms +I[06:14:01.531] <-- textDocument/documentSymbol(10) +I[06:14:01.531] --> reply:textDocument/documentSymbol(10) 0 ms +[2026-09-10T13:14:01.531Z] [project] [Compiler] I[06:14:01.532] <-- textDocument/references(11) +[2026-09-10T13:14:01.531Z] [project] [Compiler] I[06:14:01.532] --> reply:textDocument/references(11) 0 ms +[2026-09-10T13:14:01.531Z] [project] [Compiler] I[06:14:01.532] <-- callHierarchy/outgoingCalls(12) +[2026-09-10T13:14:01.532Z] [project] [Compiler] I[06:14:01.533] --> reply:callHierarchy/outgoingCalls(12) 0 ms +[2026-09-10T13:14:01.533Z] [project] [Compiler] I[06:14:01.534] <-- callHierarchy/incomingCalls(13) +[2026-09-10T13:14:01.533Z] [project] [Compiler] I[06:14:01.534] --> reply:callHierarchy/incomingCalls(13) 0 ms +[2026-09-10T13:14:01.535Z] [project] [Compiler] I[06:14:01.537] <-- textDocument/documentSymbol(14) +[2026-09-10T13:14:01.536Z] [project] [Compiler] I[06:14:01.537] --> reply:textDocument/documentSymbol(14) 0 ms +[2026-09-10T13:14:01.537Z] [project] [Compiler] I[06:14:01.538] <-- textDocument/references(15) +[2026-09-10T13:14:01.537Z] [project] [Compiler] I[06:14:01.538] --> reply:textDocument/references(15) 0 ms +[2026-09-10T13:14:01.538Z] [project] [Compiler] I[06:14:01.539] <-- callHierarchy/incomingCalls(16) +[2026-09-10T13:14:01.539Z] [project] [Compiler] I[06:14:01.540] --> reply:callHierarchy/incomingCalls(16) 0 ms +[2026-09-10T13:14:01.541Z] [project] [Compiler] I[06:14:01.543] <-- textDocument/documentSymbol(17) +[2026-09-10T13:14:01.542Z] [project] [Compiler] I[06:14:01.543] --> reply:textDocument/documentSymbol(17) 0 ms +[2026-09-10T13:14:01.542Z] [project] [Compiler] I[06:14:01.543] <-- callHierarchy/outgoingCalls(18) +[2026-09-10T13:14:01.542Z] [project] [Compiler] I[06:14:01.543] --> reply:callHierarchy/outgoingCalls(18) 0 ms +[2026-09-10T13:14:01.654Z] [project] [Compiler] I[06:14:01.655] <-- shutdown(19) +I[06:14:01.655] --> reply:shutdown(19) 0 ms +[2026-09-10T13:14:01.655Z] [project] [Compiler] I[06:14:01.656] <-- exit +I[06:14:01.656] LSP finished, exiting with status 0 +[2026-09-10T13:14:01.678Z] [project] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:14:01.680Z] [project] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:14:01.749Z] [project] [Compiler] I[06:14:01.749] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:14:01.750] Features: windows+grpc +I[06:14:01.750] PID: 20552 +I[06:14:01.750] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project +I[06:14:01.750] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:14:01.750] argv[1]: --background-index +I[06:14:01.750] argv[2]: --enable-config=0 +I[06:14:01.750] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\.vscode\hornet\compile-db\fallback +I[06:14:01.750] argv[4]: -j=10 +[2026-09-10T13:14:01.750Z] [project] [Compiler] I[06:14:01.751] Starting LSP over stdin/stdout +I[06:14:01.751] <-- initialize(0) +[2026-09-10T13:14:01.769Z] [project] [Compiler] I[06:14:01.770] --> reply:initialize(0) 18 ms +[2026-09-10T13:14:01.769Z] [project] [Compiler] Compiler ready +[2026-09-10T13:14:01.776Z] [project] [Compiler] I[06:14:01.771] <-- initialized +[2026-09-10T13:14:01.776Z] [project] [Compiler] I[06:14:01.777] <-- textDocument/didOpen +[2026-09-10T13:14:01.779Z] [project] [Compiler] I[06:14:01.778] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:14:01.778] --> window/workDoneProgress/create(0) +I[06:14:01.778] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\a.cpp version 1 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project\\a.cpp" +I[06:14:01.778] Enqueueing 3 commands for indexing +[2026-09-10T13:14:01.785Z] [project] [Compiler] I[06:14:01.782] <-- textDocument/documentSymbol(1) +[2026-09-10T13:14:01.786Z] [project] [Compiler] I[06:14:01.787] <-- reply(0) +I[06:14:01.787] --> $/progress +I[06:14:01.787] --> $/progress +[2026-09-10T13:14:01.805Z] [project] [Compiler] I[06:14:01.804] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project\a.cpp version 1 in 0.01 seconds +[2026-09-10T13:14:01.825Z] [project] [Compiler] I[06:14:01.826] --> textDocument/publishDiagnostics +I[06:14:01.826] --> reply:textDocument/documentSymbol(1) 44 ms +[2026-09-10T13:14:01.837Z] [project] [Compiler] I[06:14:01.838] <-- textDocument/documentSymbol(2) +[2026-09-10T13:14:01.837Z] [project] [Compiler] I[06:14:01.838] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:14:01.866Z] [project] [Compiler] I[06:14:01.867] <-- textDocument/inlayHint(3) +I[06:14:01.867] --> reply:textDocument/inlayHint(3) 0 ms diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/vscode.git/Git.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/vscode.git/Git.log new file mode 100644 index 000000000..040068749 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/vscode.git/Git.log @@ -0,0 +1,18 @@ +2026-09-10 06:13:59.027 [info] [main] Log level: Info +2026-09-10 06:13:59.027 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 06:13:59.027 [info] [main] Validating found git in: "C:\Program Files (x86)\Git\cmd\git.exe" +2026-09-10 06:13:59.027 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 06:13:59.027 [info] [main] Validating found git in: "C:\Users\LiXueqiang\AppData\Local\Programs\Git\cmd\git.exe" +2026-09-10 06:13:59.129 [info] [main] Validating found git in: "D:\Software\Git\cmd\git.exe" +2026-09-10 06:13:59.195 [info] [askpassManager] Creating content-addressed askpass scripts at i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\user\User\globalStorage\vscode.git\askpass\70789581cae28aa7 +2026-09-10 06:13:59.292 [info] [askpassManager] Successfully created content-addressed askpass scripts +2026-09-10 06:13:59.315 [info] [main] Using git "2.53.0.windows.1" from "D:\Software\Git\cmd\git.exe" +2026-09-10 06:13:59.315 [info] [Model][doInitialScan] Initial repository scan started +2026-09-10 06:13:59.432 [info] > git rev-parse --show-toplevel [104ms] +2026-09-10 06:13:59.517 [info] > git rev-parse --show-toplevel [76ms] +2026-09-10 06:13:59.520 [info] [Model][doInitialScan] Initial repository scan completed - repositories (0), closed repositories (0), parent repositories (1), unsafe repositories (0) +2026-09-10 06:14:00.242 [info] > git rev-parse --show-toplevel [65ms] +2026-09-10 06:14:00.400 [info] > git rev-parse --show-toplevel [71ms] +2026-09-10 06:14:00.720 [info] > git rev-parse --show-toplevel [125ms] +2026-09-10 06:14:00.827 [info] > git rev-parse --show-toplevel [83ms] +2026-09-10 06:14:01.351 [info] > git rev-parse --show-toplevel [65ms] diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/vscode.github-authentication/GitHub Authentication.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/vscode.github-authentication/GitHub Authentication.log new file mode 100644 index 000000000..d22ec5b92 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/vscode.github-authentication/GitHub Authentication.log @@ -0,0 +1,11 @@ +2026-09-10 06:13:58.858 [info] Reading sessions from keychain... +2026-09-10 06:13:58.858 [info] Getting sessions for all scopes... +2026-09-10 06:13:58.870 [info] Got 0 sessions for all scopes... +2026-09-10 06:13:58.870 [info] Getting sessions for all scopes... +2026-09-10 06:13:58.870 [info] Got 0 sessions for all scopes... +2026-09-10 06:13:58.870 [info] Getting sessions for all scopes... +2026-09-10 06:13:58.870 [info] Got 0 sessions for all scopes... +2026-09-10 06:13:58.906 [info] Getting sessions for all scopes... +2026-09-10 06:13:58.906 [info] Got 0 sessions for all scopes... +2026-09-10 06:14:00.814 [info] Getting sessions for all scopes... +2026-09-10 06:14:00.814 [info] Got 0 sessions for all scopes... diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/vscode.github/GitHub.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/vscode.github/GitHub.log new file mode 100644 index 000000000..fced41c89 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/vscode.github/GitHub.log @@ -0,0 +1 @@ +2026-09-10 06:13:59.028 [info] Log level: Info diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/vscode.json-language-features/JSON Language Server.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/exthost/vscode.json-language-features/JSON Language Server.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/network.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/network.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/notebook.rendering.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/notebook.rendering.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/output_20260910T061358/agentSessionsOutput.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/output_20260910T061358/agentSessionsOutput.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/output_20260910T061358/tasks.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/output_20260910T061358/tasks.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/renderer.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/renderer.log new file mode 100644 index 000000000..c52161cf8 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/renderer.log @@ -0,0 +1,74 @@ +2026-09-10 06:13:57.534 [info] [AgentHost:renderer] Acquiring MessagePort to agent host... +2026-09-10 06:13:57.707 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:13:57.898 [info] [AgentHost:renderer] MessagePort acquired, creating client... +2026-09-10 06:13:57.938 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NzJjOTI0ZjEtM2FhYS00N2I5LWI1YTQtNjIxMmE5OGIzMmIz" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:13:58.000 [info] Started initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/panel-host/extensions +2026-09-10 06:13:58.026 [info] Started local extension host with pid 18136. +2026-09-10 06:13:58.045 [info] [AgentHost:renderer] Protocol connection established; clientId=80079ff9-c38e-422c-a80c-8bfa71a80dc1 +2026-09-10 06:13:58.267 [info] Completed initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/panel-host/extensions +2026-09-10 06:13:58.283 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-10 06:13:58.321 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.347 [info] [AgentHost] Clearing authentication for resource: https://api.github.com +2026-09-10 06:13:58.349 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.382 [info] [AgentHost] Clearing authentication for resource: https://api.github.com/repos +2026-09-10 06:13:58.383 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.384 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.429 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.431 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.432 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.432 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.433 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.434 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.435 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.436 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.437 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.438 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.439 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.439 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.440 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.440 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.441 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.442 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.442 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.443 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.443 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.444 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.444 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.445 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.445 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.446 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.446 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.447 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.447 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.447 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.448 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.448 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.449 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.449 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.450 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.450 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.452 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.454 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.455 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.455 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.456 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.456 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.457 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.457 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.457 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.458 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.465 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.466 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.467 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:13:58.468 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:13:58.480 [info] Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +2026-09-10 06:13:58.521 [error] [hornet.hornet-cpp]: property `id` is mandatory and must be of type `string` with non-empty value. Only alphanumeric characters, '_', and '-' are allowed. +2026-09-10 06:13:58.524 [warning] [hornet.hornet-cpp]: View container 'hornet-cpp.graphPanel' does not exist and all views registered to it will be added to 'Explorer'. +2026-09-10 06:13:58.641 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NzJjOTI0ZjEtM2FhYS00N2I5LWI1YTQtNjIxMmE5OGIzMmIz" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:13:58.859 [info] Settings Sync: Account status changed from uninitialized to unavailable +2026-09-10 06:14:00.644 [error] (node:18136) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) +2026-09-10 06:14:01.480 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NzJjOTI0ZjEtM2FhYS00N2I5LWI1YTQtNjIxMmE5OGIzMmIz" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:14:01.889 [error] Error: command 'workbench.view.extension.hornet-cpp.graphPanel' not found + at qgt._tryExecuteCommand (vscode-file://vscode-app/d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/workbench.desktop.main.js:2003:4832) + at qgt.executeCommand (vscode-file://vscode-app/d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/workbench.desktop.main.js:2003:4732) diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/textModelChanges.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/textModelChanges.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/views.log b/Extension/artifacts/panel-host/user/logs/20260910T061356/window1/views.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/agenthost.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/agenthost.log new file mode 100644 index 000000000..87504469c --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061503/agenthost.log @@ -0,0 +1,35 @@ +2026-09-10 06:15:04.735 [info] Agent Host process started successfully +2026-09-10 06:15:04.756 [info] AgentService initialized +2026-09-10 06:15:04.761 [info] Registering agent provider: copilotcli +2026-09-10 06:15:04.763 [info] Registering agent provider: claude +2026-09-10 06:15:04.773 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:15:04.779 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:15:04.790 [info] [Claude] Models refreshed (merged). Count: 0, +2026-09-10 06:15:04.815 [info] [CommandAutoApprover] Tree-sitter initialized (bash=available, powershell=available) +2026-09-10 06:15:04.816 [info] [Claude] SDK not downloaded yet; deferring the migratable chat list +2026-09-10 06:15:04.850 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:15:04.854 [info] [ProtocolServer] Initialize: clientId=a8f19e77-f58c-4971-99c7-be824a717734, protocolVersions=[1.0.0, 0.9.0, 0.8.0, 0.7.0, 0.6.0, 0.5.2, 0.5.1] +2026-09-10 06:15:05.068 [info] [WebSocketProtocol] Server listening on socket \\.\pipe\vscode-agent-host-ff6b9e55db65722126acea7b88459f23c02eb8c169d9cc0032f7e65db48e4f5d-hQfSpwyXfZL4PLiM3UAh-Q +2026-09-10 06:15:05.206 [info] [Claude] Auth token unchanged +2026-09-10 06:15:05.340 [info] [AgentService] pruned 0 stale external session row(s) older than 30 days +2026-09-10 06:15:05.340 [info] [Copilot] Listing discoverable chats... +2026-09-10 06:15:05.340 [info] [Copilot] Starting CopilotClient... +2026-09-10 06:15:05.340 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-10 06:15:05.342 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-10 06:15:05.385 [info] [Claude] SDK not downloaded yet; deferring chat discovery +2026-09-10 06:15:06.186 [info] [Copilot] CopilotClient started successfully +2026-09-10 06:15:06.187 [info] [Copilot] Restarting CopilotClient (CAPI proxy configuration changed (proxy (none) -> http://127.0.0.1:7890)) +2026-09-10 06:15:06.189 [warning] [Copilot] Failed to emit discovered chats SERVER_SHUTTING_DOWN +2026-09-10 06:15:06.443 [info] [Copilot] Listing discoverable chats... +2026-09-10 06:15:06.444 [info] [Copilot] Starting CopilotClient... +2026-09-10 06:15:06.444 [info] [Copilot] Resolved CAPI proxy and forwarded HTTP_PROXY/HTTPS_PROXY to Copilot SDK +2026-09-10 06:15:06.444 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-10 06:15:06.444 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-10 06:15:07.202 [info] [Copilot] CopilotClient started successfully +2026-09-10 06:15:07.204 [info] [Copilot] Listed 0 SDK session(s) for discoverable chats +2026-09-10 06:15:07.204 [info] [Copilot] Chat discovery: 0 SDK session(s) -> 0 external, 0 adoptable legacy extension-host, 0 suppressed adoptable legacy extension-host, 0 suppressed archived legacy extension-host, 0 already known to Agent Host, 0 without a working directory, 0 with unsupported or missing client name, 0 outside the import window, 0 without repository metadata, 0 failed to classify (adopt legacy extension-host chats: false) +2026-09-10 06:15:08.737 [info] [ProtocolServer] Client disconnected: a8f19e77-f58c-4971-99c7-be824a717734, subscriptions=1 +2026-09-10 06:15:08.739 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:15:08.739 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:15:08.741 [info] AgentService: shutting down all providers... +2026-09-10 06:15:08.741 [info] [Copilot] Shutting down... diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/editSessions.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/editSessions.log new file mode 100644 index 000000000..b3884cb3e --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061503/editSessions.log @@ -0,0 +1 @@ +2026-09-10 06:15:05.902 [info] Prompting to enable cloud changes, has application previously launched from Continue On flow: false diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/main.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/main.log new file mode 100644 index 000000000..f02853e60 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061503/main.log @@ -0,0 +1,13 @@ +2026-09-10 06:15:03.884 [info] StorageMainService: creating application shared storage +2026-09-10 06:15:03.884 [info] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +2026-09-10 06:15:03.884 [info] [shared storage] Initializing fallback application storage (path: in-memory) +2026-09-10 06:15:03.884 [error] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +2026-09-10 06:15:03.897 [info] [shared storage] Fallback application storage initialized with 3 items +2026-09-10 06:15:04.319 [info] update#disable - updates are disabled by user preference +2026-09-10 06:15:04.322 [info] update#setState disabled +2026-09-10 06:15:04.350 [info] AgentHostProcessManager: agent host started +2026-09-10 06:15:04.783 [error] [AgentHost:stderr] (node:13864) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +2026-09-10 06:15:08.752 [info] Extension host with pid 7504 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/mcpGateway.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/mcpGateway.log new file mode 100644 index 000000000..ac8594c67 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061503/mcpGateway.log @@ -0,0 +1 @@ +2026-09-10 06:15:03.890 [info] [McpGatewayService] Initialized diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/network-shared.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/network-shared.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/remoteTunnelService.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/remoteTunnelService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/sharedprocess.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/sharedprocess.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/telemetry.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/telemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/terminal.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/terminal.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/tunnelHostService.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/tunnelHostService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/userDataSync.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/userDataSync.log new file mode 100644 index 000000000..a6b5fbf5f --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061503/userDataSync.log @@ -0,0 +1,2 @@ +2026-09-10 06:15:05.023 [info] [AutoSync] Using settings sync service https://vscode-sync.trafficmanager.net/ +2026-09-10 06:15:05.023 [info] [AutoSync] Disabled. diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/extHostTelemetry.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/extHostTelemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/exthost.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/exthost.log new file mode 100644 index 000000000..ab28cdfdd --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/exthost.log @@ -0,0 +1,36 @@ +2026-09-10 06:15:05.488 [info] Extension host with pid 7504 started +2026-09-10 06:15:05.489 [info] Skipping acquiring lock for i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\user\User\workspaceStorage\3052a5c0ad9aefbdde77ce0a0cdc626f. +2026-09-10 06:15:05.592 [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onLanguage' +2026-09-10 06:15:05.624 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github' +2026-09-10 06:15:05.735 [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.git +2026-09-10 06:15:05.776 [info] ExtensionService#_doActivateExtension vscode.git, startup: true, activationEvent: '*' +2026-09-10 06:15:05.836 [info] ExtensionService#_doActivateExtension vscode.github, startup: true, activationEvent: '*' +2026-09-10 06:15:05.906 [info] ExtensionService#_doActivateExtension hornet.hornet-cpp, startup: true, activationEvent: 'workspaceContains:**/CMakeLists.txt,**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}' +2026-09-10 06:15:06.109 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.openRepositoryInParentFolders', provide the URI of a resource or 'null' for any resource. +2026-09-10 06:15:06.109 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.showProgress', provide the URI of a resource or 'null' for any resource. +2026-09-10 06:15:06.138 [info] Eager extensions activated +2026-09-10 06:15:06.155 [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 06:15:06.158 [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 06:15:08.290 [warning] hornet.hornet-cpp created a webview without a content security policy: https://aka.ms/vscode-webview-missing-csp +2026-09-10 06:15:08.715 [info] Extension host terminating: received terminate message from renderer +2026-09-10 06:15:08.736 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14046:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 06:15:08.745 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14046:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 06:15:08.752 [info] Extension host with pid 7504 exiting with code 0 diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/output_logging_20260910T061505/1-Hornet CC++.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/output_logging_20260910T061505/1-Hornet CC++.log new file mode 100644 index 000000000..47c8d76b6 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/output_logging_20260910T061505/1-Hornet CC++.log @@ -0,0 +1,180 @@ +Hornet C/C++ 0.1.5 (i:\BackFile\code\hornet-cpptools\Extension) +[2026-09-10T13:15:05.955Z] [project2] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:15:05.975Z] [project2] [Compiler] No compilation database: inferred browsing commands for 2 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:15:05.976Z] [project2] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:15:06.037Z] [project2] [Compiler] I[06:15:06.036] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:15:06.037] Features: windows+grpc +I[06:15:06.037] PID: 15984 +I[06:15:06.037] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2 +I[06:15:06.037] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:15:06.037] argv[1]: --background-index +I[06:15:06.037] argv[2]: --enable-config=0 +I[06:15:06.037] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\.vscode\hornet\compile-db\fallback +I[06:15:06.037] argv[4]: -j=10 +[2026-09-10T13:15:06.040Z] [project2] [Compiler] I[06:15:06.037] Starting LSP over stdin/stdout +I[06:15:06.037] <-- initialize(0) +[2026-09-10T13:15:06.062Z] [project2] [Compiler] I[06:15:06.062] --> reply:initialize(0) 24 ms +[2026-09-10T13:15:06.064Z] [project2] [Compiler] Compiler ready +[2026-09-10T13:15:06.069Z] [project2] [Compiler] I[06:15:06.064] <-- initialized +[2026-09-10T13:15:06.070Z] [project2] [Compiler] I[06:15:06.070] <-- textDocument/didOpen +[2026-09-10T13:15:06.070Z] [project2] [Compiler] I[06:15:06.070] <-- textDocument/documentSymbol(1) +[2026-09-10T13:15:06.071Z] [project2] [Compiler] I[06:15:06.071] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:15:06.071] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2\\a.cpp" +[2026-09-10T13:15:06.071Z] [project2] [Compiler] I[06:15:06.071] --> window/workDoneProgress/create(0) +I[06:15:06.071] Enqueueing 2 commands for indexing +[2026-09-10T13:15:06.072Z] [project2] [Compiler] I[06:15:06.072] <-- reply(0) +I[06:15:06.072] --> $/progress +I[06:15:06.072] --> $/progress +[2026-09-10T13:15:06.082Z] [project2] [Compiler] I[06:15:06.081] --> $/progress +I[06:15:06.081] --> $/progress +I[06:15:06.082] --> $/progress +I[06:15:06.082] --> $/progress +[2026-09-10T13:15:06.096Z] [project2] [Compiler] I[06:15:06.096] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\b.cpp (2 symbols, 3 refs, 1 files) +I[06:15:06.096] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\a.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T13:15:06.104Z] [project2] [Compiler] I[06:15:06.103] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\a.cpp version 0 in 0.02 seconds +[2026-09-10T13:15:06.142Z] [project2] [Compiler] I[06:15:06.106] --> $/progress +I[06:15:06.106] --> $/progress +I[06:15:06.131] --> textDocument/publishDiagnostics +I[06:15:06.132] --> reply:textDocument/documentSymbol(1) 61 ms +[2026-09-10T13:15:06.154Z] [project2] [Compiler] I[06:15:06.153] <-- textDocument/documentSymbol(2) +I[06:15:06.153] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:15:06.195Z] [project2] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:15:06.198Z] [project2] [Compiler] I[06:15:06.198] <-- shutdown(3) +I[06:15:06.198] --> reply:shutdown(3) 0 ms +[2026-09-10T13:15:06.205Z] [project2] [Compiler] I[06:15:06.198] <-- exit +I[06:15:06.198] LSP finished, exiting with status 0 +[2026-09-10T13:15:06.216Z] [project2] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:15:06.217Z] [project2] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:15:06.253Z] [project2] [Compiler] Index build: Error: Index build interrupted by a language-service restart. +[2026-09-10T13:15:06.277Z] [project2] [Compiler] I[06:15:06.276] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:15:06.277] Features: windows+grpc +I[06:15:06.277] PID: 6512 +I[06:15:06.277] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2 +I[06:15:06.277] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:15:06.277] argv[1]: --background-index +I[06:15:06.277] argv[2]: --enable-config=0 +I[06:15:06.277] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\.vscode\hornet\compile-db\fallback +I[06:15:06.277] argv[4]: -j=10 +[2026-09-10T13:15:06.277Z] [project2] [Compiler] I[06:15:06.277] Starting LSP over stdin/stdout +[2026-09-10T13:15:06.277Z] [project2] [Compiler] I[06:15:06.277] <-- initialize(0) +[2026-09-10T13:15:06.300Z] [project2] [Compiler] I[06:15:06.300] --> reply:initialize(0) 22 ms +[2026-09-10T13:15:06.300Z] [project2] [Compiler] Compiler ready +[2026-09-10T13:15:06.304Z] [project2] [Compiler] I[06:15:06.300] <-- initialized +[2026-09-10T13:15:06.305Z] [project2] [Compiler] I[06:15:06.305] <-- textDocument/didOpen +[2026-09-10T13:15:06.305Z] [project2] [Compiler] I[06:15:06.305] <-- textDocument/documentSymbol(1) +[2026-09-10T13:15:06.305Z] [project2] [Compiler] I[06:15:06.305] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:15:06.305] --> window/workDoneProgress/create(0) +I[06:15:06.305] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2\\a.cpp" +[2026-09-10T13:15:06.306Z] [project2] [Compiler] I[06:15:06.305] Enqueueing 3 commands for indexing +[2026-09-10T13:15:06.306Z] [project2] [Compiler] I[06:15:06.306] <-- reply(0) +I[06:15:06.306] --> $/progress +[2026-09-10T13:15:06.306Z] [project2] [Compiler] I[06:15:06.306] --> $/progress +[2026-09-10T13:15:06.315Z] [project2] [Compiler] I[06:15:06.315] --> $/progress +I[06:15:06.315] --> $/progress +I[06:15:06.315] --> $/progress +[2026-09-10T13:15:06.327Z] [project2] [Compiler] I[06:15:06.326] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\new.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T13:15:06.335Z] [project2] [Compiler] I[06:15:06.332] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\a.cpp version 0 in 0.01 seconds +I[06:15:06.334] --> $/progress +[2026-09-10T13:15:06.356Z] [project2] [Compiler] I[06:15:06.356] --> textDocument/publishDiagnostics +I[06:15:06.356] --> reply:textDocument/documentSymbol(1) 51 ms +[2026-09-10T13:15:06.357Z] [project2] [Compiler] I[06:15:06.357] <-- workspace/didChangeWatchedFiles +[2026-09-10T13:15:06.358Z] [project2] [Compiler] I[06:15:06.358] <-- workspace/didChangeWatchedFiles +[2026-09-10T13:15:06.358Z] [project2] [Compiler] I[06:15:06.358] <-- textDocument/documentSymbol(2) +[2026-09-10T13:15:06.358Z] [project2] [Compiler] I[06:15:06.358] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:15:07.893Z] [project2] [Compiler] Index ready: 3 source files (cached for next startup) +[2026-09-10T13:15:07.906Z] [project2] [Compiler] I[06:15:07.906] <-- workspace/symbol(3) +[2026-09-10T13:15:07.906Z] [project2] [Compiler] I[06:15:07.906] --> reply:workspace/symbol(3) 0 ms +[2026-09-10T13:15:07.925Z] [project2] [Compiler] I[06:15:07.925] <-- textDocument/didChange +[2026-09-10T13:15:07.961Z] [project2] [Compiler] I[06:15:07.961] <-- textDocument/documentSymbol(4) +[2026-09-10T13:15:07.961Z] [project2] [Compiler] I[06:15:07.961] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\a.cpp version 1 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2\\a.cpp" +[2026-09-10T13:15:07.970Z] [project2] [Compiler] I[06:15:07.970] --> reply:textDocument/documentSymbol(4) 9 ms +[2026-09-10T13:15:07.984Z] [project2] [Compiler] I[06:15:07.985] <-- textDocument/prepareCallHierarchy(5) +[2026-09-10T13:15:07.985Z] [project2] [Compiler] I[06:15:07.985] --> reply:textDocument/prepareCallHierarchy(5) 0 ms +[2026-09-10T13:15:08.075Z] [project2] [Compiler] I[06:15:08.075] <-- textDocument/didOpen +[2026-09-10T13:15:08.075Z] [project2] [Compiler] I[06:15:08.075] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\b.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2\\b.cpp" +[2026-09-10T13:15:08.075Z] [project2] [Compiler] I[06:15:08.075] <-- textDocument/didOpen +[2026-09-10T13:15:08.076Z] [project2] [Compiler] I[06:15:08.076] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\new.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2\\new.cpp" +[2026-09-10T13:15:08.076Z] [project2] [Compiler] I[06:15:08.076] <-- textDocument/documentSymbol(6) +[2026-09-10T13:15:08.076Z] [project2] [Compiler] I[06:15:08.076] <-- textDocument/documentSymbol(7) +[2026-09-10T13:15:08.093Z] [project2] [Compiler] I[06:15:08.093] <-- textDocument/inlayHint(8) +[2026-09-10T13:15:08.093Z] [project2] [Compiler] I[06:15:08.093] --> reply:textDocument/inlayHint(8) 0 ms +[2026-09-10T13:15:08.103Z] [project2] [Compiler] I[06:15:08.103] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\b.cpp version 0 in 0.01 seconds +I[06:15:08.103] Built preamble of size 266884 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\new.cpp version 0 in 0.01 seconds +[2026-09-10T13:15:08.134Z] [project2] [Compiler] I[06:15:08.134] --> textDocument/publishDiagnostics +I[06:15:08.134] --> reply:textDocument/documentSymbol(6) 58 ms +I[06:15:08.134] --> textDocument/publishDiagnostics +[2026-09-10T13:15:08.134Z] [project2] [Compiler] I[06:15:08.134] --> reply:textDocument/documentSymbol(7) 57 ms +[2026-09-10T13:15:08.136Z] [project2] [Compiler] I[06:15:08.136] <-- textDocument/documentSymbol(9) +[2026-09-10T13:15:08.136Z] [project2] [Compiler] I[06:15:08.136] <-- textDocument/documentSymbol(10) +I[06:15:08.137] --> reply:textDocument/documentSymbol(9) 0 ms +[2026-09-10T13:15:08.137Z] [project2] [Compiler] I[06:15:08.137] --> reply:textDocument/documentSymbol(10) 0 ms +[2026-09-10T13:15:08.137Z] [project2] [Compiler] I[06:15:08.137] <-- textDocument/references(11) +[2026-09-10T13:15:08.137Z] [project2] [Compiler] I[06:15:08.137] --> reply:textDocument/references(11) 0 ms +I[06:15:08.137] <-- callHierarchy/outgoingCalls(12) +[2026-09-10T13:15:08.138Z] [project2] [Compiler] I[06:15:08.137] --> reply:callHierarchy/outgoingCalls(12) 0 ms +[2026-09-10T13:15:08.138Z] [project2] [Compiler] I[06:15:08.138] <-- callHierarchy/incomingCalls(13) +I[06:15:08.138] --> reply:callHierarchy/incomingCalls(13) 0 ms +[2026-09-10T13:15:08.139Z] [project2] [Compiler] I[06:15:08.139] <-- textDocument/documentSymbol(14) +[2026-09-10T13:15:08.140Z] [project2] [Compiler] I[06:15:08.140] --> reply:textDocument/documentSymbol(14) 0 ms +[2026-09-10T13:15:08.140Z] [project2] [Compiler] I[06:15:08.140] <-- textDocument/references(15) +[2026-09-10T13:15:08.140Z] [project2] [Compiler] I[06:15:08.140] --> reply:textDocument/references(15) 0 ms +[2026-09-10T13:15:08.140Z] [project2] [Compiler] I[06:15:08.140] <-- callHierarchy/incomingCalls(16) +[2026-09-10T13:15:08.140Z] [project2] [Compiler] I[06:15:08.140] --> reply:callHierarchy/incomingCalls(16) 0 ms +[2026-09-10T13:15:08.142Z] [project2] [Compiler] I[06:15:08.142] <-- textDocument/documentSymbol(17) +[2026-09-10T13:15:08.142Z] [project2] [Compiler] I[06:15:08.142] --> reply:textDocument/documentSymbol(17) 0 ms +[2026-09-10T13:15:08.142Z] [project2] [Compiler] I[06:15:08.142] <-- callHierarchy/outgoingCalls(18) +[2026-09-10T13:15:08.143Z] [project2] [Compiler] I[06:15:08.142] --> reply:callHierarchy/outgoingCalls(18) 0 ms +[2026-09-10T13:15:08.285Z] [project2] [Compiler] I[06:15:08.285] <-- textDocument/foldingRange(19) +[2026-09-10T13:15:08.285Z] [project2] [Compiler] I[06:15:08.285] --> reply:textDocument/foldingRange(19) 0 ms +[2026-09-10T13:15:08.329Z] [project2] [Compiler] I[06:15:08.329] <-- textDocument/foldingRange(20) +[2026-09-10T13:15:08.330Z] [project2] [Compiler] I[06:15:08.330] --> reply:textDocument/foldingRange(20) 0 ms +[2026-09-10T13:15:08.400Z] [project2] [Compiler] I[06:15:08.400] <-- shutdown(21) +I[06:15:08.400] --> reply:shutdown(21) 0 ms +[2026-09-10T13:15:08.406Z] [project2] [Compiler] I[06:15:08.400] <-- exit +I[06:15:08.400] LSP finished, exiting with status 0 +[2026-09-10T13:15:08.415Z] [project2] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:15:08.416Z] [project2] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:15:08.475Z] [project2] [Compiler] I[06:15:08.474] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:15:08.475] Features: windows+grpc +I[06:15:08.475] PID: 6756 +I[06:15:08.475] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2 +I[06:15:08.475] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:15:08.475] argv[1]: --background-index +I[06:15:08.475] argv[2]: --enable-config=0 +I[06:15:08.475] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\.vscode\hornet\compile-db\fallback +I[06:15:08.475] argv[4]: -j=10 +I[06:15:08.475] Starting LSP over stdin/stdout +[2026-09-10T13:15:08.475Z] [project2] [Compiler] I[06:15:08.475] <-- initialize(0) +[2026-09-10T13:15:08.498Z] [project2] [Compiler] I[06:15:08.498] --> reply:initialize(0) 22 ms +[2026-09-10T13:15:08.499Z] [project2] [Compiler] Compiler ready +[2026-09-10T13:15:08.502Z] [project2] [Compiler] I[06:15:08.499] <-- initialized +[2026-09-10T13:15:08.502Z] [project2] [Compiler] I[06:15:08.502] <-- textDocument/didOpen +[2026-09-10T13:15:08.505Z] [project2] [Compiler] I[06:15:08.503] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:15:08.503] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\a.cpp version 1 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project2\\a.cpp" +I[06:15:08.503] --> window/workDoneProgress/create(0) +I[06:15:08.504] Enqueueing 3 commands for indexing +[2026-09-10T13:15:08.505Z] [project2] [Compiler] I[06:15:08.505] <-- textDocument/documentSymbol(1) +[2026-09-10T13:15:08.505Z] [project2] [Compiler] I[06:15:08.505] <-- textDocument/documentSymbol(2) +[2026-09-10T13:15:08.505Z] [project2] [Compiler] I[06:15:08.505] <-- reply(0) +[2026-09-10T13:15:08.505Z] [project2] [Compiler] I[06:15:08.505] --> $/progress +I[06:15:08.505] --> $/progress +[2026-09-10T13:15:08.510Z] [project2] [Compiler] I[06:15:08.510] <-- textDocument/inlayHint(3) +[2026-09-10T13:15:08.512Z] [project2] [Compiler] I[06:15:08.511] --> $/progress +I[06:15:08.511] --> $/progress +[2026-09-10T13:15:08.532Z] [project2] [Compiler] I[06:15:08.532] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project2\a.cpp version 1 in 0.01 seconds +[2026-09-10T13:15:08.554Z] [project2] [Compiler] I[06:15:08.554] --> textDocument/publishDiagnostics +[2026-09-10T13:15:08.555Z] [project2] [Compiler] I[06:15:08.554] --> reply:textDocument/documentSymbol(1) 49 ms +I[06:15:08.554] --> reply:textDocument/documentSymbol(2) 49 ms +I[06:15:08.554] --> reply:textDocument/inlayHint(3) 44 ms diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/vscode.git/Git.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/vscode.git/Git.log new file mode 100644 index 000000000..a3c6db4a2 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/vscode.git/Git.log @@ -0,0 +1,15 @@ +2026-09-10 06:15:05.895 [info] [main] Log level: Info +2026-09-10 06:15:05.895 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 06:15:05.895 [info] [main] Validating found git in: "C:\Program Files (x86)\Git\cmd\git.exe" +2026-09-10 06:15:05.895 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 06:15:05.895 [info] [main] Validating found git in: "C:\Users\LiXueqiang\AppData\Local\Programs\Git\cmd\git.exe" +2026-09-10 06:15:06.023 [info] [main] Validating found git in: "D:\Software\Git\cmd\git.exe" +2026-09-10 06:15:06.133 [info] [main] Using git "2.53.0.windows.1" from "D:\Software\Git\cmd\git.exe" +2026-09-10 06:15:06.133 [info] [Model][doInitialScan] Initial repository scan started +2026-09-10 06:15:06.253 [info] > git rev-parse --show-toplevel [105ms] +2026-09-10 06:15:06.332 [info] > git rev-parse --show-toplevel [72ms] +2026-09-10 06:15:06.335 [info] [Model][doInitialScan] Initial repository scan completed - repositories (0), closed repositories (0), parent repositories (1), unsafe repositories (0) +2026-09-10 06:15:07.058 [info] > git rev-parse --show-toplevel [72ms] +2026-09-10 06:15:07.131 [info] > git rev-parse --show-toplevel [67ms] +2026-09-10 06:15:07.291 [info] > git rev-parse --show-toplevel [71ms] +2026-09-10 06:15:08.038 [info] > git rev-parse --show-toplevel [78ms] diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/vscode.github-authentication/GitHub Authentication.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/vscode.github-authentication/GitHub Authentication.log new file mode 100644 index 000000000..9b550ac9e --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/vscode.github-authentication/GitHub Authentication.log @@ -0,0 +1,11 @@ +2026-09-10 06:15:05.730 [info] Reading sessions from keychain... +2026-09-10 06:15:05.730 [info] Getting sessions for all scopes... +2026-09-10 06:15:05.732 [info] Got 0 sessions for all scopes... +2026-09-10 06:15:05.732 [info] Getting sessions for all scopes... +2026-09-10 06:15:05.732 [info] Got 0 sessions for all scopes... +2026-09-10 06:15:05.732 [info] Getting sessions for all scopes... +2026-09-10 06:15:05.732 [info] Got 0 sessions for all scopes... +2026-09-10 06:15:05.741 [info] Getting sessions for all scopes... +2026-09-10 06:15:05.741 [info] Got 0 sessions for all scopes... +2026-09-10 06:15:07.237 [info] Getting sessions for all scopes... +2026-09-10 06:15:07.237 [info] Got 0 sessions for all scopes... diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/vscode.github/GitHub.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/vscode.github/GitHub.log new file mode 100644 index 000000000..e51ae3674 --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/exthost/vscode.github/GitHub.log @@ -0,0 +1 @@ +2026-09-10 06:15:05.943 [info] Log level: Info diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/network.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/network.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/notebook.rendering.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/notebook.rendering.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/output_20260910T061504/agentSessionsOutput.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/output_20260910T061504/agentSessionsOutput.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/output_20260910T061504/tasks.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/output_20260910T061504/tasks.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/renderer.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/renderer.log new file mode 100644 index 000000000..30060db6c --- /dev/null +++ b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/renderer.log @@ -0,0 +1,19 @@ +2026-09-10 06:15:04.343 [info] [AgentHost:renderer] Acquiring MessagePort to agent host... +2026-09-10 06:15:04.532 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:15:04.777 [info] [AgentHost:renderer] MessagePort acquired, creating client... +2026-09-10 06:15:04.789 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NWYzNjhmZTEtZDNhNy00YWE4LTg3YzItZWY0ZjY1ZjgxM2Ey" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:15:04.872 [info] [AgentHost:renderer] Protocol connection established; clientId=a8f19e77-f58c-4971-99c7-be824a717734 +2026-09-10 06:15:04.883 [info] Started local extension host with pid 7504. +2026-09-10 06:15:04.964 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-10 06:15:05.203 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:15:05.237 [info] [AgentHost] Clearing authentication for resource: https://api.github.com +2026-09-10 06:15:05.240 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:15:05.241 [info] [AgentHost] Clearing authentication for resource: https://api.github.com/repos +2026-09-10 06:15:05.241 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:15:05.242 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:15:05.329 [info] Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +2026-09-10 06:15:05.377 [error] [hornet.hornet-cpp]: property `id` is mandatory and must be of type `string` with non-empty value. Only alphanumeric characters, '_', and '-' are allowed. +2026-09-10 06:15:05.380 [warning] [hornet.hornet-cpp]: View container 'hornet-cpp.graphPanel' does not exist and all views registered to it will be added to 'Explorer'. +2026-09-10 06:15:05.495 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NWYzNjhmZTEtZDNhNy00YWE4LTg3YzItZWY0ZjY1ZjgxM2Ey" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:15:05.776 [info] Settings Sync: Account status changed from uninitialized to unavailable +2026-09-10 06:15:08.111 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NWYzNjhmZTEtZDNhNy00YWE4LTg3YzItZWY0ZjY1ZjgxM2Ey" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/textModelChanges.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/textModelChanges.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/views.log b/Extension/artifacts/panel-host/user/logs/20260910T061503/window1/views.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user/machineid b/Extension/artifacts/panel-host/user/machineid new file mode 100644 index 000000000..597cbe3f1 --- /dev/null +++ b/Extension/artifacts/panel-host/user/machineid @@ -0,0 +1 @@ +968561f7-ccda-4833-b004-11c49543c028 \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user3/Cache/Cache_Data/data_0 b/Extension/artifacts/panel-host/user3/Cache/Cache_Data/data_0 new file mode 100644 index 000000000..03c0b96a3 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/Cache/Cache_Data/data_0 differ diff --git a/Extension/artifacts/panel-host/user3/Cache/Cache_Data/data_1 b/Extension/artifacts/panel-host/user3/Cache/Cache_Data/data_1 new file mode 100644 index 000000000..b8b4c6ce3 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/Cache/Cache_Data/data_1 differ diff --git a/Extension/artifacts/panel-host/user3/Cache/Cache_Data/data_2 b/Extension/artifacts/panel-host/user3/Cache/Cache_Data/data_2 new file mode 100644 index 000000000..c7e2eb9ad Binary files /dev/null and b/Extension/artifacts/panel-host/user3/Cache/Cache_Data/data_2 differ diff --git a/Extension/artifacts/panel-host/user3/Cache/Cache_Data/data_3 b/Extension/artifacts/panel-host/user3/Cache/Cache_Data/data_3 new file mode 100644 index 000000000..f806a9339 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/Cache/Cache_Data/data_3 differ diff --git a/Extension/artifacts/panel-host/user3/Cache/Cache_Data/index b/Extension/artifacts/panel-host/user3/Cache/Cache_Data/index new file mode 100644 index 000000000..c06e7a55d Binary files /dev/null and b/Extension/artifacts/panel-host/user3/Cache/Cache_Data/index differ diff --git a/Extension/artifacts/panel-host/user3/Cache/No_Vary_Search/journal.baj b/Extension/artifacts/panel-host/user3/Cache/No_Vary_Search/journal.baj new file mode 100644 index 000000000..54fe66eb5 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/Cache/No_Vary_Search/journal.baj @@ -0,0 +1 @@ +$F~ \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user3/Cache/No_Vary_Search/snapshot.baf b/Extension/artifacts/panel-host/user3/Cache/No_Vary_Search/snapshot.baf new file mode 100644 index 000000000..8912405f3 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/Cache/No_Vary_Search/snapshot.baf differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/0e47db1e25d548b5_0 b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/0e47db1e25d548b5_0 new file mode 100644 index 000000000..d135b696e Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/0e47db1e25d548b5_0 differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/14d28c6853f58508_0 b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/14d28c6853f58508_0 new file mode 100644 index 000000000..b26faff62 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/14d28c6853f58508_0 differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/3f578c145a84d19f_0 b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/3f578c145a84d19f_0 new file mode 100644 index 000000000..fcd9b535e Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/3f578c145a84d19f_0 differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4029b16ba7c77307_0 b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4029b16ba7c77307_0 new file mode 100644 index 000000000..0d0a927e4 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4029b16ba7c77307_0 differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4e4a8674c1b1dad1_0 b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4e4a8674c1b1dad1_0 new file mode 100644 index 000000000..8ccce82a1 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/4e4a8674c1b1dad1_0 differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5a4441e8b154785f_0 b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5a4441e8b154785f_0 new file mode 100644 index 000000000..0515868e7 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5a4441e8b154785f_0 differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5cd5a55cf624c9d4_0 b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5cd5a55cf624c9d4_0 new file mode 100644 index 000000000..40d02b698 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/5cd5a55cf624c9d4_0 differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/6706124f05459316_0 b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/6706124f05459316_0 new file mode 100644 index 000000000..dd0f765e9 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/6706124f05459316_0 differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/76a004898163bb11_0 b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/76a004898163bb11_0 new file mode 100644 index 000000000..e9e24e3d3 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/76a004898163bb11_0 differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/a5f6702cfaf384a3_0 b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/a5f6702cfaf384a3_0 new file mode 100644 index 000000000..abc0ed72c Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/a5f6702cfaf384a3_0 differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index-dir/the-real-index b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index-dir/the-real-index new file mode 100644 index 000000000..5f95b6bf2 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/js/index-dir/the-real-index differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index differ diff --git a/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index-dir/the-real-index b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index-dir/the-real-index new file mode 100644 index 000000000..f0bd0ef7d Binary files /dev/null and b/Extension/artifacts/panel-host/user3/CachedData/88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f/chrome/wasm/index-dir/the-real-index differ diff --git a/Extension/artifacts/panel-host/user3/CachedProfilesData/__default__profile__/extensions.builtin.cache b/Extension/artifacts/panel-host/user3/CachedProfilesData/__default__profile__/extensions.builtin.cache new file mode 100644 index 000000000..94fb523c5 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/CachedProfilesData/__default__profile__/extensions.builtin.cache @@ -0,0 +1 @@ +{"input":{"location":{"$mid":1,"fsPath":"d:\\Software\\Microsoft\\Visual Studio Code\\88e44fa0e0\\resources\\app\\extensions","_sep":1,"external":"file:///d%3A/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/extensions","path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions","scheme":"file"},"mtime":1788955827471,"profile":false,"type":0,"validate":true,"productVersion":"1.136.2","productDate":"2026-09-04T21:40:42Z","productCommit":"88e44fa0e00b08f7758b4f6d05632e4fd5e4df6f","devMode":false,"language":"en","translations":{}},"result":[{"type":0,"identifier":{"id":"typescriptteam.jsts-chat-features"},"manifest":{"name":"jsts-chat-features","displayName":"JS/TS Chat Features","description":"Provides extensions to VS Family to improve the Copilot experience in JavaScript and TypeScript contexts","publisher":"TypeScriptTeam","author":"Microsoft Corp.","private":true,"version":"0.0.4","icon":"logo.png","license":"SEE LICENSE IN LICENSE.txt","engines":{"vscode":"^1.109.0"},"categories":["AI","Programming Languages"],"extensionKind":["workspace"],"contributes":{"chatSkills":[{"path":"./skills/typescript-setup/SKILL.md","when":"config.jsts-chat-features.skills.enabled"},{"path":"./skills/typescript-update/SKILL.md","when":"config.jsts-chat-features.skills.enabled"}],"configuration":{"title":"JS/TS Chat Features","type":"object","properties":{"jsts-chat-features.skills.enabled":{"type":"boolean","tags":["onExp"],"default":false,"description":"These skills provide helpful prompts and features to enhance your experience when using Copilot to work with JavaScript and TypeScript."}}}},"files":["LICENSE.txt","README.md","logo.png","skills/typescript-setup/SKILL.md","skills/typescript-update/SKILL.md","skills/typescript-update/4to5.md","skills/typescript-update/5to6.md","skills/typescript-update/6to7.md"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/TypeScriptTeam.jsts-chat-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[[2,"property `extensionKind` can be defined only if property `main` is also defined."]],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.bat"},"manifest":{"name":"bat","displayName":"Windows Bat Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Windows batch files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.52.0"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin mmims/language-batchfile grammars/batchfile.cson ./syntaxes/batchfile.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"bat","extensions":[".bat",".cmd"],"aliases":["Batch","bat"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"bat","scopeName":"source.batchfile","path":"./syntaxes/batchfile.tmLanguage.json"}],"snippets":[{"language":"bat","path":"./snippets/batchfile.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/bat","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.clojure"},"manifest":{"name":"clojure","displayName":"Clojure Language Basics","description":"Provides syntax highlighting and bracket matching in Clojure files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-clojure grammars/clojure.cson ./syntaxes/clojure.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"clojure","aliases":["Clojure","clojure"],"extensions":[".clj",".cljs",".cljc",".cljx",".clojure",".edn"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"clojure","scopeName":"source.clojure","path":"./syntaxes/clojure.tmLanguage.json"}],"configurationDefaults":{"[clojure]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/clojure","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.coffeescript"},"manifest":{"name":"coffeescript","displayName":"CoffeeScript Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in CoffeeScript files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-coffee-script grammars/coffeescript.cson ./syntaxes/coffeescript.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"coffeescript","extensions":[".coffee",".cson",".iced"],"aliases":["CoffeeScript","coffeescript","coffee"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"coffeescript","scopeName":"source.coffee","path":"./syntaxes/coffeescript.tmLanguage.json"}],"breakpoints":[{"language":"coffeescript"}],"snippets":[{"language":"coffeescript","path":"./snippets/coffeescript.code-snippets"}],"configurationDefaults":{"[coffeescript]":{"diffEditor.ignoreTrimWhitespace":false,"editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/coffeescript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.configuration-editing"},"manifest":{"name":"configuration-editing","displayName":"Configuration Editing","description":"Provides capabilities (advanced IntelliSense, auto-fixing) in configuration files like settings, launch, and extension recommendation files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.0.0"},"icon":"images/icon.png","activationEvents":["onProfile","onProfile:github","onLanguage:json","onLanguage:jsonc"],"enabledApiProposals":["profileContentHandlers"],"main":"./dist/configurationEditingMain","browser":"./dist/browser/configurationEditingMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"languages":[{"id":"jsonc","extensions":[".code-workspace","language-configuration.json","icon-theme.json","color-theme.json"],"filenames":["settings.json","launch.json","tasks.json","mcp.json","keybindings.json","extensions.json","argv.json","profiles.json","devcontainer.json",".devcontainer.json"]},{"id":"json","extensions":[".code-profile"]}],"jsonValidation":[{"fileMatch":"vscode://defaultsettings/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"%APP_SETTINGS_HOME%/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"vscode://defaultsettings/*.json","url":"vscode://schemas/settings/default"},{"fileMatch":"%APP_SETTINGS_HOME%/settings.json","url":"vscode://schemas/settings/user"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/settings.json","url":"vscode://schemas/settings/profile"},{"fileMatch":"%MACHINE_SETTINGS_HOME%/settings.json","url":"vscode://schemas/settings/machine"},{"fileMatch":"%APP_WORKSPACES_HOME%/*/workspace.json","url":"vscode://schemas/workspaceConfig"},{"fileMatch":"**/*.code-workspace","url":"vscode://schemas/workspaceConfig"},{"fileMatch":"**/argv.json","url":"vscode://schemas/argv"},{"fileMatch":"/.vscode/settings.json","url":"vscode://schemas/settings/folder"},{"fileMatch":"/.vscode/launch.json","url":"vscode://schemas/launch"},{"fileMatch":"/.vscode/tasks.json","url":"vscode://schemas/tasks"},{"fileMatch":"/.vscode/mcp.json","url":"vscode://schemas/mcp"},{"fileMatch":"%APP_SETTINGS_HOME%/tasks.json","url":"vscode://schemas/tasks"},{"fileMatch":"%APP_SETTINGS_HOME%/chatLanguageModels.json","url":"vscode://schemas/language-models"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/chatLanguageModels.json","url":"vscode://schemas/language-models"},{"fileMatch":"%APP_SETTINGS_HOME%/snippets/*.json","url":"vscode://schemas/snippets"},{"fileMatch":"%APP_SETTINGS_HOME%/prompts/*.toolsets.jsonc","url":"vscode://schemas/toolsets"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/snippets/.json","url":"vscode://schemas/snippets"},{"fileMatch":"%APP_SETTINGS_HOME%/sync/snippets/preview/*.json","url":"vscode://schemas/snippets"},{"fileMatch":"**/*.code-snippets","url":"vscode://schemas/global-snippets"},{"fileMatch":"/.vscode/extensions.json","url":"vscode://schemas/extensions"},{"fileMatch":"devcontainer.json","url":"https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json"},{"fileMatch":".devcontainer.json","url":"https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json"},{"fileMatch":"%APP_SETTINGS_HOME%/globalStorage/ms-vscode-remote.remote-containers/nameConfigs/*.json","url":"./schemas/attachContainer.schema.json"},{"fileMatch":"%APP_SETTINGS_HOME%/globalStorage/ms-vscode-remote.remote-containers/imageConfigs/*.json","url":"./schemas/attachContainer.schema.json"},{"fileMatch":"**/quality/*/product.json","url":"vscode://schemas/vscode-product"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["profileContentHandlers"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/configuration-editing","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"github.copilot-chat"},"manifest":{"name":"copilot-chat","displayName":"GitHub Copilot","description":"AI chat features powered by Copilot","version":"0.64.1","build":"1","completionsCoreVersion":"1.378.1799","internalLargeStorageAriaKey":"ec712b3202c5462fb6877acae7f1f9d7-c19ad55e-3e3c-4f99-984b-827f6d95bd9e-6917","ariaKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","buildType":"prod","publisher":"GitHub","homepage":"https://github.com/features/copilot?editor=vscode","license":"SEE LICENSE IN LICENSE.txt","repository":{"type":"git","url":"https://github.com/microsoft/vscode-copilot-chat"},"bugs":{"url":"https://github.com/microsoft/vscode/issues"},"qna":"https://github.com/github-community/community/discussions/categories/copilot","icon":"assets/copilot.png","pricing":"Trial","engines":{"vscode":"^1.136.2","npm":">=9.0.0","node":">=22.14.0"},"categories":["AI","Chat","Programming Languages","Machine Learning"],"keywords":["ai","openai","codex","pilot","snippets","documentation","autocomplete","intellisense","refactor","javascript","python","typescript","php","go","golang","ruby","c++","c#","java","kotlin","co-pilot"],"badges":[{"url":"https://img.shields.io/badge/GitHub%20Copilot-Subscription%20Required-orange","href":"https://github.com/github-copilot/signup?editor=vscode","description":"Sign up for GitHub Copilot"},{"url":"https://img.shields.io/github/stars/github/copilot-docs?style=social","href":"https://github.com/github/copilot-docs","description":"Star Copilot on GitHub"},{"url":"https://img.shields.io/youtube/channel/views/UC7c3Kb6jYCRj4JOHHZTxKsQ?style=social","href":"https://www.youtube.com/@GitHub/search?query=copilot","description":"Check out GitHub on Youtube"},{"url":"https://img.shields.io/twitter/follow/github?style=social","href":"https://twitter.com/github","description":"Follow GitHub on Twitter"}],"activationEvents":["onStartupFinished","onLanguageModelChat:copilot","onUri","onCommand:_github.copilot.chat.reportModelFeedbackSurvey","onFileSystem:ccreq","onFileSystem:ccsettings"],"main":"./dist/extension","l10n":"./l10n","enabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","chatDebug","chatHooks","extensionsAny","newSymbolNamesProvider","interactive","codeActionAI","activeComment","commentReveal","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","documentFiltersExclusive","embeddings","findTextInFiles","findTextInFiles2","languageModelToolSupportsModel","findFiles2","textSearchProvider","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","chatParticipantAdditions","defaultChatParticipant","contribSourceControlInputBoxMenu","authLearnMore","testObserver","aiTextSearchProvider","chatParticipantPrivate","chatProvider","contribDebugCreateConfiguration","chatReferenceDiagnostic","textSearchProvider2","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelPricing","inlineCompletionsAdditions","chatStatusItem","chatInputNotification","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","languageModelThinkingPart","chatSessionsProvider","devDeviceId","contribEditorContentMenu","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","environmentPower","terminalTitle","toolInvocationApproveCombination","chatSessionCustomizationProvider"],"contributes":{"languageModelTools":[{"name":"copilot_searchCodebase","toolReferenceName":"codebase","displayName":"Codebase","icon":"$(folder)","userDescription":"Find relevant file chunks, symbols, and other information via semantic search","modelDescription":"Run a natural language search for relevant code or documentation comments from the user's current workspace. Returns relevant code snippets from the user's current workspace if it is large, or the full contents of the workspace if it is small.","tags":["codesearch","vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to search the codebase for. Should contain all relevant context. Should ideally be text that might appear in the codebase, such as function names, variable names, or comments."}},"required":["query"]}},{"name":"execution_subagent","toolReferenceName":"executionSubagent","displayName":"Execution Subagent","icon":"$(play)","userDescription":"Launch an execution-focused subagent that runs one or more terminal commands to accomplish a task. This subagent is powered by Google's Gemini-3-Flash model. It is designed to select an efficient summary of the terminal outputs to return to the main agent context.","modelDescription":"Launch an iterative execution-focused subagent that performs an execution-based task.\nUSE THIS INSTEAD OF RUNNING INDIVIDUAL COMMANDS WITH run_in_terminal EXCEPT IN THE RARE CASES THAT YOU NEED THE FULL OUTPUT OF A COMMAND.\nHere are some examples of how it can be used:\n- Run tests and filter the output to summarize which tests failed and why.\n- Install all dependencies of a project.\nReturns: A list of commands that were run, along with relevant excerpts of each command's output.\nInput fields:\n- query: What to execute, and what to look for in the output. Can include exact commands to run, or a description of an execution task.\n- description: Short user-visible invocation message.\nNOTE: In the subagent query, make sure to specify any restrictions or guidelines on running commands provided by the user earlier in the conversation.\nFor example, if the user instructs the agent to not edit files in a particular directory, make sure to include that instruction in the subagent query when relevant.","when":"config.github.copilot.chat.executionSubagent.enabled","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"What to execute, and what to look for in the output. Can include exact commands to run, or a description of an execution task."},"description":{"type":"string","description":"User-visible invocation message shown while the subagent runs."}},"required":["query","description"]}},{"name":"search_subagent","toolReferenceName":"searchSubagent","displayName":"Search Subagent","icon":"$(search)","userDescription":"Launch an iterative search-focused subagent to find relevant code in your workspace.","modelDescription":"Launch a fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns (eg. \"src/components/**/*.tsx\"), search code for keywords (eg. \"API endpoints\"), or answer questions about the codebase (eg. \"how do API endpoints work?\").\nReturns: A list of relevant files/snippet locations in the workspace.\n\nInput fields:\n- query: Natural language description of what to search for.\n- description: Short user-visible invocation message. \n- details: 2-3 sentences detailing the objective of the search agent.","when":"config.github.copilot.chat.searchSubagent.enabled && config.github.copilot.chat.exploreAgent.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language description of what to search for."},"description":{"type":"string","description":"A short (3-5 word) description of the task."},"details":{"type":"string","description":"A more detailed description of the objective for the search subagent. This helps the sub-agent remain on task and understand its purpose."}},"required":["query","description","details"]}},{"name":"explore_subagent","toolReferenceName":"exploreSubagent","displayName":"Search Subagent","icon":"$(search)","userDescription":"Launch an iterative search-focused subagent to find relevant code in your workspace.","modelDescription":"Launch a fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns (eg. \"src/components/**/*.tsx\"), search code for keywords (eg. \"API endpoints\"), or answer questions about the codebase (eg. \"how do API endpoints work?\").\nReturns: A list of relevant files/snippet locations in the workspace.\n\nInput fields:\n- query: Natural language description of what to search for.\n- description: Short user-visible invocation message. \n- details: 2-3 sentences detailing the objective of the search agent.","when":"config.github.copilot.chat.searchSubagent.enabled && !config.github.copilot.chat.exploreAgent.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language description of what to search for."},"description":{"type":"string","description":"A short (3-5 word) description of the task."},"details":{"type":"string","description":"A more detailed description of the objective for the search subagent. This helps the sub-agent remain on task and understand its purpose."}},"required":["query","description","details"]}},{"name":"skill","toolReferenceName":"skill","displayName":"Skill","icon":"$(book)","userDescription":"Execute a skill by name. Skills provide specialized capabilities, domain knowledge, and refined workflows.","modelDescription":"Invoke a skill to handle a user's request with specialized instructions and workflows.\n\nSkills are domain-specific capabilities discovered from SKILL.md files. When a user's task matches an available skill, call this tool to load and apply it. If the user types a slash command (e.g. \"/deploy\", \"/test\"), treat it as a skill invocation.\n\nUsage:\n- Pass the skill name only (no arguments).\n- Examples: skill: \"docx\", skill: \"deploy\", skill: \"fix-ci-failures\"\n\nRules:\n- Available skills appear in system-reminder messages earlier in the conversation.\n- BLOCKING: When a matching skill exists, you MUST call this tool before producing any other output about the task.\n- Never reference a skill without calling this tool.\n- Do not call this tool for a skill that is already active in the current turn (indicated by a tag).\n- Do not use this tool for built-in commands such as /help or /clear.","when":"config.github.copilot.chat.skillTool.enabled","inputSchema":{"type":"object","properties":{"skill":{"type":"string","description":"The skill name. E.g., \"commit\", \"review-pr\", or \"pdf\""}},"required":["skill"]}},{"name":"copilot_searchWorkspaceSymbols","toolReferenceName":"symbols","displayName":"Workspace Symbols","icon":"$(symbol)","userDescription":"Search for workspace symbols using language services.","modelDescription":"Search the user's workspace for code symbols using language services. Use this tool when the user is looking for a specific symbol in their workspace.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"symbolName":{"type":"string","description":"The symbol to search for, such as a function name, class name, or variable name."}},"required":["symbolName"]}},{"name":"copilot_getVSCodeAPI","toolReferenceName":"vscodeAPI","displayName":"Get VS Code API References","icon":"$(references)","userDescription":"Use VS Code API references to answer questions about VS Code extension development.","modelDescription":"Get comprehensive VS Code API documentation and references for extension development. This tool provides authoritative documentation for VS Code's extensive API surface, including proposed APIs, contribution points, and best practices. Use this tool for understanding complex VS Code API interactions.\n\nWhen to use this tool:\n- User asks about specific VS Code APIs, interfaces, or extension capabilities\n- Need documentation for VS Code extension contribution points (commands, views, settings, etc.)\n- Questions about proposed APIs and their usage patterns\n- Understanding VS Code extension lifecycle, activation events, and packaging\n- Best practices for VS Code extension development architecture\n- API examples and code patterns for extension features\n- Troubleshooting extension-specific issues or API limitations\n\nWhen NOT to use this tool:\n- Creating simple standalone files or scripts unrelated to VS Code extensions\n- General programming questions not specific to VS Code extension development\n- Questions about using VS Code as an editor (user-facing features)\n- Non-extension related development tasks\n- File creation or editing that doesn't involve VS Code extension APIs\n\nCRITICAL usage guidelines:\n1. Always include specific API names, interfaces, or concepts in your query\n2. Mention the extension feature you're trying to implement\n3. Include context about proposed vs stable APIs when relevant\n4. Reference specific contribution points when asking about extension manifest\n5. Be specific about the VS Code version or API version when known\n\nScope: This tool is for EXTENSION DEVELOPMENT ONLY - building tools that extend VS Code itself, not for general file creation or non-extension programming tasks.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to search vscode documentation for. Should contain all relevant context."}},"required":["query"]},"tags":[]},{"name":"copilot_findFiles","toolReferenceName":"fileSearch","displayName":"Find Files","userDescription":"Find files by name using a glob pattern","modelDescription":"Search for files in the workspace by glob pattern. This only returns the paths of matching files. Use this tool when you know the exact filename pattern of the files you're searching for. Glob patterns match from the root of the workspace folder. Examples:\n- **/*.{js,ts} to match all js/ts files in the workspace.\n- src/** to match all files under the top-level src folder.\n- **/foo/**/*.js to match all js files under any foo folder in the workspace.\n\nIn a multi-root workspace, you can scope the search to a specific workspace folder by using the absolute path to the folder as the query, e.g. /path/to/folder/**/*.ts.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search for files with names or paths matching this glob pattern. Can also be an absolute path to a workspace folder to scope the search in a multi-root workspace."},"maxResults":{"type":"number","description":"The maximum number of results to return. Do not use this unless necessary, it can slow things down. By default, only some matches are returned. If you use this and don't see what you're looking for, you can try again with a more specific query or a larger maxResults."}},"required":["query"]}},{"name":"copilot_findTextInFiles","toolReferenceName":"textSearch","displayName":"Find Text In Files","userDescription":"Search for text in files by regular expression","modelDescription":"Do a fast text search in the workspace. Use this tool when you want to search with an exact string or regex. If you are not sure what words will appear in the workspace, prefer using regex patterns with alternation (|) or character classes to search for multiple potential words at once instead of making separate searches. For example, use 'function|method|procedure' to look for all of those words at once. Use includePattern to search within files matching a specific pattern, or in a specific file, using a relative path. Use 'includeIgnoredFiles' to include files normally ignored by .gitignore, other ignore files, and `files.exclude` and `search.exclude` settings. Warning: using this may cause the search to be slower, only set it when you want to search in ignored folders like node_modules or build outputs. Use this tool when you want to see an overview of a particular file, instead of using read_file many times to look for code within a file.\n\nIn a multi-root workspace, you can scope the search to a specific workspace folder by using the absolute path to the folder as the includePattern, e.g. /path/to/folder.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The pattern to search for in files in the workspace. Use regex with alternation (e.g., 'word1|word2|word3') or character classes to find multiple potential words in a single search. Be sure to set the isRegexp property properly to declare whether it's a regex or plain text pattern. Is case-insensitive."},"isRegexp":{"type":"boolean","description":"Whether the pattern is a regex."},"includePattern":{"type":"string","description":"Search files matching this glob pattern. Will be applied to the relative path of files within the workspace. To search recursively inside a folder, use a proper glob pattern like \"src/folder/**\". Do not use | in includePattern. Can also be an absolute path to a workspace folder to scope the search in a multi-root workspace."},"maxResults":{"type":"number","description":"The maximum number of results to return. Do not use this unless necessary, it can slow things down. By default, only some matches are returned. If you use this and don't see what you're looking for, you can try again with a more specific query or a larger maxResults."},"includeIgnoredFiles":{"type":"boolean","description":"Whether to include files that would normally be ignored according to .gitignore, other ignore files and `files.exclude` and `search.exclude` settings. Warning: using this may cause the search to be slower. Only set it when you want to search in ignored folders like node_modules or build outputs."}},"required":["query","isRegexp"]}},{"name":"copilot_applyPatch","displayName":"Apply Patch","toolReferenceName":"applyPatch","userDescription":"Edit text files in the workspace","modelDescription":"Edit text files. Do not use this tool to edit Jupyter notebooks. `apply_patch` allows you to execute a diff/patch against a text file, but the format of the diff specification is unique to this task, so pay careful attention to these instructions. To use the `apply_patch` command, you should pass a message of the following structure as \"input\":\n\n*** Begin Patch\n[YOUR_PATCH]\n*** End Patch\n\nWhere [YOUR_PATCH] is the actual content of your patch, specified in the following V4A diff format.\n\n*** [ACTION] File: [/absolute/path/to/file] -> ACTION can be one of Add, Update, or Delete.\nAn example of a message that you might pass as \"input\" to this function, in order to apply a patch, is shown below.\n\n*** Begin Patch\n*** Update File: /Users/someone/pygorithm/searching/binary_search.py\n@@class BaseClass\n@@ def search():\n- pass\n+ raise NotImplementedError()\n\n@@class Subclass\n@@ def search():\n- pass\n+ raise NotImplementedError()\n\n*** End Patch\nDo not use line numbers in this diff format.","inputSchema":{"type":"object","properties":{"input":{"type":"string","description":"The edit patch to apply."},"explanation":{"type":"string","description":"A short description of what the tool call is aiming to achieve."}},"required":["input","explanation"]}},{"name":"copilot_readFile","toolReferenceName":"readFile","legacyToolReferenceFullNames":["search/readFile"],"displayName":"Read File","userDescription":"Read the contents of a file","modelDescription":"Read the contents of a file.\n\nYou must specify the line range you're interested in. Line numbers are 1-indexed. If the file contents returned are insufficient for your task, you may call this tool again to retrieve more content. Prefer reading larger ranges over doing many small reads. Binary files use startLine/endLine as byte offsets.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"filePath":{"description":"The absolute path of the file to read.","type":"string"},"startLine":{"type":"number","description":"The line number to start reading from, 1-based."},"endLine":{"type":"number","description":"The inclusive line number to end reading at, 1-based."}},"required":["filePath","startLine","endLine"]}},{"name":"copilot_viewImage","toolReferenceName":"viewImage","displayName":"View Image","userDescription":"View the contents of an image file","when":"config.github.copilot.chat.tools.viewImage.enabled","modelDescription":"View the contents of an image file. Use this instead of read_file for supported image files such as png, jpg, jpeg, gif, and webp. The tool returns the image directly to multimodal models and does not take line ranges or offsets.","inputSchema":{"type":"object","properties":{"filePath":{"description":"The absolute path of the image file to view.","type":"string"}},"required":["filePath"]}},{"name":"copilot_listDirectory","toolReferenceName":"listDirectory","displayName":"List Dir","userDescription":"List the contents of a directory","modelDescription":"List the contents of a directory. Result will have the name of the child. If the name ends in /, it's a folder, otherwise a file","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"The absolute path to the directory to list."}},"required":["path"]}},{"name":"copilot_getErrors","displayName":"Get Problems","toolReferenceName":"problems","legacyToolReferenceFullNames":["problems"],"icon":"$(error)","userDescription":"Check errors for a particular file","modelDescription":"Get any compile or lint errors in a specific file or across all files. If the user mentions errors or problems in a file, they may be referring to these. Use the tool to see the same errors that the user is seeing. If the user asks you to analyze all errors, or does not specify a file, use this tool to gather errors for all files. Also use this tool after editing a file to validate the change.","tags":[],"inputSchema":{"type":"object","properties":{"filePaths":{"description":"The absolute paths to the files or folders to check for errors. Omit 'filePaths' when retrieving all errors.","type":"array","items":{"type":"string"}}}}},{"name":"copilot_readProjectStructure","displayName":"Project Structure","modelDescription":"Get a file tree representation of the workspace.","tags":[]},{"name":"copilot_getChangedFiles","displayName":"Git Changes","toolReferenceName":"changes","legacyToolReferenceFullNames":["changes"],"icon":"$(diff)","userDescription":"Get diffs of changed files","modelDescription":"Get git diffs of current file changes in a git repository. Don't forget that you can use run_in_terminal to run git commands in a terminal as well.","when":"config.github.copilot.chat.getChangedFilesTool.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"repositoryPath":{"type":"string","description":"The absolute path to the git repository to look for changes in. If not provided, the active git repository will be used."},"sourceControlState":{"type":"array","items":{"type":"string","enum":["staged","unstaged","merge-conflicts"]},"description":"The kinds of git state to filter by. Allowed values are: 'staged', 'unstaged', and 'merge-conflicts'. If not provided, all states will be included."}}}},{"name":"copilot_createNewWorkspace","displayName":"Create New Workspace","toolReferenceName":"newWorkspace","legacyToolReferenceFullNames":["new/newWorkspace"],"icon":"$(new-folder)","userDescription":"Scaffold a new workspace in VS Code","when":"config.github.copilot.chat.newWorkspaceCreation.enabled","modelDescription":"Get comprehensive setup steps to help the user create complete project structures in a VS Code workspace. This tool is designed for full project initialization and scaffolding, not for creating individual files.\n\nWhen to use this tool:\n- User wants to create a new complete project from scratch\n- Setting up entire project frameworks (TypeScript projects, React apps, Node.js servers, etc.)\n- Initializing Model Context Protocol (MCP) servers with full structure\n- Creating VS Code extensions with proper scaffolding\n- Setting up Next.js, Vite, or other framework-based projects\n- User asks for \"new project\", \"create a workspace\", \"set up a [framework] project\"\n- Need to establish complete development environment with dependencies, config files, and folder structure\n\nWhen NOT to use this tool:\n- Creating single files or small code snippets\n- Adding individual files to existing projects\n- Making modifications to existing codebases\n- User asks to \"create a file\" or \"add a component\"\n- Simple code examples or demonstrations\n- Debugging or fixing existing code\n\nThis tool provides complete project setup including:\n- Folder structure creation\n- Package.json and dependency management\n- Configuration files (tsconfig, eslint, etc.)\n- Initial boilerplate code\n- Development environment setup\n- Build and run instructions\n\nUse other file creation tools for individual files within existing projects.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to use to generate the new workspace. This should be a clear and concise description of the workspace the user wants to create."}},"required":["query"]},"tags":["enable_other_tool_install_extension"]},{"name":"copilot_installExtension","displayName":"Install Extension in VS Code","when":"!config.github.copilot.chat.installExtensionSkill.enabled","toolReferenceName":"installExtension","legacyToolReferenceFullNames":["new/installExtension"],"modelDescription":"Install an extension in VS Code. Use this tool to install an extension in Visual Studio Code as part of a new workspace creation process only.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the extension to install. This should be in the format .."},"name":{"type":"string","description":"The name of the extension to install. This should be a clear and concise description of the extension."}},"required":["id","name"]},"tags":[]},{"name":"copilot_runVscodeCommand","displayName":"Run VS Code Command","toolReferenceName":"runCommand","legacyToolReferenceFullNames":["new/runVscodeCommand"],"modelDescription":"Run a command in VS Code. Use this tool to run a command in Visual Studio Code as part of a new workspace creation process only.","inputSchema":{"type":"object","properties":{"commandId":{"type":"string","description":"The ID of the command to execute. This should be in the format ."},"name":{"type":"string","description":"The name of the command to execute. This should be a clear and concise description of the command."},"args":{"type":"array","description":"The arguments to pass to the command. This should be an array of strings.","items":{"type":"string"}},"skipCheck":{"type":"boolean","description":"If true, skip checking whether the command exists before executing it."}},"required":["commandId","name"]},"tags":[]},{"name":"copilot_createNewJupyterNotebook","displayName":"Create New Jupyter Notebook","icon":"$(notebook)","toolReferenceName":"createJupyterNotebook","legacyToolReferenceFullNames":["newJupyterNotebook"],"modelDescription":"Generates a new Jupyter Notebook (.ipynb) in VS Code. Jupyter Notebooks are interactive documents commonly used for data exploration, analysis, visualization, and combining code with narrative text. Prefer creating plain Python files or similar unless a user explicitly requests creating a new Jupyter Notebook or already has a Jupyter Notebook opened or exists in the workspace.","userDescription":"Create a new Jupyter Notebook","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to use to generate the jupyter notebook. This should be a clear and concise description of the notebook the user wants to create."}},"required":["query"]},"tags":[]},{"name":"copilot_insertEdit","toolReferenceName":"insertEdit","displayName":"Edit File","modelDescription":"Insert new code into an existing file in the workspace. Use this tool once per file that needs to be modified, even if there are multiple changes for a file. Generate the \"explanation\" property first.\nThe system is very smart and can understand how to apply your edits to the files, you just need to provide minimal hints.\nAvoid repeating existing code, instead use comments to represent regions of unchanged code. Be as concise as possible. For example:\n// ...existing code...\n{ changed code }\n// ...existing code...\n{ changed code }\n// ...existing code...\n\nHere is an example of how you should use format an edit to an existing Person class:\nclass Person {\n\t// ...existing code...\n\tage: number;\n\t// ...existing code...\n\tgetAge() {\n\treturn this.age;\n\t}\n}","tags":[],"inputSchema":{"type":"object","properties":{"explanation":{"type":"string","description":"A short explanation of the edit being made."},"filePath":{"type":"string","description":"An absolute path to the file to edit."},"code":{"type":"string","description":"The code change to apply to the file.\nThe system is very smart and can understand how to apply your edits to the files, you just need to provide minimal hints.\nAvoid repeating existing code, instead use comments to represent regions of unchanged code. Be as concise as possible. For example:\n// ...existing code...\n{ changed code }\n// ...existing code...\n{ changed code }\n// ...existing code...\n\nHere is an example of how you should use format an edit to an existing Person class:\nclass Person {\n\t// ...existing code...\n\tage: number;\n\t// ...existing code...\n\tgetAge() {\n\t\treturn this.age;\n\t}\n}"}},"required":["explanation","filePath","code"]}},{"name":"copilot_createFile","toolReferenceName":"createFile","legacyToolReferenceFullNames":["createFile"],"displayName":"Create File","userDescription":"Create new files","modelDescription":"This is a tool for creating a new file in the workspace. The file will be created with the specified content. The directory will be created if it does not already exist. Never use this tool to edit a file that already exists.","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"The absolute path to the file to create."},"content":{"type":"string","description":"The content to write to the file."}},"required":["filePath","content"]}},{"name":"copilot_createDirectory","toolReferenceName":"createDirectory","legacyToolReferenceFullNames":["createDirectory"],"displayName":"Create Directory","userDescription":"Create new directories in your workspace","modelDescription":"Create a new directory structure in the workspace. Will recursively create all directories in the path, like mkdir -p. You do not need to use this tool before using create_file, that tool will automatically create the needed directories.","tags":[],"inputSchema":{"type":"object","properties":{"dirPath":{"type":"string","description":"The absolute path to the directory to create."}},"required":["dirPath"]}},{"name":"copilot_replaceString","toolReferenceName":"replaceString","displayName":"Replace String in File","modelDescription":"This is a tool for making edits in an existing file in the workspace. For moving or renaming files, use run in terminal tool with the 'mv' command instead. For larger edits, split them into smaller edits and call the edit tool multiple times to ensure accuracy. Before editing, always ensure you have the context to understand the file's contents and context. To edit a file, provide: 1) filePath (absolute path), 2) oldString (MUST be the exact literal text to replace including all whitespace, indentation, newlines, and surrounding code etc), and 3) newString (MUST be the exact literal text to replace \\`oldString\\` with (also including all whitespace, indentation, newlines, and surrounding code etc.). Ensure the resulting code is correct and idiomatic.). Each use of this tool replaces exactly ONE occurrence of oldString.\n\nCRITICAL for \\`oldString\\`: Must uniquely identify the single instance to change. Include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string matches multiple locations, or does not match exactly, the tool will fail. Never use 'Lines 123-456 omitted' from summarized documents or ...existing code... comments in the oldString or newString.","when":"!config.github.copilot.chat.disableReplaceTool","inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the file to edit."},"oldString":{"type":"string","description":"The exact literal text to replace, preferably unescaped. For single replacements (default), include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. For multiple replacements, specify expected_replacements parameter. If this string is not the exact literal text (i.e. you escaped it) or does not match exactly, the tool will fail."},"newString":{"type":"string","description":"The exact literal text to replace `old_string` with, preferably unescaped. Provide the EXACT text. Ensure the resulting code is correct and idiomatic."}},"required":["filePath","oldString","newString"]}},{"name":"copilot_multiReplaceString","toolReferenceName":"multiReplaceString","displayName":"Multi-Replace String in Files","modelDescription":"This tool allows you to apply multiple replace_string_in_file operations in a single call, which is more efficient than calling replace_string_in_file multiple times. It takes an array of replacement operations and applies them sequentially. Each replacement operation has the same parameters as replace_string_in_file: filePath, oldString, newString, and explanation. This tool is ideal when you need to make multiple edits across different files or multiple edits in the same file. The tool will provide a summary of successful and failed operations.","when":"!config.github.copilot.chat.disableReplaceTool","inputSchema":{"type":"object","properties":{"explanation":{"type":"string","description":"A brief explanation of what the multi-replace operation will accomplish."},"replacements":{"type":"array","description":"An array of replacement operations to apply sequentially.","items":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the file to edit."},"oldString":{"type":"string","description":"The exact literal text to replace, preferably unescaped. Include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string is not the exact literal text or does not match exactly, this replacement will fail."},"newString":{"type":"string","description":"The exact literal text to replace `oldString` with, preferably unescaped. Provide the EXACT text. Ensure the resulting code is correct and idiomatic."}},"required":["filePath","oldString","newString"]},"minItems":1}},"required":["explanation","replacements"]}},{"name":"copilot_editNotebook","toolReferenceName":"editNotebook","icon":"$(pencil)","displayName":"Edit Notebook","userDescription":"Edit a notebook file in the workspace","modelDescription":"This is a tool for editing an existing Notebook file in the workspace. Generate the \"explanation\" property first.\nThe system is very smart and can understand how to apply your edits to the notebooks.\nWhen updating the content of an existing cell, ensure newCode preserves whitespace and indentation exactly and does NOT include any code markers such as (...existing code...).","tags":["enable_other_tool_copilot_getNotebookSummary"],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file to edit, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1."},"cellId":{"type":"string","description":"Id of the cell that needs to be deleted or edited. Use the value `TOP`, `BOTTOM` when inserting a cell at the top or bottom of the notebook, else provide the id of the cell after which a new cell is to be inserted. Remember, if a cellId is provided and editType=insert, then a cell will be inserted after the cell with the provided cellId."},"newCode":{"anyOf":[{"type":"string","description":"The code for the new or existing cell to be edited. Code should not be wrapped within tags. Do NOT include code markers such as (...existing code...) to indicate existing code."},{"type":"array","items":{"type":"string","description":"The code for the new or existing cell to be edited. Code should not be wrapped within tags"}}]},"language":{"type":"string","description":"The language of the cell. `markdown`, `python`, `javascript`, `julia`, etc."},"editType":{"type":"string","enum":["insert","delete","edit"],"description":"The operation peformed on the cell, whether `insert`, `delete` or `edit`.\nUse the `editType` field to specify the operation: `insert` to add a new cell, `edit` to modify an existing cell's content, and `delete` to remove a cell."}},"required":["filePath","editType","cellId"]}},{"name":"copilot_runNotebookCell","displayName":"Run Notebook Cell","toolReferenceName":"runNotebookCell","legacyToolReferenceFullNames":["runNotebooks/runCell"],"icon":"$(play)","modelDescription":"This is a tool for running a code cell in a notebook file directly in the notebook editor. The output from the execution will be returned. Code cells should be run as they are added or edited when working through a problem to bring the kernel state up to date and ensure the code executes successfully. Code cells are ready to run and don't require any pre-processing. If asked to run the first cell in a notebook, you should run the first code cell since markdown cells cannot be executed. NOTE: Avoid executing Markdown cells or providing Markdown cell IDs, as Markdown cells cannot be executed.","userDescription":"Trigger the execution of a cell in a notebook file","tags":["enable_other_tool_copilot_getNotebookSummary"],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"},"reason":{"type":"string","description":"An optional explanation of why the cell is being run. This will be shown to the user before the tool is run and is not necessary if it's self-explanatory."},"cellId":{"type":"string","description":"The ID for the code cell to execute. Avoid providing markdown cell IDs as nothing will be executed."},"continueOnError":{"type":"boolean","description":"Whether or not execution should continue for remaining cells if an error is encountered. Default to false unless instructed otherwise."}},"required":["filePath","cellId"]}},{"name":"copilot_getNotebookSummary","toolReferenceName":"getNotebookSummary","legacyToolReferenceFullNames":["runNotebooks/getNotebookSummary"],"displayName":"Get the structure of a notebook","modelDescription":"This is a tool returns the list of the Notebook cells along with the id, cell types, line ranges, language, execution information and output mime types for each cell. This is useful to get Cell Ids when executing a notebook or determine what cells have been executed and what order, or what cells have outputs. If required to read contents of a cell use this to determine the line range of a cells, and then use read_file tool to read a specific line range. Requery this tool if the contents of the notebook change.","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"}},"required":["filePath"]}},{"name":"copilot_readNotebookCellOutput","displayName":"Get Notebook Cell Output","toolReferenceName":"readNotebookCellOutput","legacyToolReferenceFullNames":["runNotebooks/readNotebookCellOutput"],"icon":"$(notebook-render-output)","modelDescription":"This tool will retrieve the output for a notebook cell from its most recent execution or restored from disk. The cell may have output even when it has not been run in the current kernel session. This tool has a higher token limit for output length than the runNotebookCell tool.","userDescription":"Read the output of a previously executed cell","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"},"cellId":{"type":"string","description":"The ID of the cell for which output should be retrieved."}},"required":["filePath","cellId"]}},{"name":"copilot_fetchWebPage","displayName":"Fetch Web Page","toolReferenceName":"fetch","legacyToolReferenceFullNames":["fetch"],"when":"!isWeb","icon":"$(globe)","userDescription":"Fetch the main content from a web page. You should include the URL of the page you want to fetch.","modelDescription":"Fetches the main content from a web page. This tool is useful for summarizing or analyzing the content of a webpage. You should use this tool when you think the user is looking for information from a specific webpage.","tags":[],"inputSchema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"},"description":"An array of URLs to fetch content from."},"query":{"type":"string","description":"The query to search for in the web page's content. This should be a clear and concise description of the content you want to find."}},"required":["urls","query"]}},{"name":"copilot_findTestFiles","displayName":"Find Test Files","icon":"$(beaker)","canBeReferencedInPrompt":false,"toolReferenceName":"findTestFiles","userDescription":"For a source code file, find the file that contains the tests. For a test file, find the file that contains the code under test","modelDescription":"For a source code file, find the file that contains the tests. For a test file find the file that contains the code under test.","tags":[],"inputSchema":{"type":"object","properties":{"filePaths":{"type":"array","items":{"type":"string"}}},"required":["filePaths"]}},{"name":"copilot_githubRepo","toolReferenceName":"githubRepo","legacyToolReferenceFullNames":["githubRepo"],"displayName":"Semantic Search GitHub Repository","modelDescription":"Searches a GitHub repository for relevant source code snippets. Only use this tool if the user is very clearly asking for code snippets from a specific GitHub repository. Do not use this tool for Github repos that the user has open in their workspace.","userDescription":"Semantic Search a GitHub repository for relevant source code snippets. You can specify a repository using `owner/repo`","icon":"$(repo)","when":"!config.github.copilot.chat.githubMcpServer.enabled","inputSchema":{"type":"object","properties":{"repo":{"type":"string","description":"The name of the Github repository to search for code in. Should must be formatted as '/'."},"query":{"type":"string","description":"The query to search for repo. Should contain all relevant context."}},"required":["repo","query"]}},{"name":"copilot_githubTextSearch","legacyToolReferenceFullNames":["githubTextSearch"],"toolReferenceName":"githubTextSearch","displayName":"GitHub Text Search","modelDescription":"Lexically searches a GitHub repository or organization for files containing specific keywords or code patterns. Use this when looking for exact strings, function names, or identifiers in a GitHub repo or org. Unlike the semantic search tool, this uses keyword matching rather than meaning-based search.","userDescription":"Text search a GitHub repository or organization for files containing specific keywords or code patterns.","icon":"$(search)","inputSchema":{"type":"object","properties":{"scope":{"type":"string","description":"The GitHub scope to search. Use 'owner/repo' to search a single repository, or an org name (no slash) to search across an entire organization."},"query":{"type":"string","description":"The keyword search query. Supports GitHub code search syntax such as 'language:typescript', 'extension:ts', 'path:src/', etc."},"maxResults":{"type":"number","description":"Optional. The maximum number of search results to return. Defaults to 100."}},"required":["scope","query"]}},{"name":"copilot_switchAgent","toolReferenceName":"switchAgent","displayName":"Switch Agent","userDescription":"Switch to a different agent mode. Currently only the Plan agent is supported.","modelDescription":"Switch to the Plan agent to align on approach before implementing. Plan will explore the codebase, gathers context, clarifies requirements with the user, and creates an actionable implementation plan.\n\nSWITCH TO PLAN when ANY of these apply:\n1. Adding new functionality - where should it go? What patterns to follow?\n2. Multiple valid approaches exist - choosing between technologies, patterns, or strategies\n3. Modifying existing behavior - unclear what should change or what side effects exist\n4. Architectural decisions required - choosing between design patterns or integration approaches\n5. Changes span multiple files - refactoring, migrations, or cross-cutting concerns\n6. Requirements are underspecified - need to explore before understanding scope\n\nEXAMPLES:\n✓ Switch to Plan:\n- \"Add authentication to the app\" → architectural decisions needed (session vs JWT, middleware)\n- \"Refactor this data flow\" → must understand component dependencies first\n- \"Migrate from X to Y\" → requires understanding current structure\n\n✗ Do NOT switch to Plan:\n- User attached a detailed spec, plan, or requirements doc → context already provided\n- You already started editing files in this conversation → too late to switch\n- Single obvious change like fixing a typo or renaming → just do it\n- User gave explicit step-by-step instructions → follow them directly","when":"config.github.copilot.chat.switchAgent.enabled","icon":"$(arrow-swap)","inputSchema":{"type":"object","properties":{"agentName":{"type":"string","description":"The name of the agent to switch to. Currently only 'Plan' is supported.","enum":["Plan"]}},"required":["agentName"]}},{"name":"copilot_memory","displayName":"Memory","toolReferenceName":"memory","userDescription":"Manage persistent memory across conversations","modelDescription":"Manage a persistent memory system with three scopes for storing notes and information across conversations.\n\nMemory is organized under /memories/ with three tiers:\n- `/memories/` — User memory: persistent notes that survive across all workspaces and conversations. Store preferences, patterns, and general insights here.\n- `/memories/session/` — Session memory: notes scoped to the current conversation. Store task-specific context and in-progress notes here. Cleared after the conversation ends.\n- `/memories/repo/` — Repository memory: repository-scoped notes stored locally in the workspace. Store codebase conventions, build commands, project structure facts, and verified practices here.\n\nIMPORTANT: Before creating new memory files, first view the /memories/ directory to understand what already exists. This helps avoid duplicates and maintain organized notes.\n\nCommands:\n- `view`: View contents of a file or list directory contents. Can be used on files or directories (e.g., \"/memories/\" to see all top-level items).\n- `create`: Create a new file at the specified path with the given content. Fails if the file already exists.\n- `str_replace`: Replace an exact string in a file with a new string. The old_str must appear exactly once in the file.\n- `insert`: Insert text at a specific line number in a file. Line 0 inserts at the beginning.\n- `delete`: Delete a file or directory (and all its contents).\n- `rename`: Rename or move a file or directory from path to new_path. Cannot rename across scopes.","inputSchema":{"type":"object","properties":{"command":{"type":"string","enum":["view","create","str_replace","insert","delete","rename"],"description":"The operation to perform on the memory file system."},"path":{"type":"string","description":"The absolute path to the file or directory inside /memories/, e.g. \"/memories/notes.md\". Used by all commands except `rename`."},"file_text":{"type":"string","description":"Required for `create`. The content of the file to create."},"old_str":{"type":"string","description":"Required for `str_replace`. The exact string in the file to replace. Must appear exactly once."},"new_str":{"type":"string","description":"Required for `str_replace`. The new string to replace old_str with."},"insert_line":{"type":"number","description":"Required for `insert`. The 0-based line number to insert text at. 0 inserts before the first line."},"insert_text":{"type":"string","description":"Required for `insert`. The text to insert at the specified line."},"view_range":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2,"description":"Optional for `view`. A two-element array [start_line, end_line] (1-indexed) to view a specific range of lines."},"old_path":{"type":"string","description":"Required for `rename`. The current path of the file or directory to rename."},"new_path":{"type":"string","description":"Required for `rename`. The new path for the file or directory."}},"required":["command"]}},{"name":"copilot_resolveMemoryFileUri","displayName":"Resolve Memory File URI","toolReferenceName":"resolveMemoryFileUri","userDescription":"Resolve a memory file path to its actual URI","modelDescription":"Resolve a memory file path (like /memories/session/plan.md or /memories/repo/notes.md) to its fully qualified URI. Use this when you need the actual URI for a memory file, for example to pass it to setArtifacts. The path must start with /memories/.","tags":[],"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"The memory file path to resolve (e.g. /memories/session/plan.md)."}},"required":["path"]}},{"name":"copilot_editFiles","modelDescription":"This is a placeholder tool, do not use","userDescription":"Edit files","icon":"$(pencil)","displayName":"Edit Files","toolReferenceName":"editFiles","legacyToolReferenceFullNames":["editFiles"]},{"name":"copilot_sessionStoreSql","displayName":"Session Store SQL","toolReferenceName":"sessionStoreSql","when":"github.copilot.sessionSearch.enabled","userDescription":"Query your Copilot session history using SQL","modelDescription":"Query the local session store containing history from past coding sessions. Uses SQLite syntax (NOT DuckDB or Postgres). SQL queries are read-only — only SELECT and WITH are allowed. Use `datetime('now', '-1 day')` for date math (NOT `now() - INTERVAL '1 day'`), FTS5 `MATCH` for text search.\n\nTables: `sessions`, `turns`, `session_files`, `session_refs`, `checkpoints`, `search_index`. For column details and query patterns, use the **chronicle** skill.\n\nActions: 'query' (execute SQL — supports JOINs, FTS5 MATCH, aggregations), 'reindex' (rebuild index from debug logs).","tags":[],"canBeReferencedInPrompt":false,"inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["query","reindex"],"description":"The action to perform. 'query' (default) executes a SQL query. 'reindex' rebuilds the local session index and syncs to cloud if enabled."},"query":{"type":"string","description":"A single read-only SQL query to execute. Required when action is 'query'. Supports SELECT, WITH, JOINs, aggregations, and FTS5 MATCH. Only one statement per call — do not combine multiple queries with semicolons."},"force":{"type":"boolean","description":"When true with action 'reindex', re-processes all sessions including already-indexed ones. Default false (skips already-indexed sessions)."},"description":{"type":"string","description":"A 2-5 word summary of what this call does (e.g. 'Recent sessions overview', 'Generate standup', 'Reindex sessions')."},"subcommand":{"type":"string","enum":["standup","tips","cost-tips","search","improve","reindex"],"description":"The chronicle subcommand that triggered this call (e.g. 'tips' for /chronicle tips). Used for telemetry attribution only — pass this whenever the call originates from a /chronicle slash command."}},"required":["description"]}}],"languageModelToolSets":[{"name":"edit","description":"Edit files in your workspace","icon":"$(pencil)","tools":["createDirectory","createFile","createJupyterNotebook","editFiles","editNotebook","rename"]},{"name":"execute","description":"","tools":["runNotebookCell","executionSubagent"]},{"name":"read","description":"Read files in your workspace","icon":"$(eye)","tools":["getNotebookSummary","problems","readFile","viewImage","readNotebookCellOutput","skill"]},{"name":"search","description":"Search files in your workspace","icon":"$(search)","tools":["changes","codebase","fileSearch","listDirectory","textSearch","searchSubagent","usages"]},{"name":"vscode","description":"","tools":["installExtension","memory","newWorkspace","resolveMemoryFileUri","runCommand","switchAgent","toolSearch","vscodeAPI"]},{"name":"web","description":"Fetch information from the web","icon":"$(globe)","tools":["fetch","githubRepo","githubTextSearch"]}],"chatParticipants":[{"id":"github.copilot.default","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["panel"],"modes":["ask"],"disambiguation":[{"category":"generate_code_sample","description":"The user wants to generate code snippets without referencing the contents of the current workspace. This category does not include generating entire projects.","examples":["Write an example of computing a SHA256 hash."]},{"category":"add_feature_to_file","description":"The user wants to change code in a file that is provided in their request, without referencing the contents of the current workspace. This category does not include generating entire projects.","examples":["Add a refresh button to the table widget."]},{"category":"question_about_specific_files","description":"The user has a question about a specific file or code snippet that they have provided as part of their query, and the question does not require additional workspace context to answer.","examples":["What does this file do?"]}],"commands":[{"name":"explain","description":"Explain how the code in your active editor works"},{"name":"review","description":"Review the selected code in your active editor","when":"github.copilot.advanced.review.intent"},{"name":"tests","description":"Generate unit tests for the selected code","disambiguation":[{"category":"create_tests","description":"The user wants to generate unit tests.","examples":["Generate tests for my selection using pytest."]}]},{"name":"fix","description":"Propose a fix for the problems in the selected code","sampleRequest":"There is a problem in this code. Rewrite the code to show it with the bug fixed."},{"name":"new","description":"Scaffold code for a new file or project in a workspace","sampleRequest":"Create a RESTful API server using typescript","isSticky":true,"disambiguation":[{"category":"create_new_workspace_or_extension","description":"The user wants to create a complete Visual Studio Code workspace from scratch, such as a new application or a Visual Studio Code extension. Use this category only if the question relates to generating or creating new workspaces in Visual Studio Code. Do not use this category for updating existing code or generating sample code snippets","examples":["Scaffold a Node server.","Create a sample project which uses the fileSystemProvider API.","react application"]}]},{"name":"newNotebook","description":"Create a new Jupyter Notebook","sampleRequest":"How do I create a notebook to load data from a csv file?","disambiguation":[{"category":"create_jupyter_notebook","description":"The user wants to create a new Jupyter notebook in Visual Studio Code.","examples":["Create a notebook to analyze this CSV file."]}]},{"name":"semanticSearch","description":"Find relevant code to your query","sampleRequest":"Where is the toolbar code?","when":"config.github.copilot.semanticSearch.enabled"},{"name":"setupTests","description":"Set up tests in your project (Experimental)","sampleRequest":"add playwright tests to my project","when":"config.github.copilot.chat.setupTests.enabled","disambiguation":[{"category":"set_up_tests","description":"The user wants to configure project test setup, framework, or test runner. The user does not want to fix their existing tests.","examples":["Set up tests for this project."]}]}]},{"id":"github.copilot.editingSession","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Edit files in your workspace","isDefault":true,"locations":["panel"],"modes":["edit"]},{"id":"github.copilot.editingSessionEditor","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Edit files in your workspace","isDefault":true,"locations":["editor"],"commands":[]},{"id":"github.copilot.editsAgent","name":"agent","fullName":"GitHub Copilot","description":"Edit files in your workspace in agent mode","locations":["panel"],"modes":["agent"],"isEngine":true,"isDefault":true,"isAgent":true,"when":"config.chat.agent.enabled","commands":[{"name":"error","description":"Make a model request which will result in an error","when":"github.copilot.chat.debug"},{"name":"compact","description":"Free up context by compacting the conversation history. Optionally include extra instructions for compaction."},{"name":"explain","description":"Explain how the code in your active editor works"},{"name":"review","description":"Review the selected code in your active editor","when":"github.copilot.advanced.review.intent"},{"name":"tests","description":"Generate unit tests for the selected code","disambiguation":[{"category":"create_tests","description":"The user wants to generate unit tests.","examples":["Generate tests for my selection using pytest."]}]},{"name":"fix","description":"Propose a fix for the problems in the selected code","sampleRequest":"There is a problem in this code. Rewrite the code to show it with the bug fixed."},{"name":"new","description":"Scaffold code for a new file or project in a workspace","sampleRequest":"Create a RESTful API server using typescript","isSticky":true,"disambiguation":[{"category":"create_new_workspace_or_extension","description":"The user wants to create a complete Visual Studio Code workspace from scratch, such as a new application or a Visual Studio Code extension. Use this category only if the question relates to generating or creating new workspaces in Visual Studio Code. Do not use this category for updating existing code or generating sample code snippets","examples":["Scaffold a Node server.","Create a sample project which uses the fileSystemProvider API.","react application"]}]},{"name":"newNotebook","description":"Create a new Jupyter Notebook","sampleRequest":"How do I create a notebook to load data from a csv file?","disambiguation":[{"category":"create_jupyter_notebook","description":"The user wants to create a new Jupyter notebook in Visual Studio Code.","examples":["Create a notebook to analyze this CSV file."]}]},{"name":"semanticSearch","description":"Find relevant code to your query","sampleRequest":"Where is the toolbar code?","when":"config.github.copilot.semanticSearch.enabled"},{"name":"setupTests","description":"Set up tests in your project (Experimental)","sampleRequest":"add playwright tests to my project","when":"config.github.copilot.chat.setupTests.enabled","disambiguation":[{"category":"set_up_tests","description":"The user wants to configure project test setup, framework, or test runner. The user does not want to fix their existing tests.","examples":["Set up tests for this project."]}]}]},{"id":"github.copilot.notebook","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["notebook"],"when":"!config.inlineChat.notebookAgent","commands":[{"name":"fix","description":"Propose a fix for the problems in the selected code"},{"name":"explain","description":"Explain how the code in your active editor works"}]},{"id":"github.copilot.notebookEditorAgent","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["notebook"],"when":"config.inlineChat.notebookAgent","commands":[{"name":"fix","description":"Propose a fix for the problems in the selected code"},{"name":"explain","description":"Explain how the code in your active editor works"}]},{"id":"github.copilot.vscode","name":"vscode","fullName":"VS Code","description":"Ask questions about VS Code","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"What is the command to open the integrated terminal?","locations":["panel"],"disambiguation":[{"category":"vscode_configuration_questions","description":"The user wants to learn about, use, or configure the Visual Studio Code. Use this category if the users question is specifically about commands, settings, keybindings, extensions and other features available in Visual Studio Code. Do not use this category to answer questions about generating code or creating new projects including Visual Studio Code extensions.","examples":["Switch to light mode.","Keyboard shortcut to toggle terminal visibility.","Settings to enable minimap.","Whats new in the latest release?"]},{"category":"configure_python_environment","description":"The user wants to set up their Python environment.","examples":["Create a virtual environment for my project."]}],"commands":[{"name":"search","description":"Generate query parameters for workspace search","sampleRequest":"Search for 'foo' in all files under my 'src' directory"}]},{"id":"github.copilot.terminal","name":"terminal","fullName":"Terminal","description":"Ask about commands","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"How do I view all files within a directory including sub-directories?","isDefault":true,"locations":["terminal"],"commands":[{"name":"explain","description":"Explain something in the terminal","sampleRequest":"Explain the last command"}]},{"id":"github.copilot.terminalPanel","name":"terminal","fullName":"Terminal","description":"Ask how to do something in the terminal","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"How do I view all files within a directory including sub-directories?","locations":["panel"],"commands":[{"name":"explain","description":"Explain something in the terminal","sampleRequest":"Explain the last command","disambiguation":[{"category":"terminal_state_questions","description":"The user wants to learn about specific state such as the selection, command, or failed command in the integrated terminal in Visual Studio Code.","examples":["Why did the latest terminal command fail?"]}]}]}],"languageModelChatProviders":[{"vendor":"copilot","displayName":"Copilot"},{"vendor":"copilotcli","displayName":"Copilot CLI","when":"false"},{"vendor":"anthropic","displayName":"Anthropic","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for Anthropic","title":"API Key"}},"required":["apiKey"]}},{"vendor":"xai","displayName":"xAI","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for xAI","title":"API Key"}},"required":["apiKey"]}},{"vendor":"gemini","displayName":"Google","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for Google Gemini","title":"API Key"}},"required":["apiKey"]}},{"vendor":"openrouter","displayName":"OpenRouter","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for OpenRouter","title":"API Key"}},"required":["apiKey"]}},{"vendor":"openai","displayName":"OpenAI","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for OpenAI","title":"API Key"},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this provider group. When `true`, OpenAI Responses requests from this group do not send `previous_response_id`."}},"required":["apiKey"]}},{"vendor":"ollama","displayName":"Ollama (Deprecated)","deprecation":{"link":"vscode:extension/Ollama.ollama"},"configuration":{"type":"object","properties":{"url":{"type":"string","description":"The endpoint URL for the Ollama server","default":"http://localhost:11434","title":"URL"}},"required":["url"]}},{"vendor":"customoai","when":"productQualityType != 'stable'","displayName":"OpenAI Compatible (Deprecated)","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for the models","title":"API Key","markdownDeprecationMessage":"**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API — selectable per model via the `apiType` property."},"models":{"type":"array","markdownDeprecationMessage":"**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API — selectable per model via the `apiType` property.","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the custom OpenAI model"},"url":{"type":"string","markdownDescription":"URL endpoint for the custom OpenAI-compatible model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths including `/responses` or `/chat/completions` are respected."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"editTools":{"type":"array","description":"List of edit tools supported by the model. If this is not configured, the editor will try multiple edit tools and pick the best one.\n\n- 'find-replace': Find and replace text in a document.\n- 'multi-find-replace': Find and replace text in a document.\n- 'apply-patch': A file-oriented diff format used by some OpenAI models\n- 'code-rewrite': A general but slower editing tool that allows the model to rewrite and code snippet and provide only the replacement to the editor.","items":{"type":"string","enum":["find-replace","multi-find-replace","apply-patch","code-rewrite"]}},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}},{"vendor":"customendpoint","displayName":"Custom Endpoint","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"minLength":1,"description":"API key for the models","title":"API Key"},"apiType":{"type":"string","enum":["chat-completions","responses","messages"],"enumItemLabels":["Chat Completions","Responses","Messages"],"enumDescriptions":["Chat Completions API","Responses API","Messages API"],"default":"chat-completions","title":"API Type","markdownDescription":"Default request/response format for models in this group. Individual models can override this with their own `apiType` property; when both are unset the type is inferred from the URL path."},"models":{"type":"array","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the model"},"url":{"type":"string","pattern":"^https?://.+","patternErrorMessage":"URL must start with http:// or https://","markdownDescription":"URL endpoint for the model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths are respected: `/chat/completions`, `/responses`, and `/v1/messages` (Anthropic-compatible). Use the `apiType` property to override the request/response format independently of the URL."},"apiType":{"type":"string","enum":["chat-completions","responses","messages"],"enumItemLabels":["Chat Completions","Responses","Messages"],"enumDescriptions":["Chat Completions API","Responses API","Messages API"],"title":"API Type","markdownDescription":"Request/response format used to talk to this endpoint:\n- `chat-completions`: Chat Completions API (default).\n- `responses`: Responses API.\n- `messages`: Messages API.\n\nWhen omitted, falls back to the group-level `apiType`, then to the URL path."},"adaptiveThinking":{"type":"boolean","default":false,"markdownDescription":"Whether the Messages API model supports adaptive thinking. When enabled, requests use `thinking.type: \"adaptive\"`."},"minThinkingBudget":{"type":"integer","minimum":1,"markdownDescription":"Minimum thinking-token budget supported by a non-adaptive Messages API model. `maxThinkingBudget` must also be set."},"maxThinkingBudget":{"type":"integer","minimum":1,"markdownDescription":"Maximum thinking-token budget supported by a non-adaptive Messages API model. `minThinkingBudget` must also be set."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"editTools":{"type":"array","description":"List of edit tools supported by the model. If this is not configured, the editor will try multiple edit tools and pick the best one.\n\n- 'find-replace': Find and replace text in a document.\n- 'multi-find-replace': Find and replace text in a document.\n- 'apply-patch': A file-oriented diff format used by some OpenAI models\n- 'code-rewrite': A general but slower editing tool that allows the model to rewrite and code snippet and provide only the replacement to the editor.","items":{"type":"string","enum":["find-replace","multi-find-replace","apply-patch","code-rewrite"]}},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}},"modelOptions":{"type":"object","markdownDescription":"Sampling parameters to send with requests to this model. These override Copilot's defaults but are overridden by explicit per-request values. Set a property to `null` to omit it and use the model server's default.","properties":{"temperature":{"type":["number","null"],"minimum":0,"markdownDescription":"Sampling temperature. Set to `null` to omit the parameter."},"top_p":{"type":["number","null"],"minimum":0,"maximum":1,"markdownDescription":"Nucleus sampling probability. Set to `null` to omit the parameter."}},"additionalProperties":false}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}},{"vendor":"azure","displayName":"Azure","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for the models. If not set then Entra ID (Azure AD) authentication with your Microsoft account credentials will be used.","title":"API Key"},"models":{"type":"array","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the custom OpenAI model"},"url":{"type":"string","markdownDescription":"URL endpoint for the custom OpenAI-compatible model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths including `/responses` or `/chat/completions` are respected."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}}],"interactiveSession":[{"label":"GitHub Copilot","id":"copilot","icon":"","when":"!github.copilot.interactiveSession.disabled"}],"mcpServerDefinitionProviders":[{"id":"github","label":"GitHub"}],"viewsWelcome":[{"view":"debug","when":"github.copilot-chat.activated","contents":"Debug using a [terminal command](command:github.copilot.chat.startCopilotDebugCommand) or in an [interactive chat](command:workbench.action.chat.open?%7B%22query%22%3A%22%40vscode%20%2FstartDebugging%20%22%2C%22isPartialQuery%22%3Atrue%7D)."}],"chatViewsWelcome":[{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your Copilot subscription has expired.\n\n[Review Copilot Settings](https://github.com/settings/copilot?editor=vscode)","when":"github.copilot.interactiveSession.individual.expired && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Contact your GitHub organization administrator to enable Copilot.","when":"github.copilot.interactiveSession.enterprise.disabled && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub Copilot servers could not be reached. Please check your internet connection and try again.\n\n[Retry Connection](command:github.copilot.refreshToken)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.offline && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your GitHub token is invalid. Please sign in again to refresh your authentication.\n\n[Sign In](command:workbench.action.chat.triggerSetupForceSignIn)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.invalidToken && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your account has exceeded GitHub's API rate limit. Please wait a few minutes and try again.\n\n[Retry](command:github.copilot.refreshToken)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.rateLimited && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub login failed. Please sign in to your GitHub account to use Copilot.\n\n[Sign In](command:workbench.action.chat.triggerSetupForceSignIn)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.gitHubLoginFailed && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"There seems to be a problem with your account. Please contact GitHub support.\n\n[Contact Support](https://support.github.com/?editor=vscode)","when":"github.copilot.interactiveSession.contactSupport && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub Copilot Chat is currently disabled for your account by an organization administrator. Contact an organization administrator to enable chat.\n\n[Learn More](https://docs.github.com/en/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/managing-policies-for-copilot-in-your-organization)","when":"github.copilot.interactiveSession.chatDisabled && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"The Pre-Release version of the GitHub Copilot Chat extension is not currently supported in the stable version of VS Code. Please switch to the release version for GitHub Copilot Chat or try VS Code Insiders.\n\n[Switch to Release Version and Reload](command:runCommands?%7B%22commands%22%3A%5B%7B%22command%22%3A%22workbench.extensions.action.switchToRelease%22%2C%22args%22%3A%5B%22GitHub.copilot-chat%22%5D%7D%2C%22workbench.action.reloadWindow%22%5D%7D)\n\n[Switch to VS Code Insiders](https://aka.ms/vscode-insiders)","when":"github.copilot.interactiveSession.switchToReleaseChannel"}],"commands":[{"command":"github.copilot.chat.triggerPermissiveSignIn","title":"Login to GitHub with Full Permissions"},{"command":"github.copilot.cli.sessions.delete","title":"Delete...","icon":"$(close)","category":"Copilot CLI"},{"command":"agents.github.copilot.cli.deleteSessions","title":"Delete...","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.resumeInTerminal","title":"Resume in Terminal","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.rename","title":"Rename...","icon":"$(edit)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.setTitle","title":"Set Title","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openRepository","title":"Open Repository","icon":"$(folder-opened)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","title":"Open Session in New Window","icon":"$(folder-opened)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","title":"Open Session in Terminal","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","title":"Copy Session Branch Name","icon":"$(copy)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.commitToWorktree","title":"Commit File to Worktree","icon":"$(git-commit)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.commitToRepository","title":"Commit File to Repository","icon":"$(git-commit)","category":"Copilot CLI"},{"command":"github.copilot.cli.newSession","title":"New Copilot CLI Session","icon":"$(terminal)","category":"Chat"},{"command":"github.copilot.cli.newSessionToSide","title":"New Copilot CLI Session to the Side","icon":"$(terminal)","category":"Chat"},{"command":"github.copilot.cli.openInCopilotCLI","title":"Open in GitHub Copilot CLI","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.chat.compact","title":"Compact Conversation"},{"command":"github.copilot.chat.explain","title":"Explain","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.explain.palette","title":"Explain","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.chat.review","title":"Review","enablement":"config.github.copilot.chat.reviewSelection.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.apply","title":"Apply","icon":"$(sparkle)","enablement":"commentThread =~ /hasSuggestion/","category":"Chat"},{"command":"github.copilot.chat.review.applyAndNext","title":"Apply and Go to Next","icon":"$(sparkle)","enablement":"commentThread =~ /hasSuggestion/","category":"Chat"},{"command":"github.copilot.chat.review.discard","title":"Discard","icon":"$(close)","category":"Chat"},{"command":"github.copilot.chat.review.discardAndNext","title":"Discard and Go to Next","icon":"$(close)","category":"Chat"},{"command":"github.copilot.chat.review.discardAll","title":"Discard All","icon":"$(close-all)","category":"Chat"},{"command":"github.copilot.chat.review.stagedChanges","title":"Code Review - Staged Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.unstagedChanges","title":"Code Review - Unstaged Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.changes","title":"Code Review - Uncommitted Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.stagedFileChange","title":"Review Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.unstagedFileChange","title":"Review Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.codeReview.run","title":"Run Code Review","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.previous","title":"Previous Suggestion","icon":"$(arrow-up)","category":"Chat"},{"command":"github.copilot.chat.review.next","title":"Next Suggestion","icon":"$(arrow-down)","category":"Chat"},{"command":"github.copilot.chat.review.continueInInlineChat","title":"Discard and Copy to Inline Chat","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.chat.review.continueInChat","title":"View in Chat Panel","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.chat.review.markHelpful","title":"Helpful","icon":"$(thumbsup)","enablement":"!(commentThread =~ /markedAsHelpful/)","category":"Chat"},{"command":"github.copilot.chat.openUserPreferences","title":"Open User Preferences","category":"Chat","enablement":"config.github.copilot.chat.enableUserPreferences"},{"command":"github.copilot.chat.review.markUnhelpful","title":"Unhelpful","icon":"$(thumbsdown)","enablement":"!(commentThread =~ /markedAsUnhelpful/)","category":"Chat"},{"command":"github.copilot.chat.generate","title":"Generate This","icon":"$(sparkle)","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.chat.fix","title":"Fix","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.interactiveSession.feedback","title":"Send Chat Feedback","enablement":"github.copilot-chat.activated && !github.copilot.interactiveSession.disabled","icon":"$(feedback)","category":"Chat"},{"command":"github.copilot.debug.workbenchState","title":"Log Workbench State","category":"Developer"},{"command":"github.copilot.debug.togglePowerSaveBlocker","title":"Toggle Power Save Blocker","category":"Developer"},{"command":"github.copilot.debug.showChatLogView","title":"Show Chat Debug View","category":"Developer"},{"command":"github.copilot.debug.showOutputChannel","title":"Show Output Channel","category":"Developer"},{"command":"github.copilot.debug.showContextInspectorView","title":"Inspect Language Context","icon":"$(inspect)","category":"Developer"},{"command":"github.copilot.debug.validateNesRename","title":"Validate NES Rename","category":"Developer"},{"command":"github.copilot.debug.resetVirtualToolGroups","title":"Reset Virtual Tool Groups","icon":"$(inspect)","category":"Developer"},{"command":"github.copilot.debug.extensionState","title":"Log Extension State","category":"Developer"},{"command":"github.copilot.chat.tools.memory.showMemories","title":"Show Memory Files","category":"Chat"},{"command":"github.copilot.chat.tools.memory.clearMemories","title":"Clear All Memory Files","category":"Chat"},{"command":"github.copilot.terminal.explainTerminalLastCommand","title":"Explain Last Terminal Command","category":"Chat"},{"command":"github.copilot.git.generateCommitMessage","title":"Generate Commit Message","icon":"$(sparkle)","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.git.resolveMergeConflicts","title":"Resolve Conflicts with AI","icon":"$(chat-sparkle)","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.devcontainer.generateDevContainerConfig","title":"Generate Dev Container Configuration","category":"Chat"},{"command":"github.copilot.tests.fixTestFailure","icon":"$(sparkle)","title":"Fix Test Failure","category":"Chat"},{"command":"github.copilot.tests.fixTestFailure.fromInline","icon":"$(sparkle)","title":"Fix Test Failure"},{"command":"github.copilot.chat.attachFile","title":"Add File to Chat","category":"Chat"},{"command":"github.copilot.chat.attachSelection","title":"Add Selection to Chat","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.debug.collectDiagnostics","title":"Chat Diagnostics","category":"Developer"},{"command":"github.copilot.debug.inlineEdit.clearCache","title":"Clear Inline Suggestion Cache","category":"Developer"},{"command":"github.copilot.debug.inlineEdit.reportNotebookNESIssue","title":"Report Notebook Inline Suggestion Issue","enablement":"config.github.copilot.chat.advanced.notebook.alternativeNESFormat.enabled || github.copilot.chat.enableEnhancedNotebookNES","category":"Developer"},{"command":"github.copilot.debug.generateSTest","title":"Generate STest From Last Chat Request","enablement":"github.copilot.debugReportFeedback","category":"Developer"},{"command":"github.copilot.open.walkthrough","title":"Open Walkthrough","category":"Chat"},{"command":"github.copilot.debug.generateInlineEditTests","title":"Generate Inline Edit Tests","category":"Chat","enablement":"resourceScheme == 'ccreq'"},{"command":"github.copilot.buildRemoteWorkspaceIndex","title":"Build Codebase Semantic Index","category":"Chat","enablement":"github.copilot-chat.activated"},{"command":"github.copilot.deleteExternalIngestWorkspaceIndex","title":"Delete External Ingest Codebase Index","category":"Developer","enablement":"github.copilot-chat.activated && !github.copilot.blackbirdExternalIndexingDisabled"},{"command":"github.copilot.report","title":"Report Issue","category":"Chat"},{"command":"github.copilot.chat.rerunWithCopilotDebug","title":"Debug Last Terminal Command","category":"Chat"},{"command":"github.copilot.chat.startCopilotDebugCommand","title":"Start Copilot Debug"},{"command":"github.copilot.chat.clearTemporalContext","title":"Clear Temporal Context","category":"Developer"},{"command":"github.copilot.search.markHelpful","title":"Helpful","icon":"$(thumbsup)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.search.markUnhelpful","title":"Unhelpful","icon":"$(thumbsdown)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.search.feedback","title":"Feedback","icon":"$(feedback)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.chat.debug.showElements","title":"Show Rendered Elements"},{"command":"github.copilot.chat.debug.hideElements","title":"Hide Rendered Elements"},{"command":"github.copilot.chat.debug.showTools","title":"Show Tools"},{"command":"github.copilot.chat.debug.hideTools","title":"Hide Tools"},{"command":"github.copilot.chat.debug.showNesRequests","title":"Show NES Requests"},{"command":"github.copilot.chat.debug.hideNesRequests","title":"Hide NES Requests"},{"command":"github.copilot.chat.debug.showGhostRequests","title":"Show Ghost Requests"},{"command":"github.copilot.chat.debug.hideGhostRequests","title":"Hide Ghost Requests"},{"command":"github.copilot.chat.debug.showRawRequestBody","title":"Show Raw Request Body"},{"command":"github.copilot.chat.debug.exportLogItem","title":"Export as...","icon":"$(export)"},{"command":"github.copilot.chat.debug.exportPromptArchive","title":"Export All as Archive...","icon":"$(archive)"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","title":"Export All as JSON...","icon":"$(export)"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","title":"Export All Prompt Logs as JSON...","icon":"$(export)"},{"command":"github.copilot.chat.otel.exportAgentTracesDB","title":"Export Agent Traces DB","category":"Chat","enablement":"config.github.copilot.chat.otel.dbSpanExporter.enabled"},{"command":"github.copilot.chat.otel.statusActive","title":"OpenTelemetry","category":"Chat","icon":"$(broadcast)"},{"command":"github.copilot.sessionSync.deleteSessions","title":"Delete Session Sync Data","category":"Chat","enablement":"github.copilot.sessionSearch.enabled && config.chat.sessionSync.enabled"},{"command":"github.copilot.chronicle.reindex","title":"Reindex Sessions","category":"Chat","enablement":"github.copilot.sessionSearch.enabled"},{"command":"github.copilot.nes.captureExpected.start","title":"Record Expected Edit (NES)","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.confirm","title":"Confirm and Save Expected Edit Capture","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.abort","title":"Cancel Expected Edit Capture","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.submit","title":"Submit NES Captures","category":"Copilot"},{"command":"github.copilot.debug.collectWorkspaceIndexDiagnostics","title":"Collect Workspace Index Diagnostics","category":"Developer"},{"command":"github.copilot.chat.mcp.setup.check","title":"MCP Check: is supported"},{"command":"github.copilot.chat.mcp.setup.validatePackage","title":"MCP Check: validate package"},{"command":"github.copilot.chat.mcp.setup.flow","title":"MCP Check: do prompts"},{"command":"github.copilot.chat.generateAltText","title":"Generate/Refine Alt Text"},{"command":"github.copilot.chat.notebook.enableFollowCellExecution","title":"Enable Follow Cell Execution from Chat","shortTitle":"Follow","icon":"$(pinned)"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","title":"Disable Follow Cell Execution from Chat","shortTitle":"Unfollow","icon":"$(pinned-dirty)"},{"command":"github.copilot.cloud.resetWorkspaceConfirmations","title":"Reset Cloud Agent Workspace Confirmations"},{"command":"github.copilot.cloud.sessions.openInBrowser","title":"Open in Browser","icon":"$(link-external)"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","title":"Close Pull Request"},{"command":"github.copilot.cloud.sessions.installPRExtension","title":"Install GitHub Pull Request Extension","icon":"$(extensions)"},{"command":"github.copilot.chat.openSuggestionsPanel","title":"Open Completions Panel","enablement":"github.copilot.extensionUnification.activated && !isWeb","category":"GitHub Copilot"},{"command":"github.copilot.chat.toggleStatusMenu","title":"Open Status Menu","enablement":"github.copilot.extensionUnification.activated","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.disable","title":"Disable Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated && config.editor.inlineSuggest.enabled && github.copilot.completions.enabled","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.enable","title":"Enable Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated && !(config.editor.inlineSuggest.enabled && github.copilot.completions.enabled)","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.toggle","title":"Toggle (Enable/Disable) Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated","category":"GitHub Copilot"},{"command":"github.copilot.chat.openModelPicker","title":"Change Completions Model","category":"GitHub Copilot","enablement":"github.copilot.extensionUnification.activated && !isWeb && github.copilot.completions.hasMultipleModels"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","title":"Apply Changes to Workspace","enablement":"!chatSessionRequestInProgress","category":"GitHub Copilot"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","title":"Apply","enablement":"!chatSessionRequestInProgress","icon":"$(git-stash-pop)","category":"GitHub Copilot"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","title":"Merge Changes","enablement":"!chatSessionRequestInProgress","icon":"$(git-merge)","category":"GitHub Copilot"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","title":"Merge Changes & Sync","enablement":"!chatSessionRequestInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.commit","title":"Commit Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-commit)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.commitAndSync","title":"Commit and Sync Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.sync","title":"Sync Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","title":"Create PR","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-pull-request-create)","category":"GitHub Copilot"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","title":"Create Draft PR","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-pull-request-draft)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.discardChanges","title":"Discard Changes","enablement":"!chatSessionRequestInProgress","icon":"$(discard)","category":"GitHub Copilot"},{"command":"github.copilot.chat.copilotCLI.addFileReference","title":"Add File to Copilot CLI","enablement":"github.copilot.chat.copilotCLI.hasSession","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.addSelection","title":"Add Selection to Copilot CLI","enablement":"github.copilot.chat.copilotCLI.hasSession","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.acceptDiff","title":"Accept Changes","enablement":"github.copilot.chat.copilotCLI.hasActiveDiff","icon":"$(check)","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.rejectDiff","title":"Reject Changes","enablement":"github.copilot.chat.copilotCLI.hasActiveDiff","icon":"$(close)","category":"Copilot CLI"},{"command":"github.copilot.chat.checkoutPullRequestReroute","title":"Checkout","icon":"$(git-pull-request)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","title":"Create Pull Request","icon":"$(git-pull-request-create)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","title":"Open Pull Request","icon":"$(git-pull-request)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.openRepository","title":"Browse repositories...","icon":"$(repo)","category":"GitHub Copilot"},{"command":"github.copilot.chat.cloudSessions.clearCaches","title":"Clear Cloud Agent Caches","category":"GitHub Copilot"},{"command":"github.copilot.sessions.refreshChanges","title":"Refresh","icon":"$(refresh)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.initializeRepository","title":"Initialize Repository","enablement":"!chatSessionRequestInProgress","icon":"$(repo)","category":"GitHub Copilot"}],"configuration":[{"title":"GitHub Copilot Chat","id":"stable","properties":{"github.copilot.chat.backgroundAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Copilot CLI. When disabled, the Copilot CLI will not be available in 'Continue In' context menus."},"github.copilot.chat.cloudAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Cloud Agent. When disabled, the Cloud Agent will not be available in 'Continue In' context menus."},"github.copilot.chat.localIndex.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable local session tracking. When enabled, session data is tracked locally for /chronicle commands.","tags":["onExp"]},"github.copilot.chat.codeGeneration.useInstructionFiles":{"type":"boolean","default":true,"markdownDescription":"Controls whether code instructions from `.github/copilot-instructions.md` are added to Copilot requests.\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance. [Learn more](https://aka.ms/github-copilot-custom-instructions) about customizing Copilot."},"github.copilot.editor.enableCodeActions":{"type":"boolean","default":true,"description":"Controls if Copilot commands are shown as Code Actions when available"},"github.copilot.renameSuggestions.triggerAutomatically":{"type":"boolean","default":true,"description":"Controls whether Copilot generates suggestions for renaming"},"github.copilot.chat.localeOverride":{"type":"string","enum":["auto","en","fr","it","de","es","ru","zh-CN","zh-TW","ja","ko","cs","pt-br","tr","pl"],"enumDescriptions":["Use VS Code's configured display language","English","français","italiano","Deutsch","español","русский","中文(简体)","中文(繁體)","日本語","한국어","čeština","português","Türkçe","polski"],"default":"auto","markdownDescription":"Specify a locale that Copilot should respond in, e.g. `en` or `fr`. By default, Copilot will respond using VS Code's configured display language locale."},"github.copilot.chat.terminalChatLocation":{"type":"string","default":"chatView","markdownDescription":"Controls where chat queries from the terminal should be opened.","markdownEnumDescriptions":["Open the chat view.","Open quick chat.","Open terminal inline chat"],"enum":["chatView","quickChat","terminal"]},"github.copilot.chat.scopeSelection":{"type":"boolean","default":false,"markdownDescription":"Whether to prompt the user to select a specific symbol scope if the user uses `/explain` and the active editor has no selection."},"github.copilot.chat.useProjectTemplates":{"type":"boolean","default":true,"markdownDescription":"Use relevant GitHub projects as starter projects when using `/new`"},"github.copilot.nextEditSuggestions.enabled":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to enable next edit suggestions (NES).\n\nNES can propose a next edit based on your recent changes. [Learn more](https://aka.ms/vscode-nes) about next edit suggestions.","scope":"language-overridable"},"github.copilot.completions.chat.enabled":{"type":"boolean","default":false,"markdownDescription":"Whether to enable inline completions in chat."},"github.copilot.nextEditSuggestions.extendedRange":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to allow next edit suggestions (NES) to modify code farther away from the cursor position."},"github.copilot.nextEditSuggestions.fixes":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to offer fixes for diagnostics via next edit suggestions (NES).","scope":"language-overridable"},"github.copilot.nextEditSuggestions.allowWhitespaceOnlyChanges":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to allow whitespace-only changes be proposed by next edit suggestions (NES).","scope":"language-overridable"},"github.copilot.chat.agent.autoFix":{"type":"boolean","default":false,"description":"Automatically fix diagnostics for edited files.","tags":["onExp"]},"github.copilot.chat.rateLimitAutoSwitchToAuto":{"type":"boolean","default":false,"markdownDescription":"Automatically switch to the Auto model and retry when you hit a per-model rate limit.","tags":["onExp"]},"github.copilot.chat.customInstructionsInSystemMessage":{"type":"boolean","default":true,"description":"When enabled, custom instructions and mode instructions will be appended to the system message instead of a user message."},"github.copilot.chat.organizationCustomAgents.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will load custom agents defined by your GitHub Organization."},"github.copilot.chat.organizationInstructions.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will load custom instructions defined by your GitHub Organization."},"github.copilot.chat.additionalReadAccessPaths":{"type":"array","default":[],"items":{"type":"string"},"markdownDescription":"A list of absolute folder paths outside of the workspace that Copilot Chat is allowed to read from without requiring confirmation. Edit operations remain restricted to the workspace.","scope":"window"},"github.copilot.chat.agent.currentEditorContext.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will include the name of the current active editor in the context for agent mode."},"github.copilot.enable":{"type":"object","scope":"window","default":{"*":true,"plaintext":false,"markdown":false,"scminput":false},"additionalProperties":{"type":"boolean"},"markdownDescription":"Enable or disable auto triggering of Copilot completions for specified [languages](https://code.visualstudio.com/docs/languages/identifiers). You can still trigger suggestions manually using `Alt + \\`","agentsWindow":{"default":{"markdown":true,"plaintext":true}}},"github.copilot.selectedCompletionModel":{"type":"string","default":"","markdownDescription":"The currently selected completion model ID. To select from a list of available models, use the __\"Change Completions Model\"__ command or open the model picker (from the Copilot menu in the VS Code title bar, select __\"Configure Code Completions\"__ then __\"Change Completions Model\"__. The value must be a valid model ID. An empty value indicates that the default model will be used."},"github.copilot.chat.reviewAgent.enabled":{"type":"boolean","default":true,"description":"Enables the code review agent."},"github.copilot.chat.reviewSelection.enabled":{"type":"boolean","default":true,"description":"Enables code review on current selection."},"github.copilot.chat.reviewSelection.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that provide code review for the current selection. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-review-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-review-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that provide code review for the current selection. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use underscore for field names."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Use underscore for field names."},{"text":"Resolve all TODO tasks."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that provide code review for the current selection.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's effectiveness.","examples":[[{"file":".copilot-review-instructions.md"},{"text":"Resolve all TODO tasks."}]]},"github.copilot.chat.anthropic.useMessagesApi":{"type":"boolean","default":true,"markdownDescription":"Use the Messages API instead of the Chat Completions API when supported.","tags":["onExp"]},"github.copilot.chat.imageUpload.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the use of image upload URLs in chat requests instead of raw base64 strings."}}},{"id":"preview","properties":{"github.copilot.chat.copilotDebugCommand.enabled":{"type":"boolean","default":true,"tags":["preview"],"description":"Whether the `copilot-debug` command is enabled in the terminal."},"github.copilot.chat.codesearch.enabled":{"type":"boolean","default":false,"tags":["preview"],"markdownDescription":"Whether to enable agentic codesearch when using `#codebase`."},"github.copilot.chat.tools.viewImage.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the view image tool, which allows the agent to view image files such as png, jpg, jpeg, gif, and webp.","tags":["preview","onExp"]}}},{"id":"experimental","properties":{"github.copilot.chat.githubMcpServer.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable built-in support for the GitHub MCP Server.","tags":["experimental"],"agentsWindow":{"default":true}},"github.copilot.chat.githubMcpServer.toolsets":{"type":"array","default":["default"],"markdownDescription":"Specify toolsets to use from the GitHub MCP Server. [Learn more](https://aka.ms/vscode-gh-mcp-toolsets).","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.githubMcpServer.readonly":{"type":"boolean","default":false,"markdownDescription":"Enable read-only mode for the GitHub MCP Server. When enabled, only read tools are available. [Learn more](https://aka.ms/vscode-gh-mcp-readonly).","tags":["experimental"]},"github.copilot.chat.githubMcpServer.lockdown":{"type":"boolean","default":false,"markdownDescription":"Enable lockdown mode for the GitHub MCP Server. When enabled, hides public issue details created by users without push access. [Learn more](https://aka.ms/vscode-gh-mcp-lockdown).","tags":["experimental"]},"github.copilot.chat.githubMcpServer.channel":{"type":"string","default":"stable","enum":["stable","insiders"],"enumDescriptions":["Use the stable version of the GitHub MCP Server.","Connect to the Insiders version of the GitHub MCP Server with experimental features."],"markdownDescription":"Select the channel for the GitHub MCP Server. When set to Insiders, enables access to experimental features that may change or be removed based on community feedback. [Learn more](https://aka.ms/vscode-gh-mcp-channel).","tags":["experimental"]},"github.copilot.chat.switchAgent.enabled":{"type":"boolean","default":false,"markdownDescription":"Allow agent to switch to the Plan agent for research, exploration, and planning tasks.","tags":["experimental","onExp"]},"github.copilot.chat.codeGeneration.instructions":{"markdownDeprecationMessage":"Use instructions files instead. See https://aka.ms/vscode-ghcp-custom-instructions for more information.","type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that generate code. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-codeGeneration-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-codeGeneration-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that generate code. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use underscore for field names."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Use underscore for field names."},{"text":"Always add a comment: 'Generated by Copilot'."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate code.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-codeGeneration-instructions.md"},{"text":"Always add a comment: 'Generated by Copilot'."}]],"tags":["experimental"]},"github.copilot.chat.testGeneration.instructions":{"markdownDeprecationMessage":"Use instructions files instead. See https://aka.ms/vscode-ghcp-custom-instructions for more information.","type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that generate tests. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-test-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-test-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that generate tests. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use suite and test instead of describe and it."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Always try uniting related tests in a suite."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate tests.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-test-instructions.md"},{"text":"Always try uniting related tests in a suite."}]],"tags":["experimental"]},"github.copilot.chat.commitMessageGeneration.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file with instructions that will be added to Copilot requests that generate commit messages.","properties":{"file":{"type":"string","examples":[".copilot-commit-message-instructions.md"]}},"examples":[{"file":".copilot-commit-message-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"Text instructions that will be added to Copilot requests that generate commit messages.","properties":{"text":{"type":"string","examples":["Use conventional commit message format."]}},"required":["text"],"examples":[{"text":"Use conventional commit message format."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate commit messages.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use conventional commit message format.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-commit-message-instructions.md"},{"text":"Use conventional commit message format."}]],"tags":["experimental"]},"github.copilot.chat.pullRequestDescriptionGeneration.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file with instructions that will be added to Copilot requests that generate pull request titles and descriptions.","properties":{"file":{"type":"string","examples":[".copilot-pull-request-description-instructions.md"]}},"examples":[{"file":".copilot-pull-request-description-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"Text instructions that will be added to Copilot requests that generate pull request titles and descriptions.","properties":{"text":{"type":"string","examples":["Include every commit message in the pull request description."]}},"required":["text"],"examples":[{"text":"Include every commit message in the pull request description."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate pull request titles and descriptions.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Always include a list of key changes.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-pull-request-description-instructions.md"},{"text":"Use conventional commit message format."}]],"tags":["experimental"]},"github.copilot.chat.setupTests.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the `/setupTests` intent and prompting in `/tests` generation.","tags":["experimental"]},"github.copilot.chat.languageContext.typescript.enabled":{"type":"boolean","default":true,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for inline suggestions","agentsWindow":{"default":true}},"github.copilot.chat.languageContext.typescript7.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental"],"markdownDescription":"Enables the TypeScript language context provider for inline suggestions when using TS7 language services","agentsWindow":{"default":false}},"github.copilot.chat.languageContext.typescript.items":{"type":"string","enum":["minimal","double","fillHalf","fill"],"default":"double","scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Controls which kind of items are included in the TypeScript language context provider."},"github.copilot.chat.languageContext.typescript.includeDocumentation":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Controls whether to include documentation comments in the generated code snippets."},"github.copilot.chat.languageContext.typescript.cacheTimeout":{"type":"number","default":500,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"The cache population timeout for the TypeScript language context provider in milliseconds. The default is 500 milliseconds."},"github.copilot.chat.languageContext.fix.typescript.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for /fix commands"},"github.copilot.chat.languageContext.inline.typescript.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for inline chats (both generate and edit)"},"github.copilot.chat.newWorkspaceCreation.enabled":{"type":"boolean","default":true,"tags":["experimental"],"description":"Whether to enable new agentic workspace creation."},"github.copilot.chat.newWorkspace.useContext7":{"type":"boolean","default":false,"tags":["experimental"],"markdownDescription":"Whether to use the [Context7](command:github.copilot.mcp.viewContext7) tools to scaffold project for new workspace creation."},"github.copilot.chat.notebook.followCellExecution.enabled":{"type":"boolean","default":false,"tags":["experimental"],"description":"Controls whether the currently executing cell is revealed into the viewport upon execution from Copilot."},"github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Controls whether to use an enhanced approach for generating next edit suggestions in notebook cells."},"github.copilot.chat.summarizeAgentConversationHistory.enabled":{"type":"boolean","default":true,"tags":["experimental"],"description":"Whether to auto-compact agent conversation history once the context window is filled."},"github.copilot.chat.virtualTools.threshold":{"type":"number","minimum":0,"maximum":128,"default":128,"tags":["experimental"],"markdownDescription":"This setting defines the tool count over which virtual tools should be used. Virtual tools group similar sets of tools together and they allow the model to activate them on-demand. Certain tool groups will optimistically be pre-activated. We are actively developing this feature and you experience degraded tool calling once the threshold is hit.\n\nMay be set to `0` to disable virtual tools."},"github.copilot.chat.alternateGptPrompt.enabled":{"type":"boolean","default":false,"tags":["experimental"],"description":"Enables an experimental alternate prompt for GPT models instead of the default prompt."},"github.copilot.chat.alternateGeminiModelFPrompt.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Enables an experimental alternate prompt for Gemini Model F instead of the default prompt."},"github.copilot.chat.gemini35FlashReducedToolUsePrompt.enabled":{"type":"boolean","default":true,"tags":["experimental","onExp"],"description":"Enables an experimental prompt for Gemini 3.5 Flash that instructs the model to minimize tool calls to reduce token usage."},"github.copilot.chat.geminiFlashPromptAdditions.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Enables experimental additional prompt guidance for Gemini Flash 3.6 and 3.7 models."},"github.copilot.chat.anthropic.contextEditing.mode":{"type":"string","default":"off","markdownDescription":"Select the context editing mode for Anthropic models. Automatically manages conversation context as it grows, helping optimize costs and stay within context window limits.\n\n- `off`: Context editing is disabled.\n- `clear-thinking`: Clears thinking blocks while preserving tool uses.\n- `clear-tooluse`: Clears tool uses while preserving thinking blocks.\n- `clear-both`: Clears both thinking blocks and tool uses.\n\n**Note**: This is an experimental feature. Context editing may cause additional cache rewrites. Enable with caution.","tags":["experimental","onExp"],"enum":["off","clear-thinking","clear-tooluse","clear-both"]},"github.copilot.chat.responsesApiContextManagement.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables context management for the Responses API. Requires `#github.copilot.chat.useResponsesApi#`.","tags":["experimental","onExp"]},"github.copilot.chat.responsesApi.promptCacheKey.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables prompt cache key being set for the Responses API.","tags":["experimental","onExp"]},"github.copilot.chat.responsesApi.promptCacheBreakpoint.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables explicit prompt cache breakpoint markers for the Responses API.","tags":["experimental","onExp"]},"github.copilot.chat.updated53CodexPrompt.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the updated prompt for gpt-5.3-codex model.","tags":["experimental","onExp"]},"github.copilot.chat.claudeOpus5Prompt.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the updated system prompt tuned for the Claude Opus 5 model.","tags":["experimental","onExp"]},"github.copilot.chat.claudeSonnet5Prompt.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the updated system prompt tuned for the Claude Sonnet 5 model.","tags":["experimental","onExp"]},"github.copilot.chat.gpt55GetChangedFilesTool.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the Get Changed Files tool for gpt-5.5 models.","tags":["experimental","onExp"]},"github.copilot.chat.gpt56Verbosity.enabled":{"type":"boolean","default":true,"markdownDescription":"Sets the response verbosity to low for gpt-5.6 models.","tags":["experimental","onExp"]},"github.copilot.chat.gemini3GetChangedFilesTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the Get Changed Files tool for gemini-3 models.","tags":["experimental","onExp"]},"github.copilot.chat.gemini3LowReasoningEffort.enabled":{"type":"boolean","default":false,"markdownDescription":"Sets the reasoning effort to low for gemini-3 models.","tags":["experimental","onExp"]},"github.copilot.chat.gpt55ReadFileTool.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the Read File tool for gpt-5.5 models.","tags":["experimental","onExp"]},"github.copilot.chat.anthropic.tools.websearch.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable Anthropic's native web search tool for BYOK Claude models. When enabled, allows Claude to search the web for current information. \n\n**Note**: This is an experimental feature only available for BYOK Anthropic Claude models.","tags":["experimental","onExp"]},"github.copilot.chat.anthropic.tools.websearch.maxUses":{"type":"number","default":5,"markdownDescription":"Maximum number of web searches allowed per request. Valid range is 1 to 20. Prevents excessive API calls within a single interaction. If Claude exceeds this limit, the response returns an error.","minimum":1,"maximum":20,"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.allowedDomains":{"type":"array","default":[],"markdownDescription":"List of domains to restrict web search results to (e.g., `[\"example.com\", \"docs.example.com\"]`). Domains should not include the HTTP/HTTPS scheme. Subdomains are automatically included. Cannot be used together with `#github.copilot.chat.anthropic.tools.websearch.blockedDomains#`; configuring both will cause web search requests to fail.","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.blockedDomains":{"type":"array","default":[],"markdownDescription":"List of domains to exclude from web search results (e.g., `[\"untrustedsource.com\"]`). Domains should not include the HTTP/HTTPS scheme. Subdomains are automatically excluded. Cannot be used together with `#github.copilot.chat.anthropic.tools.websearch.allowedDomains#`; configuring both will cause web search requests to fail.","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.userLocation":{"type":["object","null"],"default":null,"markdownDescription":"User location for personalizing web search results based on geographic context. All fields (city, region, country, timezone) are optional. Example: `{\"city\": \"San Francisco\", \"region\": \"California\", \"country\": \"US\", \"timezone\": \"America/Los_Angeles\"}`","properties":{"city":{"type":"string","description":"City name (e.g., 'San Francisco')"},"region":{"type":"string","description":"State or region (e.g., 'California')"},"country":{"type":"string","description":"ISO country code (e.g., 'US')"},"timezone":{"type":"string","description":"IANA timezone identifier (e.g., 'America/Los_Angeles')"}},"tags":["experimental"]},"github.copilot.chat.completionsFetcher":{"type":["string","null"],"markdownDescription":"Sets the fetcher used for the inline completions.","tags":["experimental","onExp"],"enum":["electron-fetch","node-fetch"]},"github.copilot.chat.nesFetcher":{"type":["string","null"],"markdownDescription":"Sets the fetcher used for the next edit suggestions.","tags":["experimental","onExp"],"enum":["electron-fetch","node-fetch"]},"github.copilot.chat.planAgent.additionalTools":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","markdownDescription":"Additional tools to enable for the Plan agent, on top of built-in tools. Use fully-qualified tool names (e.g., `github/issue_read`, `mcp_server/tool_name`).","tags":["experimental"]},"github.copilot.chat.implementAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used when starting implementation from the Plan agent's handoff. Use the format `Model Name (vendor)` (e.g., `GPT-5 (copilot)`). Leave empty to use the default model.","tags":["experimental"]},"github.copilot.chat.askAgent.additionalTools":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","markdownDescription":"Additional tools to enable for the Ask agent, on top of built-in read-only tools. Use fully-qualified tool names (e.g., `github/issue_read`, `mcp_server/tool_name`).","tags":["experimental"]},"github.copilot.chat.askAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used by the Ask agent. Leave empty to use the default model.","tags":["experimental"]},"github.copilot.chat.exploreAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Explore (Code Research) subagent.","tags":["experimental","onExp"]},"github.copilot.chat.exploreAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used by the Explore subagent. Defaults to a fast, small model. Leave empty to use the built-in fallback list.","tags":["experimental"]},"github.copilot.chat.tools.grepSearch.outputFormat":{"type":"string","default":"grep","enum":["grep","tag"],"markdownDescription":"The output format for the grep search tool. Can be either 'grep' or 'tag'. The default is 'grep'.","tags":["experimental","onExp"]},"github.copilot.chat.tools.grepSearch.defaultMaxResults":{"type":"number","default":100,"markdownDescription":"The default maximum number of results to return from the grep search tool. The default is 100.","tags":["experimental","onExp"]},"github.copilot.chat.tools.grepSearch.maxResultsCap":{"type":"number","default":200,"markdownDescription":"The maximum number of results that can be returned from the grep search tool. The default is 200.","tags":["experimental","onExp"]}}},{"id":"advanced","properties":{"github.copilot.chat.chatCompletionsTokenParameter":{"type":"string","enum":["max_completion_tokens","max_tokens"],"enumDescriptions":["Send `max_completion_tokens`.","Send the legacy `max_tokens` parameter for compatibility."],"default":"max_tokens","markdownDescription":"Controls the output token limit parameter sent to custom Chat Completions APIs. Use `max_completion_tokens` for endpoints that do not support `max_tokens`.","tags":["advanced","onExp"]},"github.copilot.chat.inlineEdits.xtabProvider.modelConfiguration":{"type":["object","null"],"default":null,"markdownDescription":"Advanced model configuration for the next edit suggestions xtab provider.\n\n**Note**: This is an advanced setting.","tags":["advanced","experimental"]},"github.copilot.chat.reasoningEffortOverride":{"type":["string","null"],"default":null,"markdownDescription":"Overrides the reasoning/thinking effort sent to model APIs. The configured value must match a reasoning-effort value supported by the selected model or endpoint (for example, `low`, `medium`, `high`, or other model-specific values). Used by evals.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced"]},"github.copilot.chat.autoModeTierOverride":{"type":["string","null"],"default":null,"markdownDescription":"Overrides the routing tier that the `Auto` model requests, ignoring both the tier picked in the model picker and the tier inline chat defaults to. Accepts `eco`, `balanced`, `max`, or `fast`. Used by evals.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced"]},"github.copilot.chat.anthropic.promptCaching.extendedTtl":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Use the extended (1 hour) prompt cache TTL on tools and system blocks for the Anthropic Messages API. Applied to Claude Opus 4.5/4.6/4.7 and Sonnet 4.5/4.6 variants; other models keep the default 5 minute TTL even when this setting is enabled.\n\n**Note**: This is an experimental feature. Only the main agent conversation is eligible — inline chat, terminal chat, notebook chat, and subagent requests are excluded."},"github.copilot.chat.anthropic.promptCaching.extendedTtlMessages":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Also extend the 1 hour prompt cache TTL to message-level breakpoints. Requires `chat.anthropic.promptCaching.extendedTtl` to be enabled; has no effect on its own.\n\n**Note**: This is an experimental feature."},"github.copilot.chat.modelCapabilityOverrides":{"type":"object","default":{},"markdownDescription":"Per-model capability overrides keyed by model id, intended for evaluating preview and tenanted models against an existing model's capability profile. For each model id, declare an aliased `family`. Setting `family` to a known production family (e.g. `\"claude-opus-4.7\"`) makes the model receive that family's full capability profile — Anthropic family detection, latest Opus prompt, multi-replace tools, tool search, context editing, extended cache TTL — without a code change.\n\n**Note**: This is an advanced setting for evaluation use; it is not intended for regular end-user configuration.","additionalProperties":{"type":"object","properties":{"family":{"type":"string","description":"Alias the model's family for capability routing (e.g. 'claude-opus-4.7')."}},"additionalProperties":false},"tags":["advanced"]},"github.copilot.chat.installExtensionSkill.enabled":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Whether to enable the install extension skill for Copilot."},"github.copilot.chat.debug.promptOverrideString":{"type":["string","null"],"default":null,"markdownDescription":"YAML string that overrides the system prompt and/or tool descriptions sent to the model. When both this setting and `github.copilot.chat.debug.promptOverrideFile` are configured, this setting takes precedence.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced","experimental"]},"github.copilot.chat.debug.promptOverrideFile":{"type":["string","null"],"default":null,"markdownDescription":"Path to a YAML file that overrides the system prompt and/or tool descriptions sent to the model.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced","experimental"]},"github.copilot.chat.edits.gemini3MultiReplaceString":{"type":"boolean","default":false,"markdownDescription":"Enable the modern `multi_replace_string_in_file` edit tool when generating edits with Gemini 3 models.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.edits.batchReplaceStringDescriptions":{"type":"boolean","default":false,"markdownDescription":"Update tool descriptions to promote `multi_replace_string_in_file` as the primary multi-edit tool.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.expanded":{"type":"boolean","default":false,"markdownDescription":"Use the expanded format for project labels in prompts.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.chat":{"type":"boolean","default":false,"markdownDescription":"Add project labels in chat requests.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.inline":{"type":"boolean","default":false,"markdownDescription":"Add project labels in inline edit requests.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.maxLocalIndexSize":{"type":"number","default":100000,"markdownDescription":"Maximum size of the local workspace index.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.enableCodeSearch":{"type":"boolean","default":true,"markdownDescription":"Enable code search in workspace context.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.preferredEmbeddingsModel":{"type":"string","default":"","markdownDescription":"Preferred embeddings model for semantic search.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.feedback.onChange":{"type":"boolean","default":false,"markdownDescription":"Enable feedback collection on configuration changes.","tags":["advanced","experimental"]},"github.copilot.chat.review.intent":{"type":"boolean","default":false,"markdownDescription":"Enable intent detection for code review.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.summaryExperimentEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable the notebook summary experiment.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.variableFilteringEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable filtering variables by cell document symbols.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.alternativeFormat":{"type":"string","default":"xml","enum":["xml","markdown"],"markdownDescription":"Alternative document format for notebooks.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.notebook.alternativeNESFormat.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable alternative format for Next Edit Suggestions in notebooks.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.debugTerminalCommandPatterns":{"type":"array","default":[],"items":{"type":"string"},"markdownDescription":"A list of commands for which the \"Debug Command\" quick fix action should be shown in the debug terminal.","tags":["advanced","experimental"]},"github.copilot.chat.localWorkspaceRecording.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable local workspace recording for analysis.","tags":["advanced","experimental"]},"github.copilot.chat.editRecording.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable edit recording for analysis.","tags":["advanced","experimental"]},"github.copilot.chat.inlineChat.reasoningEffort":{"type":"string","default":"low","enum":["none","minimal","low","medium","high"],"markdownDescription":"Controls the reasoning effort level for inline chat requests. Lower values result in faster responses with fewer reasoning tokens. Supported values depend on the model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineChat.enableThinking":{"type":"boolean","default":false,"markdownDescription":"Controls whether thinking/reasoning is enabled for inline chat requests. When disabled, reasoning summaries are suppressed for faster responses.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.debug.requestLogger.maxEntries":{"type":"number","default":100,"markdownDescription":"Maximum number of entries to keep in the request logger for debugging purposes.","tags":["advanced","experimental"]},"github.copilot.chat.inlineEdits.diagnosticsContextProvider.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable diagnostics context provider for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.chatSessionContextProvider.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable chat session context provider for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.codesearch.agent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable code search capabilities in agent mode.","tags":["advanced","experimental"]},"github.copilot.chat.agent.temperature":{"type":["number","null"],"markdownDescription":"Temperature setting for agent mode requests.","tags":["advanced","experimental"]},"github.copilot.chat.agent.omitFileAttachmentContents":{"type":"boolean","default":false,"markdownDescription":"Omit summarized file contents from file attachments in agent mode, to encourage the agent to properly read and explore.","tags":["advanced","experimental"]},"github.copilot.chat.agent.backgroundTodoAgent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable background todo agent that automatically maintains a todo list during agent sessions.\n\n**Note**: This is an advanced experimental setting.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.longToolCallCachePreservation.enabled":{"type":"boolean","default":false,"markdownDescription":"When enabled, periodic keep-alive probes are sent during long-running tool calls to keep the server-side prompt cache warm.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.longToolCallCachePreservation.maxProbes":{"type":"number","default":1,"markdownDescription":"Maximum number of keep-alive probes to send during long-running tool calls before giving up.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.largeToolResultsToDisk.enabled":{"type":"boolean","default":true,"markdownDescription":"When enabled, large tool results are written to disk instead of being included directly in the context, helping manage context window usage.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.largeToolResultsToDisk.thresholdBytes":{"type":"number","default":8192,"markdownDescription":"The size threshold in bytes above which tool results are written to disk. Only applies when largeToolResultsToDisk.enabled is true.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.instantApply.shortContextModelName":{"type":"string","default":"gpt-4o-instant-apply-full-ft-v66-short","markdownDescription":"Model name for short context instant apply.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.instantApply.shortContextLimit":{"type":"number","default":8000,"markdownDescription":"Token limit for short context instant apply.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.enableUserPreferences":{"type":"boolean","default":false,"markdownDescription":"Enable remembering user preferences in agent mode.","tags":["advanced","experimental"]},"github.copilot.chat.skillTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the skill tool in Copilot Chat. When enabled, skills are invoked via a dedicated skill tool instead of readFile.","tags":["advanced","experimental"]},"github.copilot.chat.getChangedFilesTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the Get Changed Files tool in Copilot Chat. When enabled, the agent can retrieve git diffs of current changes via a dedicated tool.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the Execution Subagent tool in Copilot Chat. The Execution Subagent is designed to run terminal commands to accomplish an execution-based task. It is powered by Google's Gemini-3-Flash model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.model":{"type":"string","default":"gemini-3-flash","markdownDescription":"The model to use for the Execution Subagent tool in Copilot Chat. When useAgenticProxy is enabled, defaults to 'exec-subagent-router-a'. Otherwise defaults to gemini-3-flash.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.useAgenticProxy":{"type":"boolean","default":false,"markdownDescription":"Use the agentic proxy endpoint for the execution subagent.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.toolCallLimit":{"type":"number","default":10,"markdownDescription":"Maximum number of tool calls the Execution Subagent can make during execution.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.summarizeAgentConversationHistoryThreshold":{"type":["number","null"],"markdownDescription":"Threshold at which agent conversation history is compacted. Specify either a ratio of the model's context window (a value greater than `0` and at most `1`, e.g. `0.8` to compact at 80%) or an absolute token count (a value of `100` or greater, e.g. `60000`). Leave unset to use the model's full context window.","tags":["advanced","experimental"]},"github.copilot.chat.agentHistorySummarizationMode":{"type":["string","null"],"markdownDescription":"Mode for agent history summarization.","tags":["advanced","experimental"]},"github.copilot.chat.useResponsesApiTruncation":{"type":"boolean","default":false,"markdownDescription":"Use Responses API for truncation.","tags":["advanced","experimental"]},"github.copilot.chat.omitBaseAgentInstructions":{"type":"boolean","default":false,"markdownDescription":"Omit base agent instructions from prompts.","tags":["advanced","experimental"]},"github.copilot.chat.promptFileContextProvider.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable prompt file context provider.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.tools.defaultToolsGrouped":{"type":"boolean","default":false,"markdownDescription":"Group default tools in prompts.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.gpt5AlternativePatch":{"type":"boolean","default":false,"markdownDescription":"Enable GPT-5 alternative patch format.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.triggerOnEditorChangeAfterSeconds":{"type":["number","null"],"default":10,"markdownDescription":"Trigger inline edits after editor has been idle for this many seconds.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.nextCursorPrediction.displayLine":{"type":"boolean","default":true,"markdownDescription":"Display predicted cursor line for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.nextCursorPrediction.currentFileMaxTokens":{"type":"number","default":3000,"markdownDescription":"Maximum tokens for current file in next cursor prediction.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.renameSymbolSuggestions":{"type":"boolean","default":true,"markdownDescription":"Enable rename symbol suggestions in inline edits.","tags":["advanced","experimental","onExp"]},"github.copilot.nextEditSuggestions.preferredModel":{"type":"string","default":"none","markdownDescription":"Preferred model for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.nextEditSuggestions.eagerness":{"type":"string","default":"auto","enum":["auto","low","medium","high"],"enumItemLabels":["Auto","Low","Medium","High"],"enumDescriptions":["Automatically determine the eagerness level.","Show fewer suggestions with longer delays.","Balanced suggestion frequency and delay.","Show more suggestions with minimal delay."],"markdownDescription":"Controls how eagerly next edit suggestions are shown. Higher values show more suggestions with less delay.","tags":["advanced","experimental"]},"github.copilot.chat.cli.mcp.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable Model Context Protocol (MCP) server for Copilot CLI.","tags":["advanced","experimental"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.sandbox.enabled":{"type":"string","enum":["off","on","allowNetwork"],"enumDescriptions":["Disable sandboxing for Copilot CLI tools.","Enable sandboxing for Copilot CLI tools.","Enable sandboxing for Copilot CLI tools and allow all network domains."],"default":"off","markdownDescription":"Run Copilot CLI tools (such as the terminal) inside a sandbox to limit what they can access on your system. The sandbox only applies to requests that run with default permissions — it is not used when bypassing approvals — and is not supported on Windows yet.","tags":["advanced","experimental"]},"github.copilot.chat.cli.branchSupport.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable branch support for Copilot CLI.","tags":["advanced"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.planExitMode.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable Plan Mode exit handling in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.autoModel.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Auto model option in Copilot CLI, which automatically selects the best model for each request. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.autoMode.tiers.enabled":{"type":"boolean","default":false,"markdownDescription":"Choose a routing tier for the Auto model, biasing model selection toward cost, capability, or speed. When disabled, the service picks the routing profile.","tags":["advanced","onExp"]},"github.copilot.chat.agent.modelDetails.enabled":{"type":"boolean","default":true,"markdownDescription":"Show model details (model name and request multiplier) on Copilot CLI agent chat responses. Requires VS Code reload to update already loaded sessions.","tags":["advanced"]},"github.copilot.chat.cli.planCommand.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the /plan command in Copilot CLI to create implementation plans before coding.","tags":["advanced"]},"github.copilot.chat.cli.lazyLoadSessionItem.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable lazy loading of session items in Copilot CLI. Requires VS Code reload.","tags":["advanced"],"agentsWindow":{"default":false}},"github.copilot.chat.cli.aiGenerateBranchNames.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable AI-generated branch names in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.forkSessions.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable forking sessions in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.isolationOption.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the isolation mode option for Copilot CLI. When enabled, users can choose between Worktree and Workspace modes.","tags":["advanced"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.autoCommit.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable automatic commit for Copilot CLI. When enabled, changes made by Copilot CLI will be automatically committed to the repository at the end of each turn.","tags":["advanced","experimental"],"agentsWindow":{"default":false}},"github.copilot.chat.cli.sessionController.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the new session controller API for Copilot CLI. Requires VS Code reload.","tags":["advanced"],"agentsWindow":{"default":false,"readOnly":true}},"github.copilot.chat.cli.thinkingEffort.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable thinking effort for Language Models in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.sessionControllerForSessionsApp.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the new session controller API for Sessions App. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.cli.terminalLinks.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable advanced clickable file links in Copilot CLI terminals. Resolves relative paths against session state directories. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.cli.remote.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the /remote command for Copilot CLI sessions, allowing you to view and steer from GitHub.com and the GitHub mobile app.","tags":["advanced"],"agentsWindow":{"default":false}},"github.copilot.chat.searchSubagent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the search subagent tool for iterative code exploration in the workspace.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.useAgenticProxy":{"type":"boolean","default":false,"markdownDescription":"Use the agentic proxy for the search subagent tool.","tags":["advanced"]},"github.copilot.chat.searchSubagent.model":{"type":"string","default":"","markdownDescription":"Model to use for the search subagent. When useAgenticProxy is enabled, defaults to 'vscode-agentic-search-router-a'. Otherwise defaults to the main agent model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.toolCallLimit":{"type":"number","default":4,"markdownDescription":"Maximum number of tool calls the search subagent can make during exploration.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.thoroughnessEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable the thoroughness parameter on the search subagent tool. When enabled, the caller can pass 'normal' or 'deep' to adjust the number of allowed tool-call turns (1× or 2× the base toolCallLimit respectively).","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.enabled":{"type":"boolean","default":false,"markdownDescription":"Deprecated: use `github.copilot.chat.agentDebugLog.fileLogging.enabled` instead.","deprecationMessage":"This setting has been merged into `github.copilot.chat.agentDebugLog.fileLogging.enabled`. Please use this setting instead.","tags":["advanced","experimental"]},"github.copilot.chat.agentDebugLog.fileLogging.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable agent debug logging: write chat debug events (tool calls, LLM requests, token usage, errors) to JSONL files for the debug panel and troubleshoot skill. Requires window reload to take effect.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.fileLogging.flushIntervalMs":{"type":"number","default":4000,"minimum":2000,"markdownDescription":"How often (in milliseconds) buffered debug log entries are flushed to disk. Lower values provide more up-to-date logs at the cost of more frequent disk writes.","tags":["advanced","experimental"]},"github.copilot.chat.agentDebugLog.fileLogging.maxRetainedSessionLogs":{"type":"number","default":50,"minimum":1,"markdownDescription":"Maximum number of chat debug session log directories to retain on disk. Each chat session produces one directory. Older session logs are automatically deleted when this limit is exceeded.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.fileLogging.maxSessionLogSizeMB":{"type":"number","default":100,"minimum":1,"markdownDescription":"Maximum size in megabytes for a single chat debug session log file. When the log exceeds this size, older entries are truncated to retain the most recent data. Defaults to 100 MB.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.otel.enabled":{"type":"boolean","default":false,"scope":"application","policyReference":{"name":"CopilotOtelEnabled"},"markdownDescription":"Enable OpenTelemetry trace/metric/log emission for Copilot Chat operations. Precedence: enterprise policy > env var `COPILOT_OTEL_ENABLED` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.exporterType":{"type":"string","enum":["otlp-grpc","otlp-http","console","file"],"default":"otlp-http","scope":"application","policyReference":{"name":"CopilotOtelProtocol"},"markdownDescription":"OTel exporter type for Copilot Chat telemetry. Configurable in user settings or managed by enterprise policy (policy takes precedence). Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.protocol":{"type":"string","enum":["","http/json","http/protobuf","grpc"],"default":"","scope":"application","policyReference":{"name":"CopilotOtelOtlpProtocol"},"markdownDescription":"OTLP wire protocol for Copilot Chat OTel data, mirroring `OTEL_EXPORTER_OTLP_PROTOCOL`. `http/protobuf` selects the protobuf-over-HTTP exporter; the default (empty) uses `http/json`. Precedence: enterprise policy > env var > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.otlpEndpoint":{"type":"string","default":"http://localhost:4318","scope":"application","policyReference":{"name":"CopilotOtelEndpoint"},"markdownDescription":"OTLP collector endpoint URL for Copilot Chat OTel data. Precedence: enterprise policy > env var `OTEL_EXPORTER_OTLP_ENDPOINT` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.captureContent":{"type":"boolean","default":false,"scope":"application","policyReference":{"name":"CopilotOtelCaptureContent"},"markdownDescription":"Capture input/output messages, system instructions, and tool definitions in OTel telemetry. **Contains potentially sensitive data.** Precedence: enterprise policy > env var `COPILOT_OTEL_CAPTURE_CONTENT` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.serviceName":{"type":"string","default":"","scope":"application","policyReference":{"name":"CopilotOtelServiceName"},"markdownDescription":"OTel `service.name` resource attribute for Copilot Chat OTel data. Configurable in user settings only. Env var `OTEL_SERVICE_NAME` takes precedence over the setting; enterprise policy takes precedence over both. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.resourceAttributes":{"type":"object","additionalProperties":{"type":"string"},"default":{},"scope":"application","policyReference":{"name":"CopilotOtelResourceAttributes"},"markdownDescription":"Additional OTel resource attributes for Copilot Chat OTel data, as a `{ \"key\": \"value\" }` map. Configurable in user settings only. Merged per-key with `OTEL_RESOURCE_ATTRIBUTES` env (env wins over the setting); enterprise policy wins over both. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.headers":{"type":"object","additionalProperties":{"type":"string"},"default":{},"scope":"application","policyReference":{"name":"CopilotOtelHeaders"},"markdownDescription":"Extra OTLP exporter headers (e.g. auth tokens) for Copilot Chat OTel data, as a `{ \"key\": \"value\" }` map. Applied directly to the OTLP exporter, not via environment variables. Configurable in user settings only. Merged per-key with `OTEL_EXPORTER_OTLP_HEADERS` env (env wins over the setting); enterprise policy wins over both. **Contains potentially sensitive credentials.** Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.maxAttributeSizeChars":{"type":"integer","default":0,"minimum":0,"scope":"application","markdownDescription":"Maximum size **in characters** for free-form OTel content attributes (prompts, responses, tool arguments/results, hook input/output). `0` (the default) disables truncation so backends without per-attribute size limits receive full JSON payloads. Set to a positive value when your OTel backend caps attribute size — consult your backend's documentation for its per-attribute limit. Truncated values are suffixed with `...[truncated, original N chars]`. Configurable in user settings only. Env var `COPILOT_OTEL_MAX_ATTRIBUTE_SIZE_CHARS` takes precedence. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.outfile":{"type":"string","default":"","scope":"application","policyReference":{"name":"CopilotOtelOutfile"},"markdownDescription":"File path for file-based OTel exporter output (JSON-lines). When set, overrides exporter type to `file`. Configurable in user settings or managed by enterprise policy (policy takes precedence). Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.dbSpanExporter.enabled":{"type":"boolean","default":false,"scope":"application","markdownDescription":"Enable SQLite DB span exporter. Persists OTel spans to a local SQLite database. Automatically enables OTel when set to true. Configurable in user settings only. Requires window reload.","tags":["advanced"]},"github.copilot.chat.workspace.codeSearchExternalIngest.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable external ingest for semantic codebase search in this workspace. This setting can be used to enable/disable external ingest, but your Copilot Enterprise or Copilot subscription policies ultimately control availability. [Learn more about external ingest policies](https://aka.ms/vscode-external-ingest-policy).","tags":["advanced","onExp"]}}}],"submenus":[{"id":"copilot/reviewComment/additionalActions/applyAndNext","label":"Apply and Go to Next"},{"id":"copilot/reviewComment/additionalActions/discardAndNext","label":"Discard and Go to Next"},{"id":"copilot/reviewComment/additionalActions/discard","label":"Discard"},{"id":"github.copilot.chat.debug.filter","label":"Filter","icon":"$(filter)"},{"id":"github.copilot.chat.debug.exportAllPromptLogsAsJson","label":"Export All Logs as JSON","icon":"$(file-export)"}],"menus":{"editor/title":[{"command":"github.copilot.debug.generateInlineEditTests","when":"resourceScheme == 'ccreq'"},{"command":"github.copilot.chat.notebook.enableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && !github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && !config.notebook.globalToolbar","group":"navigation@10"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && !config.notebook.globalToolbar","group":"navigation@10"},{"command":"github.copilot.chat.copilotCLI.acceptDiff","group":"navigation@1","when":"github.copilot.chat.copilotCLI.hasActiveDiff"},{"command":"github.copilot.chat.copilotCLI.rejectDiff","group":"navigation@2","when":"github.copilot.chat.copilotCLI.hasActiveDiff"}],"editor/title/context":[{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"}],"explorer/context":[{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !explorerResourceIsFolder"}],"editor/context":[{"command":"github.copilot.chat.fix","when":"!github.copilot.interactiveSession.disabled && chatSetupCompleted && !editorReadonly && editorSelectionHasDiagnostics","group":"1_chat@4"},{"command":"github.copilot.chat.explain","when":"!github.copilot.interactiveSession.disabled && chatSetupCompleted","group":"1_chat@5"},{"command":"github.copilot.chat.review","when":"config.github.copilot.chat.reviewSelection.enabled && !github.copilot.interactiveSession.disabled && chatSetupCompleted && resourceScheme != 'vscode-chat-code-block'","group":"1_chat@6"},{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"},{"command":"github.copilot.chat.copilotCLI.addSelection","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && editorHasSelection && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"}],"chat/editor/inlineGutter":[{"command":"github.copilot.chat.explain","when":"!github.copilot.interactiveSession.disabled && editor.hasSelection && !inlineChatFileBelongsToChat","group":"2_chat@2"},{"command":"github.copilot.chat.review","when":"!github.copilot.interactiveSession.disabled && editor.hasSelection && config.github.copilot.chat.reviewSelection.enabled && !inlineChatFileBelongsToChat","group":"2_chat@3"}],"chat/input/editing/sessionToolbar":[{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","when":"chatSessionType == copilotcli && workbenchState != empty && !isSessionsWindow","group":"navigation@0"},{"command":"github.copilot.chat.checkoutPullRequestReroute","when":"chatSessionType == copilot-cloud-agent && chatSessionPullRequest != 'none' && !github.vscode-pull-request-github.activated && gitOpenRepositoryCount != 0","group":"navigation@0"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","when":"chatSessionType == copilot-cloud-agent && github.copilot.chat.cloudTaskCanCreatePullRequest && !isSessionsWindow","group":"navigation@0"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","when":"chatSessionType == copilot-cloud-agent && github.copilot.chat.cloudTaskCanOpenPullRequest && !isSessionsWindow","group":"navigation@0"}],"agents/changes/actions/primary":[{"command":"github.copilot.sessions.initializeRepository","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == workspace && !sessions.hasGitRepository && !sessions.isAgentHostSession","group":"0_init@1"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && !sessions.isMergeBaseBranchProtected && !sessions.hasPullRequest && (sessions.hasUncommittedChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"1_merge@1"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && !sessions.isMergeBaseBranchProtected && !sessions.hasPullRequest && (sessions.hasUncommittedChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"1_merge@2"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && sessions.hasGitHubRemote && !sessions.hasPullRequest && sessions.hasBranchChanges && !sessions.isAgentHostSession","group":"2_pull_request@1"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && sessions.hasGitHubRemote && !sessions.hasPullRequest && sessions.hasBranchChanges && !sessions.isAgentHostSession","group":"2_pull_request@2"},{"command":"github.copilot.sessions.commit","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUncommittedChanges && !sessions.isAgentHostSession","group":"3_commit@1"},{"command":"github.copilot.sessions.commitAndSync","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUncommittedChanges && !sessions.isAgentHostSession","group":"3_commit@2"},{"command":"github.copilot.sessions.sync","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUpstream && !sessions.hasUncommittedChanges && (sessions.hasIncomingChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"4_sync@1"}],"agents/change/inline":[{"command":"github.copilot.sessions.discardChanges","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && !sessionIsArchived && !sessions.isAgentHostSession","group":"navigation@2"}],"chat/contextUsage/actions":[{"command":"github.copilot.chat.compact","when":"!chatIsAgentHostSession"}],"chat/input/status":[{"command":"github.copilot.chat.otel.statusActive","when":"github.copilot.otel.enabledExplicitly && isSessionsWindow","group":"otel@1"}],"chat/newSession":[{"command":"github.copilot.cli.newSession","group":"4_recommendations@0"}],"testing/item/result":[{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"testResultState == failed && !testResultOutdated","group":"inline@2"}],"testing/item/context":[{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"testResultState == failed && !testResultOutdated","group":"inline@2"}],"commandPalette":[{"command":"github.copilot.cli.openInCopilotCLI","when":"false"},{"command":"github.copilot.debug.extensionState","when":"false"},{"command":"github.copilot.cli.sessions.commitToWorktree","when":"false"},{"command":"github.copilot.cli.sessions.commitToRepository","when":"false"},{"command":"github.copilot.chat.triggerPermissiveSignIn","when":"false"},{"command":"github.copilot.chat.otel.statusActive","when":"false"},{"command":"github.copilot.interactiveSession.feedback","when":"github.copilot-chat.activated && !github.copilot.interactiveSession.disabled"},{"command":"github.copilot.debug.workbenchState","when":"true"},{"command":"github.copilot.chat.rerunWithCopilotDebug","when":"false"},{"command":"github.copilot.chat.startCopilotDebugCommand","when":"false"},{"command":"github.copilot.git.generateCommitMessage","when":"false"},{"command":"github.copilot.git.resolveMergeConflicts","when":"false"},{"command":"github.copilot.chat.explain","when":"false"},{"command":"github.copilot.chat.review","when":"!github.copilot.interactiveSession.disabled"},{"command":"github.copilot.chat.review.apply","when":"false"},{"command":"github.copilot.chat.review.applyAndNext","when":"false"},{"command":"github.copilot.chat.review.discard","when":"false"},{"command":"github.copilot.chat.review.discardAndNext","when":"false"},{"command":"github.copilot.chat.review.discardAll","when":"false"},{"command":"github.copilot.chat.review.stagedChanges","when":"false"},{"command":"github.copilot.chat.review.unstagedChanges","when":"false"},{"command":"github.copilot.chat.review.changes","when":"false"},{"command":"github.copilot.chat.review.stagedFileChange","when":"false"},{"command":"github.copilot.chat.review.unstagedFileChange","when":"false"},{"command":"github.copilot.chat.review.previous","when":"false"},{"command":"github.copilot.chat.review.next","when":"false"},{"command":"github.copilot.chat.review.continueInInlineChat","when":"false"},{"command":"github.copilot.chat.review.continueInChat","when":"false"},{"command":"github.copilot.chat.review.markHelpful","when":"false"},{"command":"github.copilot.chat.review.markUnhelpful","when":"false"},{"command":"github.copilot.devcontainer.generateDevContainerConfig","when":"false"},{"command":"github.copilot.tests.fixTestFailure","when":"false"},{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"false"},{"command":"github.copilot.search.markHelpful","when":"false"},{"command":"github.copilot.search.markUnhelpful","when":"false"},{"command":"github.copilot.search.feedback","when":"false"},{"command":"github.copilot.chat.debug.showElements","when":"false"},{"command":"github.copilot.chat.debug.hideElements","when":"false"},{"command":"github.copilot.chat.debug.showTools","when":"false"},{"command":"github.copilot.chat.debug.hideTools","when":"false"},{"command":"github.copilot.chat.debug.showNesRequests","when":"false"},{"command":"github.copilot.chat.debug.hideNesRequests","when":"false"},{"command":"github.copilot.chat.debug.showGhostRequests","when":"false"},{"command":"github.copilot.chat.debug.hideGhostRequests","when":"false"},{"command":"github.copilot.chat.debug.exportLogItem","when":"false"},{"command":"github.copilot.chat.debug.exportPromptArchive","when":"false"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","when":"false"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","when":"false"},{"command":"github.copilot.chat.mcp.setup.check","when":"false"},{"command":"github.copilot.chat.mcp.setup.validatePackage","when":"false"},{"command":"github.copilot.chat.mcp.setup.flow","when":"false"},{"command":"github.copilot.chat.debug.showRawRequestBody","when":"false"},{"command":"github.copilot.debug.showOutputChannel","when":"false"},{"command":"github.copilot.cli.sessions.delete","when":"false"},{"command":"github.copilot.cli.sessions.resumeInTerminal","when":"false"},{"command":"github.copilot.cli.sessions.rename","when":"false"},{"command":"github.copilot.cli.sessions.setTitle","when":"false"},{"command":"github.copilot.cli.sessions.openRepository","when":"false"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","when":"false"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","when":"false"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","when":"false"},{"command":"github.copilot.cloud.sessions.openInBrowser","when":"false"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","when":"false"},{"command":"github.copilot.cloud.sessions.installPRExtension","when":"false"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"false"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","when":"false"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","when":"false"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","when":"false"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","when":"false"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","when":"false"},{"command":"github.copilot.chat.checkoutPullRequestReroute","when":"false"},{"command":"github.copilot.chat.cloudSessions.openRepository","when":"false"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","when":"false"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","when":"false"},{"command":"github.copilot.nes.captureExpected.start","when":"github.copilot.inlineEditsEnabled"},{"command":"github.copilot.nes.captureExpected.submit","when":"github.copilot.inlineEditsEnabled"},{"command":"github.copilot.sessions.commit","when":"false"},{"command":"github.copilot.sessions.commitAndSync","when":"false"},{"command":"github.copilot.sessions.sync","when":"false"},{"command":"github.copilot.sessions.discardChanges","when":"false"},{"command":"github.copilot.sessions.refreshChanges","when":"false"},{"command":"github.copilot.sessions.initializeRepository","when":"false"}],"view/title":[{"submenu":"github.copilot.chat.debug.filter","when":"view == copilot-chat","group":"navigation"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","when":"view == copilot-chat","group":"export@1"},{"command":"workbench.action.chat.openAgentDebugPanel","when":"view == copilot-chat","group":"3_show@0"},{"command":"github.copilot.debug.showOutputChannel","when":"view == copilot-chat","group":"3_show@1"},{"command":"github.copilot.debug.showChatLogView","when":"view == workbench.panel.chat.view.copilot","group":"3_show"}],"view/item/context":[{"command":"github.copilot.chat.debug.showRawRequestBody","when":"view == copilot-chat && viewItem == request","group":"export@0"},{"command":"github.copilot.chat.debug.exportLogItem","when":"view == copilot-chat && (viewItem == toolcall || viewItem == request)","group":"export@1"},{"command":"github.copilot.chat.debug.exportPromptArchive","when":"view == copilot-chat && viewItem == chatprompt","group":"export@2"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","when":"view == copilot-chat && viewItem == chatprompt","group":"export@3"}],"searchPanel/aiResults/commands":[{"command":"github.copilot.search.markHelpful","group":"inline@0","when":"aiResultsTitle && aiResultsRequested"},{"command":"github.copilot.search.markUnhelpful","group":"inline@1","when":"aiResultsTitle && aiResultsRequested"},{"command":"github.copilot.search.feedback","group":"inline@2","when":"aiResultsTitle && aiResultsRequested && github.copilot.debugReportFeedback"}],"comments/comment/title":[{"command":"github.copilot.chat.review.markHelpful","group":"inline@0","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.markUnhelpful","group":"inline@1","when":"commentController == github-copilot-review"}],"commentsView/commentThread/context":[{"command":"github.copilot.chat.review.apply","group":"context@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discard","group":"context@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discardAll","group":"context@3","when":"commentController == github-copilot-review"}],"comments/commentThread/additionalActions":[{"submenu":"copilot/reviewComment/additionalActions/applyAndNext","group":"inline@1","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments > 1"},{"command":"github.copilot.chat.review.apply","group":"inline@1","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments == 1"},{"submenu":"copilot/reviewComment/additionalActions/discardAndNext","group":"inline@2","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments > 1"},{"submenu":"copilot/reviewComment/additionalActions/discard","group":"inline@2","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments == 1"}],"copilot/reviewComment/additionalActions/applyAndNext":[{"command":"github.copilot.chat.review.applyAndNext","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.apply","group":"inline@2","when":"commentController == github-copilot-review"}],"copilot/reviewComment/additionalActions/discardAndNext":[{"command":"github.copilot.chat.review.discardAndNext","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discard","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInInlineChat","group":"inline@3","when":"commentController == github-copilot-review"}],"copilot/reviewComment/additionalActions/discard":[{"command":"github.copilot.chat.review.discard","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInInlineChat","group":"inline@3","when":"commentController == github-copilot-review"}],"comments/commentThread/title":[{"command":"github.copilot.chat.review.previous","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.next","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInChat","group":"inline@3","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discardAll","group":"inline@4","when":"commentController == github-copilot-review"}],"scm/title":[{"command":"github.copilot.chat.review.changes","group":"navigation","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmProviderRootUri in github.copilot.chat.reviewDiff.enabledRootUris"}],"scm/sourceControl":[{"command":"github.copilot.cli.openInCopilotCLI","group":"3_worktree@1","when":"scmProvider == git"}],"scm/resourceGroup/context":[{"command":"github.copilot.chat.review.stagedChanges","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == index","group":"inline@-3"},{"command":"github.copilot.chat.review.unstagedChanges","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == workingTree","group":"inline@-3"}],"scm/resourceState/context":[{"command":"github.copilot.git.resolveMergeConflicts","when":"scmProvider == git && scmResourceGroup == merge && git.activeResourceHasMergeConflicts","group":"z_chat@1"},{"command":"github.copilot.chat.review.stagedFileChange","group":"3_copilot","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == index"},{"command":"github.copilot.chat.review.unstagedFileChange","group":"3_copilot","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == workingTree"}],"scm/inputBox":[{"command":"github.copilot.git.generateCommitMessage","when":"scmProvider == git && chatSetupCompleted"}],"testing/message/context":[{"command":"github.copilot.tests.fixTestFailure","when":"testing.testItemHasUri","group":"inline@1"}],"issue/reporter":[{"command":"github.copilot.report"}],"github.copilot.chat.debug.filter":[{"command":"github.copilot.chat.debug.showElements","when":"github.copilot.chat.debug.elementsHidden","group":"commands@0"},{"command":"github.copilot.chat.debug.hideElements","when":"!github.copilot.chat.debug.elementsHidden","group":"commands@0"},{"command":"github.copilot.chat.debug.showTools","when":"github.copilot.chat.debug.toolsHidden","group":"commands@1"},{"command":"github.copilot.chat.debug.hideTools","when":"!github.copilot.chat.debug.toolsHidden","group":"commands@1"},{"command":"github.copilot.chat.debug.showNesRequests","when":"github.copilot.chat.debug.nesRequestsHidden","group":"commands@2"},{"command":"github.copilot.chat.debug.hideNesRequests","when":"!github.copilot.chat.debug.nesRequestsHidden","group":"commands@2"},{"command":"github.copilot.chat.debug.showGhostRequests","when":"github.copilot.chat.debug.ghostRequestsHidden","group":"commands@3"},{"command":"github.copilot.chat.debug.hideGhostRequests","when":"!github.copilot.chat.debug.ghostRequestsHidden","group":"commands@3"}],"notebook/toolbar":[{"command":"github.copilot.chat.notebook.enableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && !github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && config.notebook.globalToolbar","group":"navigation/execute@15"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && config.notebook.globalToolbar","group":"navigation/execute@15"}],"editor/content":[{"command":"github.copilot.git.resolveMergeConflicts","group":"z_chat@1","when":"config.git.enabled && !git.missing && !isInDiffEditor && !isMergeEditor && resource in git.mergeChanges && git.activeResourceHasMergeConflicts && chatSetupCompleted"}],"multiDiffEditor/content":[{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"resourceScheme == copilotcli-worktree-changes && workbenchState != empty && !isSessionsWindow"}],"chat/chatSessions":[{"command":"github.copilot.cli.sessions.delete","when":"chatSessionType == copilotcli","group":"1_edit@10"},{"command":"github.copilot.cli.sessions.rename","when":"chatSessionType == copilotcli","group":"1_edit@4"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","when":"chatSessionType == copilotcli && !isSessionsWindow","group":"2_open@1"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","when":"chatSessionType == copilotcli","group":"2_open@2"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","when":"chatSessionType == copilotcli","group":"2_open@3"},{"command":"github.copilot.cli.sessions.resumeInTerminal","when":"chatSessionType == copilotcli","group":"2_open@4"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"chatSessionType == copilotcli && workbenchState != empty && !isSessionsWindow","group":"3_apply@0"},{"command":"github.copilot.cloud.sessions.openInBrowser","when":"chatSessionType == copilot-cloud-agent","group":"navigation@10"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","when":"chatSessionType == copilot-cloud-agent","group":"1_edit@10"}],"chatSessions/item/context":[{"command":"github.copilot.cli.sessions.rename","when":"sessionType == copilotcli && sessionProviderId == default-copilot","group":"1_edit@4"}],"chat/multiDiff/context":[{"command":"github.copilot.cloud.sessions.installPRExtension","when":"chatSessionType == copilot-cloud-agent && !github.copilot.prExtensionInstalled","group":"inline@1"}],"chat/input/editing/sessionTitleToolbar":[{"command":"github.copilot.sessions.refreshChanges","when":"sessionType == copilotcli && isSessionsWindow && !sessions.isAgentHostSession","group":"9_refresh@1"}]},"icons":{"copilot-logo":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0041"}},"copilot-warning":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0042"}},"copilot-notconnected":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0043"}}},"iconFonts":[{"id":"copilot-font","src":[{"path":"assets/copilot.woff","format":"woff"}]}],"terminalQuickFixes":[{"id":"copilot-chat.fixWithCopilot","commandLineMatcher":".+","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":".+","offset":0},"kind":"explain"},{"id":"copilot-chat.generateCommitMessage","commandLineMatcher":"git add .+","commandExitResult":"success","kind":"explain","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":".+","offset":0}},{"id":"copilot-chat.terminalToDebugging","commandLineMatcher":".+","kind":"explain","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":"","offset":0}},{"id":"copilot-chat.terminalToDebuggingSuccess","commandLineMatcher":".+","kind":"explain","commandExitResult":"success","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":"","offset":0}}],"languages":[{"id":"ignore","filenamePatterns":[".copilotignore"],"aliases":[]},{"id":"markdown","extensions":[".copilotmd"]}],"views":{"copilot-chat":[{"id":"copilot-chat","name":"Chat Debug","icon":"assets/debug-icon.svg","when":"github.copilot.chat.showLogView"}],"context-inspector":[{"id":"context-inspector","name":"Language Context Inspector","icon":"$(inspect)","when":"github.copilot.chat.showContextInspectorView"}]},"viewsContainers":{"activitybar":[{"id":"copilot-chat","title":"Chat Debug","icon":"assets/debug-icon.svg"},{"id":"context-inspector","title":"Language Context Inspector","icon":"$(inspect)"}]},"configurationDefaults":{"workbench.editorAssociations":{"*.copilotmd":"vscode.markdown.preview.editor"}},"keybindings":[{"command":"github.copilot.chat.copilotCLI.addFileReference","key":"ctrl+shift+.","mac":"cmd+shift+.","when":"github.copilot.chat.copilotCLI.hasSession && editorTextFocus"},{"command":"github.copilot.chat.rerunWithCopilotDebug","key":"ctrl+alt+.","mac":"cmd+alt+.","when":"github.copilot-chat.activated && terminalShellIntegrationEnabled && terminalFocus && !terminalAltBufferActive"},{"command":"github.copilot.nes.captureExpected.confirm","key":"ctrl+enter","mac":"cmd+enter","when":"copilotNesCaptureMode && editorTextFocus"},{"command":"github.copilot.nes.captureExpected.abort","key":"escape","when":"copilotNesCaptureMode && editorTextFocus"}],"walkthroughs":[{"id":"copilotWelcome","title":"GitHub Copilot","description":"Your AI pair programmer to write code faster and smarter","when":"!isWeb","steps":[{"id":"copilot.setup.signIn","title":"Sign in to use Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.\n\n[Use Copilot for Free](command:workbench.action.chat.triggerSetupForceSignIn)","when":"chatEntitlementSignedOut && !view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && !github.copilot.interactiveSession.individual.disabled && !github.copilot.interactiveSession.individual.expired && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signInNoAction","title":"Sign in to use Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.","when":"chatEntitlementSignedOut && view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && !github.copilot.interactiveSession.individual.disabled && !github.copilot.interactiveSession.individual.expired && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signUp","title":"Get started with Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.\n\n[Use Copilot for Free](command:workbench.action.chat.triggerSetupForceSignIn)","when":"chatPlanCanSignUp && !view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && (github.copilot.interactiveSession.individual.disabled || github.copilot.interactiveSession.individual.expired) && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signUpNoAction","title":"Get started with Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.","when":"chatPlanCanSignUp && view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && (github.copilot.interactiveSession.individual.disabled || github.copilot.interactiveSession.individual.expired) && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.panelChat","title":"Chat about your code","description":"Ask Copilot programming questions or get help with your code using **@workspace**.\n Type **@** to see all available chat participants that you can chat with directly, each with their own expertise.\n[Chat with Copilot](command:workbench.action.chat.open?%7B%22mode%22%3A%22ask%22%7D)","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.edits","title":"Make changes using natural language","description":"Use **Copilot Edits** to select files you want to work with and describe changes you want to make. Copilot applies them directly to your files.\n[Edit with Copilot](command:workbench.action.chat.open?%7B%22mode%22%3A%22edit%22%7D)","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-hclight.mp4"},"altText":"The video shows the user dragging and dropping files into the Copilot Edits input box located in the secondary sidebar. Copilot then updates the file according to the user’s request"}},{"id":"copilot.firstSuggest","title":"AI-suggested inline suggestions","description":"As you type in the editor, Copilot suggests code to help you complete what you started.","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-hclight.mp4"},"altText":"The video shows different Copilot inline suggestions, where Copilot suggests code to help the user complete their code"}},{"id":"copilot.inlineChatNotMac","title":"Use natural language in your files","description":"Sometimes, it's easier to describe the code you want to write directly within a file.\nPlace your cursor or make a selection and use **``Ctrl+I``** to open **Inline Chat**.","when":"!isMac && (!chatEntitlementSignedOut || chatIsEnabled )","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hclight.mp4"},"altText":"Inline Chat view in the editor. The video shows the user invoking the inline chat widget and asking Copilot to make a change in the file using natural language. Copilot then makes the requested change"}},{"id":"copilot.inlineChatMac","title":"Use natural language in your files","description":"Sometimes, it's easier to describe the code you want to write directly within a file.\nPlace your cursor or make a selection and use **``Cmd+I``** to open **Inline Chat**.","when":"isMac && (!chatEntitlementSignedOut || chatIsEnabled )","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hclight.mp4"},"altText":"The video shows the user invoking the inline chat widget and asking Copilot to make a change in the file using natural language. Copilot then makes the requested change"}},{"id":"copilot.sparkle","title":"Look out for smart actions","description":"Copilot enhances your coding experience with AI-powered smart actions throughout the VS Code interface.\nLook for $(sparkle) icons, such as in the [Source Control view](command:workbench.view.scm), where Copilot generates commit messages and PR descriptions based on code changes.\n\n[Discover Tips and Tricks](https://code.visualstudio.com/docs/copilot/copilot-vscode-features)","when":"!chatEntitlementSignedOut || chatIsEnabled","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-hclight.mp4"},"altText":"The video shows the sparkle icon in the source control input box being clicked, triggering GitHub Copilot to generate a commit message automatically"}}]}],"jsonValidation":[{"fileMatch":"settings.json","url":"ccsettings://root/schema.json"}],"typescriptServerPlugins":[{"name":"@vscode/copilot-typescript-server-plugin","enableForWorkspaceTypeScriptVersions":true}],"chatSessions":[{"type":"copilotcli","name":"cli","displayName":"Copilot CLI","icon":"$(copilot)","welcomeTitle":"Copilot CLI","welcomeMessage":"Run tasks in the background with the Copilot CLI","inputPlaceholder":"Run tasks in the background with the Copilot CLI, type `#` for adding context","order":1,"canDelegate":true,"description":"Delegate tasks to a background agent running locally on your machine. The agent iterates via chat and works asynchronously in a Git worktree to implement changes isolated from your main workspace using the GitHub Copilot CLI.","when":"config.github.copilot.chat.backgroundAgent.enabled","supportsAutoModel":true,"requiresCopilotSignIn":true,"capabilities":{"supportsFileAttachments":true,"supportsProblemAttachments":true,"supportsToolAttachments":false,"supportsImageAttachments":true,"supportsSymbolAttachments":true,"supportsSearchResultAttachments":true,"supportsSourceControlAttachments":true,"supportsPromptAttachments":true,"supportsHandOffs":true},"commands":[{"name":"delegate","description":"Delegate chat session to cloud agent and create associated PR","when":"config.github.copilot.chat.cloudAgent.enabled"},{"name":"compact","description":"Free up context by compacting the conversation history"},{"name":"plan","description":"Create an implementation plan before coding","when":"config.github.copilot.chat.cli.planCommand.enabled"},{"name":"fleet","description":"Enable fleet mode for parallel subagent execution","when":"false"},{"name":"remote","description":"Show remote control status, or use /remote on and /remote off","when":"config.github.copilot.chat.cli.remote.enabled"}],"customAgentTarget":"github-copilot","requiresCustomModels":true,"autoAttachReferences":true,"useRequestToPopulateBuiltInPickers":true},{"type":"copilot-cloud-agent","alternativeIds":["copilot-swe-agent"],"name":"cloud","displayName":"Cloud","icon":"$(cloud)","welcomeTitle":"Cloud Agent","welcomeMessage":"Delegate tasks to the cloud","inputPlaceholder":"Delegate tasks to the cloud, type `#` for adding context","order":2,"canDelegate":true,"description":"Delegate tasks to the GitHub Copilot coding agent. The agent iterates via chat and works asynchronously in the cloud to implement changes and pull requests as needed.","when":"config.github.copilot.chat.cloudAgent.enabled","supportsAutoModel":false,"requiresCopilotSignIn":true,"capabilities":{"supportsFileAttachments":true},"autoAttachReferences":true}],"chatAgents":[],"chatPromptFiles":[{"path":"./assets/prompts/plan.prompt.md","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-standup.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-tips.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-cost-tips.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-improve.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-reindex.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-search.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]}],"chatSkills":[{"path":"./assets/prompts/skills/project-setup-info-local/SKILL.md","when":"!config.github.copilot.chat.newWorkspace.useContext7","sessionTypes":["local"]},{"path":"./assets/prompts/skills/project-setup-info-context7/SKILL.md","when":"config.github.copilot.chat.newWorkspace.useContext7","sessionTypes":["local"]},{"path":"./assets/prompts/skills/install-vscode-extension/SKILL.md","when":"config.github.copilot.chat.installExtensionSkill.enabled && config.github.copilot.chat.newWorkspaceCreation.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/skills/get-search-view-results/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/troubleshoot/SKILL.md","sessionTypes":["local","copilotcli"]},{"path":"./assets/prompts/skills/agent-customization/SKILL.md","sessionTypes":["local","copilotcli"]},{"path":"./assets/prompts/skills/init/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-prompt/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-instructions/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-skill/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-agent/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-hook/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/chronicle/SKILL.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]}],"terminal":{"profiles":[{"icon":"copilot","id":"copilot-cli","title":"GitHub Copilot CLI","titleTemplate":"${sequence}"}]}},"prettier":{"useTabs":true,"tabWidth":4,"singleQuote":true},"scripts":{"postinstall":"tsx ./script/postinstall.ts","build":"node .esbuild.mts --sourcemaps","compile":"node .esbuild.mts --dev","watch":"npm-run-all -lp watch:esbuild watch:typecheck","watch:esbuild":"node .esbuild.mts --watch --dev","watch:typecheck":"tsc --noEmit --watch --preserveWatchOutput --project tsconfig.json","watch:typecheck-extension":"tsc --noEmit --watch --project tsconfig.json","watch:typecheck-extension-web":"tsc --noEmit --watch --project tsconfig.worker.json","watch:typecheck-simulation-workbench":"tsc --noEmit --watch --project test/simulation/workbench/tsconfig.json","typecheck":"tsc --noEmit --project tsconfig.json && tsc --noEmit --project test/simulation/workbench/tsconfig.json && tsc --noEmit --project tsconfig.worker.json && tsc --noEmit --project src/extension/completions-core/vscode-node/extension/src/copilotPanel/webView/tsconfig.json","lint":"npx eslint . --max-warnings=0","lint-staged":"npx eslint --max-warnings=0","tsfmt":"npx tsfmt -r --verify","test":"npm-run-all test:*","test:extension":"vscode-test","test:sanity":"vscode-test --sanity","test:unit":"vitest --run --pool=forks","vitest":"vitest","bench":"vitest bench","get_env":"tsx script/setup/getEnv.mts","get_token":"tsx script/setup/getToken.mts","prettier":"prettier --list-different --write --cache .","simulate":"node dist/simulationMain.js","simulate-require-cache":"node dist/simulationMain.js --require-cache","simulate-ci":"node dist/simulationMain.js --ci --require-cache","simulate-update-baseline":"node dist/simulationMain.js --update-baseline","simulate-gc":"node dist/simulationMain.js --require-cache --gc","setup":"npm run get_env && npm run get_token","setup:dotnet":"run-script-os","setup:dotnet:darwin:linux":"curl -O https://raw.githubusercontent.com/dotnet/install-scripts/main/src/dotnet-install.sh && chmod u+x dotnet-install.sh && ./dotnet-install.sh --channel 10.0 && rm dotnet-install.sh","setup:dotnet:win32":"powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"Invoke-WebRequest -Uri https://raw.githubusercontent.com/dotnet/install-scripts/main/src/dotnet-install.ps1 -OutFile dotnet-install.ps1; ./dotnet-install.ps1 -channel 10.0; Remove-Item dotnet-install.ps1\"","analyze-edits":"tsx script/analyzeEdits.ts","extract-chat-lib":"tsx script/build/extractChatLib.ts","create_venv":"tsx script/setup/createVenv.mts","package":"vsce package","web":"vscode-test-web --headless --extensionDevelopmentPath=. .","test:prompt":"mocha \"src/extension/completions-core/vscode-node/prompt/**/test/**/*.test.{ts,tsx}\"","test:completions-core":"tsx src/extension/completions-core/vscode-node/extension/test/runTest.ts"},"devDependencies":{"@azure/identity":"4.9.1","@azure/keyvault-secrets":"^4.10.0","@azure/msal-node":"^3.6.3","@c4312/scip":"^0.1.0","@fluentui/react-components":"^9.66.6","@fluentui/react-icons":"^2.0.305","@hediet/node-reload":"^0.8.0","@octokit/types":"^14.1.0","@stylistic/eslint-plugin":"^3.0.1","@types/eslint":"^9.0.0","@types/express":"^5.0.6","@types/google-protobuf":"^3.15.12","@types/js-yaml":"^4.0.9","@types/markdown-it":"^14.0.0","@types/minimist":"^1.2.5","@types/mocha":"^10.0.10","@types/node":"^22.16.3","@types/picomatch":"^4.0.0","@types/react":"17.0.44","@types/react-dom":"^18.2.17","@types/sinon":"^17.0.4","@types/source-map-support":"^0.5.10","@types/tar":"^6.1.13","@types/vinyl":"^2.0.12","@types/vscode-webview":"^1.57.5","@types/ws":"^8.5.3","@types/yargs":"^17.0.24","@typescript-eslint/eslint-plugin":"^8.35.0","@typescript-eslint/parser":"^8.32.0","@typescript-eslint/typescript-estree":"^8.26.1","@typescript/native":"npm:typescript@7.1.0-dev.20260818.1","@vitest/coverage-v8":"^4.1.8","@vitest/snapshot":"^1.5.0","@vscode/debugadapter":"^1.68.0","@vscode/debugprotocol":"^1.68.0","@vscode/dts":"^0.4.1","@vscode/lsif-language-service":"^0.1.0-pre.4","@vscode/test-cli":"^0.0.11","@vscode/test-electron":"^2.5.2","@vscode/test-web":"^0.0.81","@vscode/vsce":"3.6.0","copyfiles":"^2.4.1","csv-parse":"^6.0.0","dotenv":"^17.2.0","electron":"^42.5.0","esbuild":"0.28.1","fastq":"^1.19.1","glob":"^11.1.0","js-yaml":"^4.3.0","minimist":"^1.2.8","mobx":"^6.13.7","mobx-react-lite":"^4.1.0","mocha":"^11.7.1","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","monaco-editor":"0.44.0","npm-run-all":"^4.1.5","open":"^10.1.2","openai":"^6.7.0","outdent":"^0.8.0","picomatch":"^4.0.4","playwright":"^1.61.1","prettier":"^3.6.2","react":"^17.0.2","react-dom":"17.0.2","rimraf":"^6.0.1","run-script-os":"^1.1.6","shiki":"~1.15.0","sinon":"^21.0.0","source-map-support":"^0.5.21","tar":"^7.5.16","ts-dedent":"^2.2.0","tsx":"^4.22.4","typescript":"npm:@typescript/typescript6@^6.0.2","vite-plugin-wasm":"^3.6.0","vitest":"^4.1.8","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12","vscode-languageserver-types":"^3.17.5","yaml":"^2.8.0","yargs":"^17.7.2","zod":"3.25.76"},"dependencies":{"@anthropic-ai/sdk":"^0.82.0","@github/blackbird-external-ingest-utils":"^0.3.0","@github/copilot":"^1.0.73","@google/genai":"1.30.0","@humanwhocodes/gitignore-to-minimatch":"1.0.2","@microsoft/tiktokenizer":"^1.0.10","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.212.0","@opentelemetry/exporter-logs-otlp-grpc":"^0.219.0","@opentelemetry/exporter-logs-otlp-http":"^0.219.0","@opentelemetry/exporter-logs-otlp-proto":"^0.219.0","@opentelemetry/exporter-metrics-otlp-grpc":"^0.219.0","@opentelemetry/exporter-metrics-otlp-http":"^0.219.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.219.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.219.0","@opentelemetry/exporter-trace-otlp-http":"^0.219.0","@opentelemetry/exporter-trace-otlp-proto":"^0.219.0","@opentelemetry/resources":"^2.5.1","@opentelemetry/sdk-logs":"^0.212.0","@opentelemetry/sdk-metrics":"^2.5.1","@opentelemetry/sdk-trace-node":"^2.5.1","@opentelemetry/semantic-conventions":"^1.39.0","@sinclair/typebox":"^0.34.41","@vscode/copilot-api":"^0.5.2","@vscode/extension-telemetry":"^1.5.1","@vscode/l10n":"^0.0.18","@vscode/prompt-tsx":"^0.4.0-alpha.8","@vscode/tree-sitter-wasm":"0.0.5-php.2","@vscode/webview-ui-toolkit":"^1.3.1","@xterm/headless":"^5.5.0","ajv":"^8.18.0","applicationinsights":"^2.9.7","best-effort-json-parser":"^1.2.1","diff":"^8.0.3","express":"^5.2.1","ignore":"^7.0.5","isbinaryfile":"^5.0.4","jsonc-parser":"^3.3.1","lru-cache":"^11.1.0","markdown-it":"^14.2.0","minimatch":"^10.2.1","undici":"^7.24.1","vscode-tas-client":"^0.3.1","web-tree-sitter":"^0.23.0"},"overrides":{"string_decoder":"npm:string_decoder@1.2.0","yauzl":"^3.3.1","zod":"3.25.76"},"vscodeCommit":"94c8e2adc50e26ef70af85a0de3a9efed757acaa","allowScripts":{"esbuild@0.28.1":true,"keytar@7.9.0":true,"@playwright/browser-chromium@1.61.1":true,"@vscode/vsce-sign@2.1.0":true,"protobufjs":false,"fsevents@2.3.3":true,"fsevents@2.3.2":true},"isPreRelease":false,"originalEnabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","chatDebug","chatHooks","extensionsAny","newSymbolNamesProvider","interactive","codeActionAI","activeComment","commentReveal","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","documentFiltersExclusive","embeddings","findTextInFiles","findTextInFiles2","languageModelToolSupportsModel","findFiles2","textSearchProvider","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","chatParticipantAdditions","defaultChatParticipant","contribSourceControlInputBoxMenu","authLearnMore","testObserver","aiTextSearchProvider","chatParticipantPrivate","chatProvider","contribDebugCreateConfiguration","chatReferenceDiagnostic","textSearchProvider2","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelPricing","inlineCompletionsAdditions","chatStatusItem","chatInputNotification","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","languageModelThinkingPart","chatSessionsProvider","devDeviceId","contribEditorContentMenu","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","environmentPower","terminalTitle","toolInvocationApproveCombination","chatSessionCustomizationProvider"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/copilot","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":true},{"type":0,"identifier":{"id":"vscode.cpp"},"manifest":{"name":"cpp","displayName":"C/C++ Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in C/C++ files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"c","extensions":[".c",".i"],"aliases":["C","c"],"configuration":"./language-configuration.json"},{"id":"cpp","extensions":[".cpp",".cppm",".cc",".ccm",".cxx",".cxxm",".c++",".c++m",".hpp",".hh",".hxx",".h++",".h",".ii",".ino",".inl",".ipp",".ixx",".mpp",".mxx",".tpp",".txx",".hpp.in",".h.in"],"aliases":["C++","Cpp","cpp"],"configuration":"./language-configuration.json"},{"id":"cuda-cpp","extensions":[".cu",".cuh"],"aliases":["CUDA C++"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"c","scopeName":"source.c","path":"./syntaxes/c.tmLanguage.json"},{"language":"cpp","scopeName":"source.cpp.embedded.macro","path":"./syntaxes/cpp.embedded.macro.tmLanguage.json"},{"language":"cpp","scopeName":"source.cpp","path":"./syntaxes/cpp.tmLanguage.json"},{"scopeName":"source.c.platform","path":"./syntaxes/platform.tmLanguage.json"},{"language":"cuda-cpp","scopeName":"source.cuda-cpp","path":"./syntaxes/cuda-cpp.tmLanguage.json"}],"problemPatterns":[{"name":"nvcc-location","regexp":"^(.*)\\((\\d+)\\):\\s+(warning|error):\\s+(.*)","kind":"location","file":1,"location":2,"severity":3,"message":4}],"problemMatchers":[{"name":"nvcc","owner":"cuda-cpp","fileLocation":["relative","${workspaceFolder}"],"pattern":"$nvcc-location"}],"snippets":[{"language":"c","path":"./snippets/c.code-snippets"},{"language":"cpp","path":"./snippets/cpp.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/cpp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.csharp"},"manifest":{"name":"csharp","displayName":"C# Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in C# files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dotnet/csharp-tmLanguage grammars/csharp.tmLanguage ./syntaxes/csharp.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"configurationDefaults":{"[csharp]":{"editor.maxTokenizationLineLength":2500}},"languages":[{"id":"csharp","extensions":[".cs",".csx",".cake"],"aliases":["C#","csharp"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"csharp","scopeName":"source.cs","path":"./syntaxes/csharp.tmLanguage.json","tokenTypes":{"meta.interpolation":"other"},"unbalancedBracketScopes":["keyword.operator.relational.cs","keyword.operator.arrow.cs","punctuation.accessor.pointer.cs","keyword.operator.bitwise.shift.cs","keyword.operator.assignment.compound.bitwise.cs"]}],"snippets":[{"language":"csharp","path":"./snippets/csharp.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/csharp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.css"},"manifest":{"name":"css","displayName":"CSS Language Basics","description":"Provides syntax highlighting and bracket matching for CSS, LESS and SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin microsoft/vscode-css grammars/css.cson ./syntaxes/css.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"css","aliases":["CSS","css"],"extensions":[".css"],"mimetypes":["text/css"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"css","scopeName":"source.css","path":"./syntaxes/css.tmLanguage.json","tokenTypes":{"meta.function.url string.quoted":"other"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/css","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.css-language-features"},"manifest":{"name":"css-language-features","displayName":"CSS Language Features","description":"Provides rich language support for CSS, LESS and SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.77.0"},"icon":"icons/css.png","activationEvents":["onLanguage:css","onLanguage:less","onLanguage:scss"],"main":"./client/dist/node/cssClientMain","browser":"./client/dist/browser/cssClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"categories":["Programming Languages"],"contributes":{"configuration":[{"order":22,"id":"css","title":"CSS","properties":{"css.customData":{"type":"array","markdownDescription":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-css-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its CSS support for CSS custom properties (variables), at-rules, pseudo-classes, and pseudo-elements you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","default":[],"items":{"type":"string"},"scope":"resource"},"css.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"css.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"css.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"css.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in CSS hovers."},"css.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in CSS hovers."},"css.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"css.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"css.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"css.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"css.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"css.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"css.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"css.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"css.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"css.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"css.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"css.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"css.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"css.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"css.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"css.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"css.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"css.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"css.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"css.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"css.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the CSS language server."},"css.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default CSS formatter."},"css.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"css.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"css.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"css.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"css.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"css.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#css.format.preserveNewLines#` is enabled."}}},{"id":"scss","order":24,"title":"SCSS (Sass)","properties":{"scss.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"scss.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"scss.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"scss.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in SCSS hovers."},"scss.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in SCSS hovers."},"scss.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"scss.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"scss.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"scss.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"scss.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"scss.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"scss.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"scss.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"scss.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"scss.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"scss.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"scss.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"scss.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"scss.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"scss.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"scss.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"scss.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"scss.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"scss.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"scss.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"scss.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default SCSS formatter."},"scss.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"scss.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"scss.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"scss.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"scss.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"scss.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#scss.format.preserveNewLines#` is enabled."}}},{"id":"less","order":23,"type":"object","title":"LESS","properties":{"less.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"less.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"less.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"less.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in LESS hovers."},"less.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in LESS hovers."},"less.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"less.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"less.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"less.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"less.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"less.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"less.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"less.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"less.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"less.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"less.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"less.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"less.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"less.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"less.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"less.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"less.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"less.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"less.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"less.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"less.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default LESS formatter."},"less.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"less.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"less.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"less.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"less.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"less.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#less.format.preserveNewLines#` is enabled."}}}],"configurationDefaults":{"[css]":{"editor.suggest.insertMode":"replace"},"[scss]":{"editor.suggest.insertMode":"replace"},"[less]":{"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.css-data.json","url":"https://raw.githubusercontent.com/microsoft/vscode-css-languageservice/master/docs/customData.schema.json"},{"fileMatch":"package.json","url":"./schemas/package.schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/css-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.dart"},"manifest":{"name":"dart","displayName":"Dart Language Basics","description":"Provides syntax highlighting & bracket matching in Dart files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dart-lang/dart-syntax-highlight grammars/dart.json ./syntaxes/dart.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dart","extensions":[".dart"],"aliases":["Dart"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dart","scopeName":"source.dart","path":"./syntaxes/dart.tmLanguage.json"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/dart","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.debug-auto-launch"},"manifest":{"name":"debug-auto-launch","displayName":"Node Debug Auto-attach","description":"Helper for auto-attach feature when node-debug extensions are not active.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.5.0"},"icon":"media/icon.png","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onStartupFinished"],"main":"./dist/extension","contributes":{"commands":[{"command":"extension.node-debug.toggleAutoAttach","title":"Toggle Auto Attach","category":"Debug"}]},"prettier":{"printWidth":100,"trailingComma":"all","singleQuote":true,"arrowParens":"avoid"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/debug-auto-launch","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.debug-server-ready"},"manifest":{"name":"debug-server-ready","displayName":"Server Ready Action","description":"Open URI in browser if server under debugging is ready.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.32.0"},"icon":"media/icon.png","activationEvents":["onDebugResolve"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["terminalDataWriteEvent"],"main":"./dist/extension","contributes":{"debuggers":[{"type":"*","configurationAttributes":{"launch":{"properties":{"serverReadyAction":{"oneOf":[{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"openExternally","killOnServerStop":false},"properties":{"action":{"type":"string","enum":["openExternally","openIntegratedBrowser"],"enumDescriptions":["Open URI externally with the default application.","Open URI in the integrated browser."],"markdownDescription":"What to do with the URI when the server is ready.","default":"openExternally"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"uriFormat":{"type":"string","markdownDescription":"A format string used when constructing the URI from a port number. The first '%s' is substituted with the port number.","default":"http://localhost:%s"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"debugWithEdge","pattern":"listening on port ([0-9]+)","uriFormat":"http://localhost:%s","webRoot":"${workspaceFolder}","killOnServerStop":false},"properties":{"action":{"type":"string","enum":["debugWithChrome","debugWithEdge"],"enumDescriptions":["Start debugging with the 'Debugger for Chrome'."],"markdownDescription":"What to do with the URI when the server is ready.","default":"debugWithEdge"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"uriFormat":{"type":"string","markdownDescription":"A format string used when constructing the URI from a port number. The first '%s' is substituted with the port number.","default":"http://localhost:%s"},"webRoot":{"type":"string","markdownDescription":"Value passed to the debug configuration for the 'Debugger for Chrome'.","default":"${workspaceFolder}"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"startDebugging","name":"","killOnServerStop":false},"required":["name"],"properties":{"action":{"type":"string","enum":["startDebugging"],"enumDescriptions":["Run another launch configuration."],"markdownDescription":"What to do with the URI when the server is ready.","default":"startDebugging"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"name":{"type":"string","markdownDescription":"Name of the launch configuration to run.","default":"Launch Browser"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"startDebugging","config":{"type":"node","request":"launch"},"killOnServerStop":false},"required":["config"],"properties":{"action":{"type":"string","enum":["startDebugging"],"enumDescriptions":["Run another launch configuration."],"markdownDescription":"What to do with the URI when the server is ready.","default":"startDebugging"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"config":{"type":"object","markdownDescription":"The debug configuration to run.","default":{}},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}}]}}}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalDataWriteEvent"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/debug-server-ready","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.diff"},"manifest":{"name":"diff","displayName":"Diff Language Basics","description":"Provides syntax highlighting & bracket matching in Diff files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/diff.tmbundle Syntaxes/Diff.plist ./syntaxes/diff.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"diff","aliases":["Diff","diff"],"extensions":[".diff",".patch",".rej"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"diff","scopeName":"source.diff","path":"./syntaxes/diff.tmLanguage.json"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/diff","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.docker"},"manifest":{"name":"docker","displayName":"Docker Language Basics","description":"Provides syntax highlighting and bracket matching in Docker files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dockerfile","extensions":[".dockerfile",".containerfile"],"filenames":["Dockerfile","Containerfile"],"filenamePatterns":["Dockerfile.*","Containerfile.*"],"aliases":["Docker","Dockerfile","Containerfile"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dockerfile","scopeName":"source.dockerfile","path":"./syntaxes/docker.tmLanguage.json"}],"configurationDefaults":{"[dockerfile]":{"editor.quickSuggestions":{"strings":true}}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/docker","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.dotenv"},"manifest":{"name":"dotenv","displayName":"Dotenv Language Basics","description":"Provides syntax highlighting and bracket matching in dotenv files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dotenv-org/dotenv-vscode syntaxes/dotenv.tmLanguage.json ./syntaxes/dotenv.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dotenv","extensions":[".env"],"filenames":[".env",".flaskenv","user-dirs.dirs"],"filenamePatterns":[".env.*"],"aliases":["Dotenv"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dotenv","scopeName":"source.dotenv","path":"./syntaxes/dotenv.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/dotenv","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.emmet"},"manifest":{"name":"emmet","displayName":"Emmet","description":"Emmet support for VS Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.13.0"},"icon":"images/icon.png","categories":["Other"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"activationEvents":["onCommand:emmet.expandAbbreviation","onLanguage"],"main":"./dist/node/emmetNodeMain","browser":"./dist/browser/emmetBrowserMain","contributes":{"configuration":{"type":"object","title":"Emmet","properties":{"emmet.showExpandedAbbreviation":{"type":["string"],"enum":["never","always","inMarkupAndStylesheetFilesOnly"],"default":"always","markdownDescription":"Shows expanded Emmet abbreviations as suggestions.\nThe option `\"inMarkupAndStylesheetFilesOnly\"` applies to html, haml, jade, slim, xml, xsl, css, scss, sass, less and stylus.\nThe option `\"always\"` applies to all parts of the file regardless of markup/css."},"emmet.showAbbreviationSuggestions":{"type":"boolean","default":true,"scope":"language-overridable","markdownDescription":"Shows possible Emmet abbreviations as suggestions. Not applicable in stylesheets or when emmet.showExpandedAbbreviation is set to `\"never\"`."},"emmet.includeLanguages":{"type":"object","additionalProperties":{"type":"string"},"default":{},"markdownDescription":"Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and Emmet supported language.\n For example: `{\"vue-html\": \"html\", \"javascript\": \"javascriptreact\"}`"},"emmet.variables":{"type":"object","properties":{"lang":{"type":"string","default":"en"},"charset":{"type":"string","default":"UTF-8"}},"additionalProperties":{"type":"string"},"default":{},"markdownDescription":"Variables to be used in Emmet snippets."},"emmet.syntaxProfiles":{"type":"object","default":{},"markdownDescription":"Define profile for specified syntax or use your own profile with specific rules."},"emmet.excludeLanguages":{"type":"array","items":{"type":"string"},"default":["markdown"],"markdownDescription":"An array of languages where Emmet abbreviations should not be expanded."},"emmet.extensionsPath":{"type":"array","items":{"type":"string","markdownDescription":"A path containing Emmet syntaxProfiles and/or snippets."},"default":[],"scope":"machine-overridable","markdownDescription":"An array of paths, where each path can contain Emmet syntaxProfiles and/or snippet files.\nIn case of conflicts, the profiles/snippets of later paths will override those of earlier paths.\nSee https://code.visualstudio.com/docs/editor/emmet for more information and an example snippet file."},"emmet.triggerExpansionOnTab":{"type":"boolean","default":false,"scope":"language-overridable","markdownDescription":"When enabled, Emmet abbreviations are expanded when pressing TAB, even when completions do not show up. When disabled, completions that show up can still be accepted by pressing TAB."},"emmet.useInlineCompletions":{"type":"boolean","default":false,"markdownDescription":"If `true`, Emmet will use inline completions to suggest expansions. To prevent the non-inline completion item provider from showing up as often while this setting is `true`, turn `#editor.quickSuggestions#` to `inline` or `off` for the `other` item."},"emmet.preferences":{"type":"object","default":{},"markdownDescription":"Preferences used to modify behavior of some actions and resolvers of Emmet.","properties":{"css.intUnit":{"type":"string","default":"px","markdownDescription":"Default unit for integer values."},"css.floatUnit":{"type":"string","default":"em","markdownDescription":"Default unit for float values."},"css.propertyEnd":{"type":"string","default":";","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations."},"sass.propertyEnd":{"type":"string","default":"","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations in Sass files."},"stylus.propertyEnd":{"type":"string","default":"","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations in Stylus files."},"css.valueSeparator":{"type":"string","default":": ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations."},"sass.valueSeparator":{"type":"string","default":": ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations in Sass files."},"stylus.valueSeparator":{"type":"string","default":" ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations in Stylus files."},"bem.elementSeparator":{"type":"string","default":"__","markdownDescription":"Element separator used for classes when using the BEM filter."},"bem.modifierSeparator":{"type":"string","default":"_","markdownDescription":"Modifier separator used for classes when using the BEM filter."},"filter.commentBefore":{"type":"string","default":"","markdownDescription":"A definition of comment that should be placed before matched element when comment filter is applied."},"filter.commentAfter":{"type":"string","default":"\n","markdownDescription":"A definition of comment that should be placed after matched element when comment filter is applied."},"filter.commentTrigger":{"type":"array","default":["id","class"],"markdownDescription":"A comma-separated list of attribute names that should exist in the abbreviation for the comment filter to be applied."},"format.noIndentTags":{"type":"array","default":["html"],"markdownDescription":"An array of tag names that should never get inner indentation."},"format.forceIndentationForTags":{"type":"array","default":["body"],"markdownDescription":"An array of tag names that should always get inner indentation."},"profile.allowCompactBoolean":{"type":"boolean","default":false,"markdownDescription":"If `true`, compact notation of boolean attributes are produced."},"css.webkitProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `webkit` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `webkit` prefix."},"css.mozProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `moz` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `moz` prefix."},"css.oProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `o` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `o` prefix."},"css.msProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `ms` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `ms` prefix."},"css.fuzzySearchMinScore":{"type":"number","default":0.3,"markdownDescription":"The minimum score (from 0 to 1) that fuzzy-matched abbreviation should achieve. Lower values may produce many false-positive matches, higher values may reduce possible matches."},"output.inlineBreak":{"type":"number","default":0,"markdownDescription":"The number of sibling inline elements needed for line breaks to be placed between those elements. If `0`, inline elements are always expanded onto a single line."},"output.reverseAttributes":{"type":"boolean","default":false,"markdownDescription":"If `true`, reverses attribute merging directions when resolving snippets."},"output.selfClosingStyle":{"type":"string","enum":["html","xhtml","xml"],"default":"html","markdownDescription":"Style of self-closing tags: html (`
`), xml (`
`) or xhtml (`
`)."},"css.color.short":{"type":"boolean","default":true,"markdownDescription":"If `true`, color values like `#f` will be expanded to `#fff` instead of `#ffffff`."}}},"emmet.showSuggestionsAsSnippets":{"type":"boolean","default":false,"markdownDescription":"If `true`, then Emmet suggestions will show up as snippets allowing you to order them as per `#editor.snippetSuggestions#` setting."},"emmet.optimizeStylesheetParsing":{"type":"boolean","default":true,"markdownDescription":"When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in CSS/SCSS/Less files is parsed."}}},"commands":[{"command":"editor.emmet.action.wrapWithAbbreviation","title":"Wrap with Abbreviation","category":"Emmet"},{"command":"editor.emmet.action.removeTag","title":"Remove Tag","category":"Emmet"},{"command":"editor.emmet.action.updateTag","title":"Update Tag","category":"Emmet"},{"command":"editor.emmet.action.matchTag","title":"Go to Matching Pair","category":"Emmet"},{"command":"editor.emmet.action.balanceIn","title":"Balance (inward)","category":"Emmet"},{"command":"editor.emmet.action.balanceOut","title":"Balance (outward)","category":"Emmet"},{"command":"editor.emmet.action.prevEditPoint","title":"Go to Previous Edit Point","category":"Emmet"},{"command":"editor.emmet.action.nextEditPoint","title":"Go to Next Edit Point","category":"Emmet"},{"command":"editor.emmet.action.mergeLines","title":"Merge Lines","category":"Emmet"},{"command":"editor.emmet.action.selectPrevItem","title":"Select Previous Item","category":"Emmet"},{"command":"editor.emmet.action.selectNextItem","title":"Select Next Item","category":"Emmet"},{"command":"editor.emmet.action.splitJoinTag","title":"Split/Join Tag","category":"Emmet"},{"command":"editor.emmet.action.toggleComment","title":"Toggle Comment","category":"Emmet"},{"command":"editor.emmet.action.evaluateMathExpression","title":"Evaluate Math Expression","category":"Emmet"},{"command":"editor.emmet.action.updateImageSize","title":"Update Image Size","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByOneTenth","title":"Increment by 0.1","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByOne","title":"Increment by 1","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByTen","title":"Increment by 10","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByOneTenth","title":"Decrement by 0.1","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByOne","title":"Decrement by 1","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByTen","title":"Decrement by 10","category":"Emmet"},{"command":"editor.emmet.action.reflectCSSValue","title":"Reflect CSS Value","category":"Emmet"},{"command":"workbench.action.showEmmetCommands","title":"Show Emmet Commands","category":""}],"menus":{"commandPalette":[{"command":"editor.emmet.action.wrapWithAbbreviation","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.removeTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.updateTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.matchTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.balanceIn","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.balanceOut","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.prevEditPoint","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.nextEditPoint","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.mergeLines","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.selectPrevItem","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.selectNextItem","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.splitJoinTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.toggleComment","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.evaluateMathExpression","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.updateImageSize","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByOneTenth","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByOne","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByTen","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByOneTenth","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByOne","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByTen","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.reflectCSSValue","when":"activeEditor && !activeEditorIsReadonly"}]}},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/emmet","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.extension-editing"},"manifest":{"name":"extension-editing","displayName":"Extension Authoring","description":"Provides linting capabilities for authoring extensions.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.4.0"},"icon":"images/icon.png","activationEvents":["onLanguage:json","onLanguage:markdown"],"main":"./dist/extensionEditingMain","browser":"./dist/browser/extensionEditingBrowserMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"jsonValidation":[{"fileMatch":"package.json","url":"vscode://schemas/vscode-extensions"},{"fileMatch":"*language-configuration.json","url":"vscode://schemas/language-configuration"},{"fileMatch":["*icon-theme.json","!*product-icon-theme.json"],"url":"vscode://schemas/icon-theme"},{"fileMatch":"*product-icon-theme.json","url":"vscode://schemas/product-icon-theme"},{"fileMatch":"*color-theme.json","url":"vscode://schemas/color-theme"}],"languages":[{"id":"ignore","filenames":[".vscodeignore"]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/extension-editing","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.fsharp"},"manifest":{"name":"fsharp","displayName":"F# Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in F# files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin ionide/ionide-fsgrammar grammars/fsharp.json ./syntaxes/fsharp.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"fsharp","extensions":[".fs",".fsi",".fsx",".fsscript"],"aliases":["F#","FSharp","fsharp"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"fsharp","scopeName":"source.fsharp","path":"./syntaxes/fsharp.tmLanguage.json"}],"snippets":[{"language":"fsharp","path":"./snippets/fsharp.code-snippets"}],"configurationDefaults":{"[fsharp]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/fsharp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.git"},"manifest":{"name":"git","displayName":"Git","description":"Git SCM Integration","publisher":"vscode","license":"MIT","version":"10.0.0","engines":{"vscode":"^1.5.0"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","canonicalUriProvider","contribEditSessions","contribEditorContentMenu","contribMergeEditorMenus","contribMultiDiffEditorMenus","contribDiffEditorGutterToolBarMenus","contribSourceControlArtifactGroupMenu","contribSourceControlArtifactMenu","contribSourceControlHistoryItemMenu","contribSourceControlHistoryTitleMenu","contribSourceControlInputBoxMenu","contribSourceControlTitleMenu","contribViewsWelcome","editSessionIdentityProvider","envIsConnectionMetered","findFiles2","quickDiffProvider","quickPickSortByLabel","scmActionButton","scmArtifactProvider","scmHistoryProvider","scmMultiDiffEditor","scmProviderOptions","scmSelectedProvider","scmTextDocument","scmValidation","statusBarItemTooltip","taskRunOptions","tabInputMultiDiff","tabInputTextMerge","textEditorDiffInformation","timeline","workspaceTrust"],"categories":["Other"],"activationEvents":["*","onEditSession:file","onFileSystem:git","onFileSystem:git-show"],"extensionDependencies":["vscode.git-base"],"main":"./dist/main","icon":"resources/icons/git.png","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":false}},"contributes":{"commands":[{"command":"git.continueInLocalClone","title":"Clone Repository Locally and Open on Desktop...","category":"Git","icon":"$(repo-clone)","enablement":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && remoteName"},{"command":"git.clone","title":"Clone","category":"Git","enablement":"!operationInProgress"},{"command":"git.cloneRecursive","title":"Clone (Recursive)","category":"Git","enablement":"!operationInProgress"},{"command":"git.init","title":"Initialize Repository","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.openRepository","title":"Open Repository","category":"Git","enablement":"!operationInProgress"},{"command":"git.reopenClosedRepositories","title":"Reopen Closed Repositories...","icon":"$(repo)","category":"Git","enablement":"!operationInProgress && git.closedRepositoryCount != 0"},{"command":"git.close","title":"Close Repository","category":"Git","enablement":"!operationInProgress"},{"command":"git.closeOtherRepositories","title":"Close Other Repositories","category":"Git","enablement":"!operationInProgress"},{"command":"git.openWorktree","title":"Open Worktree in Current Window","category":"Git","enablement":"!operationInProgress"},{"command":"git.openWorktreeInNewWindow","title":"Open Worktree in New Window","category":"Git","enablement":"!operationInProgress"},{"command":"git.refresh","title":"Refresh","category":"Git","icon":"$(refresh)","enablement":"!operationInProgress"},{"command":"git.compareWithWorkspace","title":"Compare with Workspace","category":"Git"},{"command":"git.openChange","title":"Open Changes","category":"Git","icon":"$(compare-changes)"},{"command":"git.openAllChanges","title":"Open All Changes","category":"Git"},{"command":"git.openFile","title":"Open File","category":"Git","icon":"$(go-to-file)"},{"command":"git.openFile2","title":"Open File","category":"Git","icon":"$(go-to-file)"},{"command":"git.openHEADFile","title":"Open File (HEAD)","category":"Git"},{"command":"git.stage","title":"Stage Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAll","title":"Stage All Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllTracked","title":"Stage All Tracked Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllUntracked","title":"Stage All Untracked Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllMerge","title":"Stage All Merge Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageSelectedRanges","title":"Stage Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.diff.stageHunk","title":"Stage Block","category":"Git","icon":"$(plus)"},{"command":"git.diff.stageSelection","title":"Stage Selection","category":"Git","icon":"$(plus)"},{"command":"git.revertSelectedRanges","title":"Revert Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.stageChange","title":"Stage Change","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageFile","title":"Stage Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.revertChange","title":"Revert Change","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.unstage","title":"Unstage Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageAll","title":"Unstage All Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageSelectedRanges","title":"Unstage Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.unstageChange","title":"Unstage Change","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageFile","title":"Unstage Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.clean","title":"Discard Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAll","title":"Discard All Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAllTracked","title":"Discard All Tracked Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAllUntracked","title":"Discard All Untracked Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.rename","title":"Rename","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.delete","title":"Delete","category":"Git","icon":"$(trash)","enablement":"!operationInProgress"},{"command":"git.commit","title":"Commit","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitAmend","title":"Commit (Amend)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitSigned","title":"Commit (Signed Off)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitStaged","title":"Commit Staged","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitEmpty","title":"Commit Empty","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedSigned","title":"Commit Staged (Signed Off)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedAmend","title":"Commit Staged (Amend)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAll","title":"Commit All","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllSigned","title":"Commit All (Signed Off)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllAmend","title":"Commit All (Amend)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitNoVerify","title":"Commit (No Verify)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitStagedNoVerify","title":"Commit Staged (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitEmptyNoVerify","title":"Commit Empty (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedSignedNoVerify","title":"Commit Staged (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAmendNoVerify","title":"Commit (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitSignedNoVerify","title":"Commit (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedAmendNoVerify","title":"Commit Staged (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllNoVerify","title":"Commit All (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllSignedNoVerify","title":"Commit All (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllAmendNoVerify","title":"Commit All (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitMessageAccept","title":"Commit","category":"Git"},{"command":"git.commitMessageDiscard","title":"Cancel","icon":"$(close)","category":"Git"},{"command":"git.restoreCommitTemplate","title":"Restore Commit Template","category":"Git","enablement":"!operationInProgress"},{"command":"git.undoCommit","title":"Undo Last Commit","category":"Git","enablement":"!operationInProgress"},{"command":"git.checkout","title":"Checkout to...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.checkout","title":"Checkout","category":"Git","enablement":"!operationInProgress"},{"command":"git.checkoutDetached","title":"Checkout to (Detached)...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.checkoutDetached","title":"Checkout (Detached)","category":"Git","enablement":"!operationInProgress"},{"command":"git.branch","title":"Create Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.branchFrom","title":"Create Branch From...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteBranch","title":"Delete Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.deleteBranch","title":"Delete Branch","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteRemoteBranch","title":"Delete Remote Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.renameBranch","title":"Rename Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.merge","title":"Merge...","category":"Git","enablement":"!operationInProgress"},{"command":"git.mergeAbort","title":"Abort Merge","category":"Git","enablement":"gitMergeInProgress"},{"command":"git.rebase","title":"Rebase Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.createTag","title":"Create Tag...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteTag","title":"Delete Tag...","category":"Git","enablement":"!operationInProgress"},{"command":"git.migrateWorktreeChanges","title":"Migrate Worktree Changes...","category":"Git","enablement":"!operationInProgress"},{"command":"git.createWorktree","title":"Create Worktree...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteWorktree","title":"Delete Worktree...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteWorktree2","title":"Delete Worktree","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.deleteTag","title":"Delete Tag","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteRemoteTag","title":"Delete Remote Tag...","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetch","title":"Fetch","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchPrune","title":"Fetch (Prune)","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchAll","title":"Fetch From All Remotes","icon":"$(git-fetch)","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchRef","title":"Fetch","icon":"$(git-fetch)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pull","title":"Pull","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullRebase","title":"Pull (Rebase)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullFrom","title":"Pull from...","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullRef","title":"Pull","icon":"$(repo-pull)","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefInFilter && scmCurrentHistoryItemRefHasRemote"},{"command":"git.push","title":"Push","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushForce","title":"Push (Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushTo","title":"Push to...","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushToForce","title":"Push to... (Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushTags","title":"Push Tags","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushWithTags","title":"Push (Follow Tags)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushWithTagsForce","title":"Push (Follow Tags, Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushRef","title":"Push","icon":"$(repo-push)","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefInFilter && scmCurrentHistoryItemRefHasRemote"},{"command":"git.cherryPick","title":"Cherry Pick...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.cherryPick","title":"Cherry Pick","category":"Git","enablement":"!operationInProgress"},{"command":"git.cherryPickAbort","title":"Abort Cherry Pick","category":"Git","enablement":"!operationInProgress"},{"command":"git.addRemote","title":"Add Remote...","category":"Git","enablement":"!operationInProgress"},{"command":"git.removeRemote","title":"Remove Remote","category":"Git","enablement":"!operationInProgress"},{"command":"git.sync","title":"Sync","category":"Git","enablement":"!operationInProgress"},{"command":"git.syncRebase","title":"Sync (Rebase)","category":"Git","enablement":"!operationInProgress"},{"command":"git.publish","title":"Publish Branch...","category":"Git","icon":"$(cloud-upload)","enablement":"!operationInProgress"},{"command":"git.showOutput","title":"Show Git Output","category":"Git"},{"command":"git.ignore","title":"Add to .gitignore","category":"Git","enablement":"!operationInProgress"},{"command":"git.revealInExplorer","title":"Reveal in Explorer View","category":"Git"},{"command":"git.revealFileInOS.linux","title":"Open Containing Folder","category":"Git"},{"command":"git.revealFileInOS.mac","title":"Reveal in Finder","category":"Git"},{"command":"git.revealFileInOS.windows","title":"Reveal in File Explorer","category":"Git"},{"command":"git.stashIncludeUntracked","title":"Stash (Include Untracked)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stash","title":"Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashStaged","title":"Stash Staged","category":"Git","enablement":"!operationInProgress && gitVersion2.35"},{"command":"git.stashPop","title":"Pop Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashPopLatest","title":"Pop Latest Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashPopEditor","title":"Pop Stash","icon":"$(git-stash-pop)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApply","title":"Apply Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApplyLatest","title":"Apply Latest Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApplyEditor","title":"Apply Stash","icon":"$(git-stash-apply)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDrop","title":"Drop Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDropAll","title":"Drop All Stashes...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDropEditor","title":"Drop Stash","icon":"$(trash)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashView","title":"View Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.timeline.openDiff","title":"Open Changes","icon":"$(compare-changes)","category":"Git"},{"command":"git.timeline.copyCommitId","title":"Copy Commit Hash","category":"Git"},{"command":"git.timeline.copyCommitMessage","title":"Copy Commit Message","category":"Git"},{"command":"git.timeline.selectForCompare","title":"Select for Compare","category":"Git"},{"command":"git.timeline.compareWithSelected","title":"Compare with Selected","category":"Git"},{"command":"git.timeline.viewCommit","title":"Open Commit","icon":"$(diff-multiple)","category":"Git"},{"command":"git.rebaseAbort","title":"Abort Rebase","category":"Git","enablement":"gitRebaseInProgress"},{"command":"git.closeAllDiffEditors","title":"Close All Diff Editors","category":"Git","enablement":"!operationInProgress"},{"command":"git.closeAllUnmodifiedEditors","title":"Close All Unmodified Editors","category":"Git","enablement":"!operationInProgress"},{"command":"git.api.getRepositories","title":"Get Repositories","category":"Git API"},{"command":"git.api.getRepositoryState","title":"Get Repository State","category":"Git API"},{"command":"git.api.getRemoteSources","title":"Get Remote Sources","category":"Git API"},{"command":"git.acceptMerge","title":"Complete Merge","category":"Git","enablement":"isMergeEditor && mergeEditorResultUri in git.mergeChanges"},{"command":"git.openMergeEditor","title":"Resolve in Merge Editor","category":"Git"},{"command":"git.runGitMerge","title":"Compute Conflicts With Git","category":"Git","enablement":"isMergeEditor"},{"command":"git.runGitMergeDiff3","title":"Compute Conflicts With Git (Diff3)","category":"Git","enablement":"isMergeEditor"},{"command":"git.manageUnsafeRepositories","title":"Manage Unsafe Repositories","category":"Git"},{"command":"git.openRepositoriesInParentFolders","title":"Open Repositories In Parent Folders","category":"Git"},{"command":"git.viewChanges","title":"Open Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewStagedChanges","title":"Open Staged Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewUntrackedChanges","title":"Open Untracked Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewCommit","title":"Open Commit","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.copyCommitId","title":"Copy Commit Hash","category":"Git"},{"command":"git.copyCommitMessage","title":"Copy Commit Message","category":"Git"},{"command":"git.blame.toggleEditorDecoration","title":"Toggle Git Blame Editor Decoration","category":"Git"},{"command":"git.blame.toggleStatusBarItem","title":"Toggle Git Blame Status Bar Item","category":"Git"},{"command":"git.graph.compareRef","title":"Compare with...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.compareWithRemote","title":"Compare with Remote","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefHasRemote"},{"command":"git.graph.compareWithMergeBase","title":"Compare with Merge Base","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefHasBase"},{"command":"git.repositories.checkout","title":"Checkout","icon":"$(target)","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.checkoutDetached","title":"Checkout (Detached)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.compareRef","title":"Compare with...","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createBranch","title":"Create Branch...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createTag","title":"Create Tag...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.merge","title":"Merge","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.rebase","title":"Rebase","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.deleteBranch","title":"Delete","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.deleteTag","title":"Delete","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.createFrom","title":"Create from...","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashView","title":"View Stash","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashApply","title":"Apply Stash","icon":"$(git-stash-apply)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashPop","title":"Pop Stash","icon":"$(git-stash-pop)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashDrop","title":"Drop Stash","icon":"$(trash)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createWorktree","title":"Create Worktree...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.openWorktree","title":"Open","icon":"$(folder-opened)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.openWorktreeInNewWindow","title":"Open in New Window","icon":"$(folder-opened)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.deleteWorktree","title":"Delete","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.worktreeCopyBranchName","title":"Copy Branch Name","category":"Git"},{"command":"git.repositories.worktreeCopyCommitHash","title":"Copy Commit Hash","category":"Git"},{"command":"git.repositories.worktreeCopyPath","title":"Copy Worktree Path","category":"Git"},{"command":"git.repositories.copyCommitHash","title":"Copy Commit Hash","category":"Git"},{"command":"git.repositories.copyBranchName","title":"Copy Branch Name","category":"Git"},{"command":"git.repositories.copyTagName","title":"Copy Tag Name","category":"Git"},{"command":"git.repositories.copyStashName","title":"Copy Stash Name","category":"Git"},{"command":"git.repositories.stashCopyBranchName","title":"Copy Branch Name","category":"Git"}],"continueEditSession":[{"command":"git.continueInLocalClone","qualifiedName":"Continue Working in New Local Clone","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && remoteName","remoteGroup":"remote_42_git_0_local@0"}],"keybindings":[{"command":"git.stageSelectedRanges","key":"ctrl+k ctrl+alt+s","mac":"cmd+k cmd+alt+s","when":"editorTextFocus && resourceScheme == file"},{"command":"git.unstageSelectedRanges","key":"ctrl+k ctrl+n","mac":"cmd+k cmd+n","when":"editorTextFocus && isInDiffEditor && isInDiffRightEditor && resourceScheme == git"},{"command":"git.revertSelectedRanges","key":"ctrl+k ctrl+r","mac":"cmd+k cmd+r","when":"editorTextFocus && resourceScheme == file"}],"menus":{"commandPalette":[{"command":"git.continueInLocalClone","when":"false"},{"command":"git.clone","when":"config.git.enabled && !git.missing"},{"command":"git.cloneRecursive","when":"config.git.enabled && !git.missing"},{"command":"git.init","when":"config.git.enabled && !git.missing && remoteName != 'codespaces'"},{"command":"git.openRepository","when":"config.git.enabled && !git.missing"},{"command":"git.close","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.closeOtherRepositories","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.openWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.openWorktreeInNewWindow","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.refresh","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.openFile","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceHasChanges"},{"command":"git.openHEADFile","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceHasChanges"},{"command":"git.openChange","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stage","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllTracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllMerge","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.stageChange","when":"false"},{"command":"git.revertSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.revertChange","when":"false"},{"command":"git.openFile2","when":"false"},{"command":"git.unstage","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.unstageAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.unstageSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == git"},{"command":"git.unstageChange","when":"false"},{"command":"git.clean","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAllTracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAllUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.rename","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceRepository"},{"command":"git.delete","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.commit","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStaged","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitEmpty","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAllSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAllAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.rebaseAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitRebaseInProgress"},{"command":"git.commitNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitEmptyNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.restoreCommitTemplate","when":"false"},{"command":"git.commitMessageAccept","when":"false"},{"command":"git.commitMessageDiscard","when":"false"},{"command":"git.revealInExplorer","when":"false"},{"command":"git.revealFileInOS.linux","when":"false"},{"command":"git.revealFileInOS.mac","when":"false"},{"command":"git.revealFileInOS.windows","when":"false"},{"command":"git.undoCommit","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.checkout","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.branch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.branchFrom","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteRemoteBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.renameBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cherryPick","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cherryPickAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitCherryPickInProgress"},{"command":"git.pull","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pullFrom","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pullRebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.merge","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.mergeAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitMergeInProgress"},{"command":"git.rebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.createTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.migrateWorktreeChanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.createWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.openWorktree","when":"false"},{"command":"git.openWorktreeInNewWindow","when":"false"},{"command":"git.deleteWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteWorktree2","when":"false"},{"command":"git.deleteRemoteTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetchPrune","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetchAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.push","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushTo","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushToForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushWithTags","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushWithTagsForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushTags","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.addRemote","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.removeRemote","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.sync","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.syncRebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.publish","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.showOutput","when":"config.git.enabled"},{"command":"git.ignore","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceRepository"},{"command":"git.stashIncludeUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stash","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashStaged","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitVersion2.35"},{"command":"git.stashPop","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashPopLatest","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashPopEditor","when":"false"},{"command":"git.stashApply","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashApplyLatest","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashApplyEditor","when":"false"},{"command":"git.stashDrop","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashDropAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashDropEditor","when":"false"},{"command":"git.timeline.openDiff","when":"false"},{"command":"git.timeline.copyCommitId","when":"false"},{"command":"git.timeline.copyCommitMessage","when":"false"},{"command":"git.timeline.selectForCompare","when":"false"},{"command":"git.timeline.compareWithSelected","when":"false"},{"command":"git.timeline.viewCommit","when":"false"},{"command":"git.closeAllDiffEditors","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.api.getRepositories","when":"false"},{"command":"git.api.getRepositoryState","when":"false"},{"command":"git.api.getRemoteSources","when":"false"},{"command":"git.openMergeEditor","when":"false"},{"command":"git.manageUnsafeRepositories","when":"config.git.enabled && !git.missing && git.unsafeRepositoryCount != 0"},{"command":"git.openRepositoriesInParentFolders","when":"config.git.enabled && !git.missing && git.parentRepositoryCount != 0"},{"command":"git.stashView","when":"config.git.enabled && !git.missing"},{"command":"git.viewChanges","when":"config.git.enabled && !git.missing"},{"command":"git.viewStagedChanges","when":"config.git.enabled && !git.missing"},{"command":"git.viewUntrackedChanges","when":"config.git.enabled && !git.missing && config.git.untrackedChanges == separate"},{"command":"git.viewCommit","when":"false"},{"command":"git.stageFile","when":"false"},{"command":"git.unstageFile","when":"false"},{"command":"git.fetchRef","when":"false"},{"command":"git.pullRef","when":"false"},{"command":"git.pushRef","when":"false"},{"command":"git.copyCommitId","when":"false"},{"command":"git.copyCommitMessage","when":"false"},{"command":"git.graph.checkout","when":"false"},{"command":"git.graph.checkoutDetached","when":"false"},{"command":"git.graph.deleteBranch","when":"false"},{"command":"git.graph.compareRef","when":"false"},{"command":"git.graph.deleteTag","when":"false"},{"command":"git.graph.cherryPick","when":"false"},{"command":"git.graph.compareWithMergeBase","when":"false"},{"command":"git.graph.compareWithRemote","when":"false"},{"command":"git.diff.stageHunk","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"},{"command":"git.diff.stageSelection","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"},{"command":"git.repositories.checkout","when":"false"},{"command":"git.repositories.checkoutDetached","when":"false"},{"command":"git.repositories.compareRef","when":"false"},{"command":"git.repositories.createBranch","when":"false"},{"command":"git.repositories.createTag","when":"false"},{"command":"git.repositories.merge","when":"false"},{"command":"git.repositories.rebase","when":"false"},{"command":"git.repositories.deleteBranch","when":"false"},{"command":"git.repositories.deleteTag","when":"false"},{"command":"git.repositories.createFrom","when":"false"},{"command":"git.repositories.stashView","when":"false"},{"command":"git.repositories.stashApply","when":"false"},{"command":"git.repositories.stashPop","when":"false"},{"command":"git.repositories.stashDrop","when":"false"},{"command":"git.repositories.createWorktree","when":"false"},{"command":"git.repositories.openWorktree","when":"false"},{"command":"git.repositories.openWorktreeInNewWindow","when":"false"},{"command":"git.repositories.deleteWorktree","when":"false"},{"command":"git.repositories.worktreeCopyBranchName","when":"false"},{"command":"git.repositories.worktreeCopyCommitHash","when":"false"},{"command":"git.repositories.worktreeCopyPath","when":"false"},{"command":"git.repositories.copyCommitHash","when":"false"},{"command":"git.repositories.copyBranchName","when":"false"},{"command":"git.repositories.copyTagName","when":"false"},{"command":"git.repositories.copyStashName","when":"false"},{"command":"git.repositories.stashCopyBranchName","when":"false"}],"scm/title":[{"command":"git.commit","group":"navigation","when":"scmProvider == git"},{"command":"git.refresh","group":"navigation","when":"scmProvider == git"},{"command":"git.pull","group":"1_header@1","when":"scmProvider == git"},{"command":"git.push","group":"1_header@2","when":"scmProvider == git"},{"command":"git.clone","group":"1_header@3","when":"scmProvider == git"},{"command":"git.checkout","group":"1_header@4","when":"scmProvider == git"},{"command":"git.fetch","group":"1_header@5","when":"scmProvider == git"},{"submenu":"git.commit","group":"2_main@1","when":"scmProvider == git"},{"submenu":"git.changes","group":"2_main@2","when":"scmProvider == git"},{"submenu":"git.pullpush","group":"2_main@3","when":"scmProvider == git"},{"submenu":"git.branch","group":"2_main@4","when":"scmProvider == git"},{"submenu":"git.remotes","group":"2_main@5","when":"scmProvider == git"},{"submenu":"git.stash","group":"2_main@6","when":"scmProvider == git"},{"submenu":"git.tags","group":"2_main@7","when":"scmProvider == git"},{"submenu":"git.worktrees","group":"2_main@8","when":"scmProvider == git"},{"command":"git.showOutput","group":"3_footer","when":"scmProvider == git"}],"scm/repositories/title":[{"command":"git.reopenClosedRepositories","group":"navigation@1","when":"git.closedRepositoryCount > 0"}],"scm/repository":[{"command":"git.pull","group":"1_header@1","when":"scmProvider == git"},{"command":"git.push","group":"1_header@2","when":"scmProvider == git"},{"command":"git.clone","group":"1_header@3","when":"scmProvider == git"},{"command":"git.checkout","group":"1_header@4","when":"scmProvider == git"},{"command":"git.fetch","group":"1_header@5","when":"scmProvider == git"},{"submenu":"git.commit","group":"2_main@1","when":"scmProvider == git"},{"submenu":"git.changes","group":"2_main@2","when":"scmProvider == git"},{"submenu":"git.pullpush","group":"2_main@3","when":"scmProvider == git"},{"submenu":"git.branch","group":"2_main@4","when":"scmProvider == git"},{"submenu":"git.remotes","group":"2_main@5","when":"scmProvider == git"},{"submenu":"git.stash","group":"2_main@6","when":"scmProvider == git"},{"submenu":"git.tags","group":"2_main@7","when":"scmProvider == git"},{"submenu":"git.worktrees","group":"2_main@8","when":"scmProvider == git"},{"command":"git.showOutput","group":"3_footer","when":"scmProvider == git"}],"scm/sourceControl":[{"command":"git.close","group":"navigation@1","when":"scmProvider == git"},{"command":"git.closeOtherRepositories","group":"navigation@2","when":"scmProvider == git && gitOpenRepositoryCount > 1"},{"command":"git.openWorktree","group":"1_worktree@1","when":"scmProvider == git && scmProviderContext == worktree"},{"command":"git.openWorktreeInNewWindow","group":"1_worktree@2","when":"scmProvider == git && scmProviderContext == worktree"},{"command":"git.deleteWorktree2","group":"2_worktree@1","when":"scmProvider == git && scmProviderContext == worktree"}],"scm/artifactGroup/context":[{"command":"git.repositories.createBranch","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == branches"},{"command":"git.repositories.createTag","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == tags"},{"submenu":"git.repositories.stash","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == stashes"},{"command":"git.repositories.createWorktree","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == worktrees"}],"scm/artifact/context":[{"command":"git.repositories.checkout","group":"inline@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.stashApply","alt":"git.repositories.stashPop","group":"inline@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashView","group":"1_view@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashApply","group":"2_apply@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashPop","group":"2_apply@2","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashDrop","group":"3_drop@3","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashCopyBranchName","group":"4_copy@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.copyStashName","group":"4_copy@2","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.checkout","group":"1_checkout@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.checkoutDetached","group":"1_checkout@2","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.merge","group":"2_modify@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.rebase","group":"2_modify@2","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.createFrom","group":"3_modify@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.deleteBranch","group":"3_modify@2","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.deleteTag","group":"3_modify@1","when":"scmProvider == git && scmArtifactGroupId == tags"},{"command":"git.repositories.compareRef","group":"4_compare@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.copyCommitHash","group":"5_copy@2","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.copyBranchName","group":"5_copy@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.copyTagName","group":"5_copy@2","when":"scmProvider == git && scmArtifactGroupId == tags"},{"command":"git.repositories.openWorktreeInNewWindow","group":"inline@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.openWorktree","group":"1_open@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.openWorktreeInNewWindow","group":"1_open@2","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.deleteWorktree","group":"2_modify@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyCommitHash","group":"3_copy@2","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyBranchName","group":"3_copy@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyPath","group":"3_copy@3","when":"scmProvider == git && scmArtifactGroupId == worktrees"}],"scm/resourceGroup/context":[{"command":"git.stageAllMerge","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.stageAllMerge","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.unstageAll","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstageAll","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.viewStagedChanges","when":"scmProvider == git && scmResourceGroup == index","group":"inline@1"},{"command":"git.viewChanges","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@1"},{"command":"git.cleanAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"1_modification"},{"command":"git.stageAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"1_modification"},{"command":"git.cleanAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"inline@2"},{"command":"git.stageAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"inline@2"},{"command":"git.cleanAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"1_modification"},{"command":"git.stageAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"1_modification"},{"command":"git.cleanAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"inline@2"},{"command":"git.stageAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"inline@2"},{"command":"git.cleanAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.stageAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.viewUntrackedChanges","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@1"},{"command":"git.cleanAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.stageAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"}],"scm/resourceFolder/context":[{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification@3"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification@3"}],"scm/resourceState/context":[{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == merge","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == merge","group":"2_view@2"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == merge && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == merge && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == index","group":"2_view@2"},{"command":"git.compareWithWorkspace","when":"scmProvider == git && scmResourceGroup == index && scmResourceState == worktree","group":"worktree_diff"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == index && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == index && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.compareWithWorkspace","when":"scmProvider == git && scmResourceGroup == workingTree && scmResourceState == worktree","group":"worktree_diff"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification@3"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == workingTree","group":"2_view@2"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked && !gitFreshRepository","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked && !gitFreshRepository","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == untracked && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == untracked && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification@3"}],"scm/history/title":[{"command":"git.fetchAll","group":"navigation@900","when":"scmProvider == git"},{"command":"git.pullRef","group":"navigation@901","when":"scmProvider == git"},{"command":"git.pushRef","when":"scmProvider == git && scmCurrentHistoryItemRefHasRemote","group":"navigation@902"},{"command":"git.publish","when":"scmProvider == git && !scmCurrentHistoryItemRefHasRemote","group":"navigation@903"}],"scm/historyItem/context":[{"command":"git.graph.checkoutDetached","when":"scmProvider == git","group":"1_checkout@2"},{"command":"git.branch","when":"scmProvider == git","group":"2_branch@2"},{"command":"git.createTag","when":"scmProvider == git","group":"3_tag@1"},{"command":"git.graph.cherryPick","when":"scmProvider == git","group":"4_modify@1"},{"command":"git.graph.compareWithRemote","when":"scmProvider == git","group":"5_compare@1"},{"command":"git.graph.compareWithMergeBase","when":"scmProvider == git","group":"5_compare@2"},{"command":"git.graph.compareRef","when":"scmProvider == git","group":"5_compare@3"},{"command":"git.copyCommitId","when":"scmProvider == git && !listMultiSelection","group":"9_copy@1"},{"command":"git.copyCommitMessage","when":"scmProvider == git && !listMultiSelection","group":"9_copy@2"}],"scm/historyItemRef/context":[{"command":"git.graph.checkout","when":"scmProvider == git","group":"1_checkout@1"},{"command":"git.graph.deleteBranch","when":"scmProvider == git && scmHistoryItemRef =~ /^refs\\/heads\\/|^refs\\/remotes\\//","group":"2_branch@2"},{"command":"git.graph.deleteTag","when":"scmProvider == git && scmHistoryItemRef =~ /^refs\\/tags\\//","group":"3_tag@2"}],"editor/title":[{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme =~ /^git$|^file$/"},{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInNotebookTextDiffEditor && resourceScheme =~ /^git$|^file$/"},{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isInNotebookTextDiffEditor && resourceScheme == git"},{"command":"git.openChange","group":"navigation@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && scmActiveResourceHasChanges && !isSessionsWindow"},{"command":"git.stashApplyEditor","alt":"git.stashPopEditor","group":"navigation@1","when":"config.git.enabled && !git.missing && resourceScheme == git-stash"},{"command":"git.stashDropEditor","group":"navigation@2","when":"config.git.enabled && !git.missing && resourceScheme == git-stash"},{"command":"git.stage","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && git.activeResourceHasUnstagedChanges && !isSessionsWindow"},{"command":"git.unstage","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && git.activeResourceHasStagedChanges && !isSessionsWindow"},{"command":"git.stage","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"},{"command":"git.stageSelectedRanges","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"},{"command":"git.unstage","group":"2_git@3","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git && !isSessionsWindow"},{"command":"git.unstageSelectedRanges","group":"2_git@4","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git && !isSessionsWindow"},{"command":"git.revertSelectedRanges","group":"2_git@5","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"}],"editor/context":[{"command":"git.stageSelectedRanges","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file"},{"command":"git.unstageSelectedRanges","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git"},{"command":"git.revertSelectedRanges","group":"2_git@3","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file"}],"editor/content":[{"command":"git.acceptMerge","when":"isMergeResultEditor && mergeEditorBaseUri =~ /^(git|file):/ && mergeEditorResultUri in git.mergeChanges"},{"command":"git.openMergeEditor","group":"navigation@-10","when":"config.git.enabled && !git.missing && !isInDiffEditor && !isMergeEditor && resource in git.mergeChanges && git.activeResourceHasMergeConflicts"},{"command":"git.commitMessageAccept","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && editorLangId == git-commit"},{"command":"git.commitMessageDiscard","group":"secondary","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && editorLangId == git-commit"}],"multiDiffEditor/resource/title":[{"command":"git.stageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == workingTree"},{"command":"git.stageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == untracked"},{"command":"git.unstageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == index"}],"diffEditor/gutter/hunk":[{"command":"git.diff.stageHunk","group":"primary@10","when":"diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"}],"diffEditor/gutter/selection":[{"command":"git.diff.stageSelection","group":"primary@10","when":"diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"}],"scm/change/title":[{"command":"git.stageChange","when":"config.git.enabled && !git.missing && originalResource =~ /^git\\:.*%22ref%22%3A%22%22%7D$/"},{"command":"git.revertChange","when":"config.git.enabled && !git.missing && originalResource =~ /^git\\:.*%22ref%22%3A%22%22%7D$/"},{"command":"git.unstageChange","when":"false"}],"timeline/item/context":[{"command":"git.timeline.viewCommit","group":"inline","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.openDiff","group":"1_actions@1","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.viewCommit","group":"1_actions@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.compareWithSelected","group":"3_compare@1","when":"config.git.enabled && !git.missing && git.timeline.selectedForCompare && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.selectForCompare","group":"3_compare@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.copyCommitId","group":"5_copy@1","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.copyCommitMessage","group":"5_copy@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"}],"git.commit":[{"command":"git.commit","group":"1_commit@1"},{"command":"git.commitStaged","group":"1_commit@2"},{"command":"git.commitAll","group":"1_commit@3"},{"command":"git.undoCommit","group":"1_commit@4"},{"command":"git.rebaseAbort","group":"1_commit@5"},{"command":"git.commitNoVerify","group":"2_commit_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedNoVerify","group":"2_commit_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllNoVerify","group":"2_commit_noverify@3","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAmend","group":"3_amend@1"},{"command":"git.commitStagedAmend","group":"3_amend@2"},{"command":"git.commitAllAmend","group":"3_amend@3"},{"command":"git.commitAmendNoVerify","group":"4_amend_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedAmendNoVerify","group":"4_amend_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllAmendNoVerify","group":"4_amend_noverify@3","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitSigned","group":"5_signoff@1"},{"command":"git.commitStagedSigned","group":"5_signoff@2"},{"command":"git.commitAllSigned","group":"5_signoff@3"},{"command":"git.commitSignedNoVerify","group":"6_signoff_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedSignedNoVerify","group":"6_signoff_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllSignedNoVerify","group":"6_signoff_noverify@3","when":"config.git.allowNoVerifyCommit"}],"git.changes":[{"command":"git.stageAll","group":"changes@1"},{"command":"git.unstageAll","group":"changes@2"},{"command":"git.cleanAll","group":"changes@3"}],"git.pullpush":[{"command":"git.sync","group":"1_sync@1"},{"command":"git.syncRebase","when":"gitState == idle","group":"1_sync@2"},{"command":"git.pull","group":"2_pull@1"},{"command":"git.pullRebase","group":"2_pull@2"},{"command":"git.pullFrom","group":"2_pull@3"},{"command":"git.push","group":"3_push@1"},{"command":"git.pushForce","when":"config.git.allowForcePush","group":"3_push@2"},{"command":"git.pushTo","group":"3_push@3"},{"command":"git.pushToForce","when":"config.git.allowForcePush","group":"3_push@4"},{"command":"git.fetch","group":"4_fetch@1"},{"command":"git.fetchPrune","group":"4_fetch@2"},{"command":"git.fetchAll","group":"4_fetch@3"}],"git.branch":[{"command":"git.merge","group":"1_merge@1"},{"command":"git.rebase","group":"1_merge@2"},{"command":"git.branch","group":"2_branch@1"},{"command":"git.branchFrom","group":"2_branch@2"},{"command":"git.renameBranch","group":"3_modify@1"},{"command":"git.deleteBranch","group":"3_modify@2"},{"command":"git.deleteRemoteBranch","group":"3_modify@3"},{"command":"git.publish","group":"4_publish@1"}],"git.remotes":[{"command":"git.addRemote","group":"remote@1"},{"command":"git.removeRemote","group":"remote@2"}],"git.stash":[{"command":"git.stash","group":"1_stash@1"},{"command":"git.stashIncludeUntracked","group":"1_stash@2"},{"command":"git.stashStaged","when":"gitVersion2.35","group":"1_stash@3"},{"command":"git.stashApplyLatest","group":"2_apply@1"},{"command":"git.stashApply","group":"2_apply@2"},{"command":"git.stashPopLatest","group":"3_pop@1"},{"command":"git.stashPop","group":"3_pop@2"},{"command":"git.stashDrop","group":"4_drop@1"},{"command":"git.stashDropAll","group":"4_drop@2"},{"command":"git.stashView","group":"5_preview@1"}],"git.repositories.stash":[{"command":"git.stash","group":"1_stash@1"},{"command":"git.stashStaged","when":"gitVersion2.35","group":"2_stash@1"},{"command":"git.stashIncludeUntracked","group":"2_stash@2"}],"git.tags":[{"command":"git.createTag","group":"1_tags@1"},{"command":"git.deleteTag","group":"1_tags@2"},{"command":"git.deleteRemoteTag","group":"1_tags@3"},{"command":"git.pushTags","group":"2_tags@1"}],"git.worktrees":[{"when":"scmProviderContext == worktree","command":"git.openWorktree","group":"openWorktrees@1"},{"when":"scmProviderContext == worktree","command":"git.openWorktreeInNewWindow","group":"openWorktrees@2"},{"when":"scmProviderContext == repository","command":"git.createWorktree","group":"worktrees@1"},{"when":"scmProviderContext == worktree","command":"git.deleteWorktree2","group":"worktrees@2"}]},"submenus":[{"id":"git.commit","label":"Commit"},{"id":"git.changes","label":"Changes"},{"id":"git.pullpush","label":"Pull, Push"},{"id":"git.branch","label":"Branch"},{"id":"git.remotes","label":"Remote"},{"id":"git.stash","label":"Stash"},{"id":"git.tags","label":"Tags"},{"id":"git.worktrees","label":"Worktrees"},{"id":"git.repositories.stash","label":"Stash","icon":"$(plus)"}],"configuration":{"title":"Git","properties":{"git.enabled":{"type":"boolean","scope":"resource","description":"Whether Git is enabled.","default":true,"agentsWindow":{"default":true,"readOnly":true}},"git.path":{"type":["string","null","array"],"markdownDescription":"Path and filename of the git executable, e.g. `C:\\Program Files\\Git\\bin\\git.exe` (Windows). This can also be an array of string values containing multiple paths to look up.","default":null,"scope":"machine"},"git.autoRepositoryDetection":{"type":["boolean","string"],"enum":[true,false,"subFolders","openEditors"],"enumDescriptions":["Scan for both subfolders of the current opened folder and parent folders of open files.","Disable automatic repository scanning.","Scan for subfolders of the currently opened folder.","Scan for parent folders of open files."],"description":"Configures when repositories should be automatically detected.","default":true},"git.autorefresh":{"type":"boolean","description":"Whether auto refreshing is enabled.","default":true,"agentsWindow":{"default":true}},"git.autofetch":{"type":["boolean","string"],"enum":[true,false,"all"],"scope":"resource","markdownDescription":"When set to true, commits will automatically be fetched from the default remote of the current Git repository. Setting to `all` will fetch from all remotes.","default":false,"tags":["usesOnlineServices"],"agentsWindow":{"default":true}},"git.autofetchPeriod":{"type":"number","scope":"resource","markdownDescription":"Duration in seconds between each automatic git fetch, when `#git.autofetch#` is enabled.","default":180},"git.defaultBranchName":{"type":"string","markdownDescription":"The name of the default branch (example: main, trunk, development) when initializing a new Git repository. When set to empty, the default branch name configured in Git will be used. **Note:** Requires Git version `2.28.0` or later.","default":"main","scope":"resource"},"git.branchPrefix":{"type":"string","description":"Prefix used when creating a new branch.","default":"","scope":"resource"},"git.branchProtection":{"type":"array","markdownDescription":"List of protected branches. By default, a prompt is shown before changes are committed to a protected branch. The prompt can be controlled using the `#git.branchProtectionPrompt#` setting.","items":{"type":"string"},"default":[],"scope":"resource"},"git.branchProtectionPrompt":{"type":"string","description":"Controls whether a prompt is being shown before changes are committed to a protected branch.","enum":["alwaysCommit","alwaysCommitToNewBranch","alwaysPrompt"],"enumDescriptions":["Always commit changes to the protected branch.","Always commit changes to a new branch.","Always prompt before changes are committed to a protected branch."],"default":"alwaysPrompt","scope":"resource"},"git.branchValidationRegex":{"type":"string","description":"A regular expression to validate new branch names.","default":""},"git.branchWhitespaceChar":{"type":"string","description":"The character to replace whitespace in new branch names, and to separate segments of a randomly generated branch name.","default":"-"},"git.branchRandomName.enable":{"type":"boolean","description":"Controls whether a random name is generated when creating a new branch.","default":false,"scope":"resource","agentsWindow":{"default":true}},"git.branchRandomName.dictionary":{"type":"array","markdownDescription":"List of dictionaries used for the randomly generated branch name. Each value represents the dictionary used to generate the segment of the branch name. Supported dictionaries: `adjectives`, `animals`, `colors` and `numbers`.","items":{"type":"string","enum":["adjectives","animals","colors","numbers"],"enumDescriptions":["A random adjective","A random animal name","A random color name","A random number between 100 and 999"]},"minItems":1,"maxItems":5,"default":["adjectives","animals"],"scope":"resource"},"git.confirmSync":{"type":"boolean","description":"Confirm before synchronizing Git repositories.","default":true,"agentsWindow":{"default":false,"readOnly":true}},"git.confirmCommittedDelete":{"type":"boolean","description":"Confirm before deleting committed files with Git.","default":true},"git.countBadge":{"type":"string","enum":["all","tracked","off"],"enumDescriptions":["Count all changes.","Count only tracked changes.","Turn off counter."],"description":"Controls the Git count badge.","default":"all","scope":"resource"},"git.checkoutType":{"type":"array","items":{"type":"string","enum":["local","tags","remote"],"enumDescriptions":["Local branches","Tags","Remote branches"]},"uniqueItems":true,"markdownDescription":"Controls what type of Git refs are listed when running `Checkout to...`.","default":["local","remote","tags"]},"git.ignoreLegacyWarning":{"type":"boolean","description":"Ignores the legacy Git warning.","default":false},"git.ignoreMissingGitWarning":{"type":"boolean","description":"Ignores the warning when Git is missing.","default":false},"git.ignoreWindowsGit27Warning":{"type":"boolean","description":"Ignores the warning when Git 2.25 - 2.26 is installed on Windows.","default":false},"git.ignoreLimitWarning":{"type":"boolean","description":"Ignores the warning when there are too many changes in a repository.","default":false},"git.ignoreRebaseWarning":{"type":"boolean","description":"Ignores the warning when it looks like the branch might have been rebased when pulling.","default":false},"git.defaultCloneDirectory":{"type":["string","null"],"default":null,"scope":"machine","description":"The default location to clone a Git repository."},"git.useEditorAsCommitInput":{"type":"boolean","description":"Controls whether a full text editor will be used to author commit messages, whenever no message is provided in the commit input box.","default":true},"git.verboseCommit":{"type":"boolean","scope":"resource","markdownDescription":"Enable verbose output when `#git.useEditorAsCommitInput#` is enabled.","default":false},"git.enableSmartCommit":{"type":"boolean","scope":"resource","description":"Commit all changes when there are no staged changes.","default":false},"git.smartCommitChanges":{"type":"string","enum":["all","tracked"],"enumDescriptions":["Automatically stage all changes.","Automatically stage tracked changes only."],"scope":"resource","description":"Control which changes are automatically staged by Smart Commit.","default":"all"},"git.suggestSmartCommit":{"type":"boolean","scope":"resource","description":"Suggests to enable smart commit (commit all changes when there are no staged changes).","default":true},"git.enableCommitSigning":{"type":"boolean","scope":"resource","description":"Enables commit signing with GPG, X.509, or SSH.","default":false},"git.confirmEmptyCommits":{"type":"boolean","scope":"resource","description":"Always confirm the creation of empty commits for the 'Git: Commit Empty' command.","default":true},"git.decorations.enabled":{"type":"boolean","default":true,"description":"Controls whether Git contributes colors and badges to the Explorer and the Open Editors view."},"git.enableStatusBarSync":{"type":"boolean","default":true,"description":"Controls whether the Git Sync command appears in the status bar.","scope":"resource"},"git.followTagsWhenSync":{"type":"boolean","scope":"resource","default":false,"description":"Push all annotated tags when running the sync command."},"git.replaceTagsWhenPull":{"type":"boolean","scope":"resource","default":false,"description":"Automatically replace the local tags with the remote tags in case of a conflict when running the pull command."},"git.promptToSaveFilesBeforeStash":{"type":"string","enum":["always","staged","never"],"enumDescriptions":["Check for any unsaved files.","Check only for unsaved staged files.","Disable this check."],"scope":"resource","default":"always","description":"Controls whether Git should check for unsaved files before stashing changes."},"git.promptToSaveFilesBeforeCommit":{"type":"string","enum":["always","staged","never"],"enumDescriptions":["Check for any unsaved files.","Check only for unsaved staged files.","Disable this check."],"scope":"resource","default":"always","description":"Controls whether Git should check for unsaved files before committing."},"git.postCommitCommand":{"type":"string","enum":["none","push","sync"],"enumDescriptions":["Don't run any command after a commit.","Run 'git push' after a successful commit.","Run 'git pull' and 'git push' after a successful commit."],"markdownDescription":"Run a git command after a successful commit.","scope":"resource","default":"none","agentsWindow":{"default":"none","readOnly":true}},"git.rememberPostCommitCommand":{"type":"boolean","description":"Remember the last git command that ran after a commit.","scope":"resource","default":false,"agentsWindow":{"default":false,"readOnly":true}},"git.openAfterClone":{"type":"string","enum":["always","alwaysNewWindow","whenNoFolderOpen","prompt"],"enumDescriptions":["Always open in current window.","Always open in a new window.","Only open in current window when no folder is opened.","Always prompt for action."],"default":"prompt","description":"Controls whether to open a repository automatically after cloning."},"git.showInlineOpenFileAction":{"type":"boolean","default":true,"description":"Controls whether to show an inline Open File action in the Git changes view."},"git.showPushSuccessNotification":{"type":"boolean","description":"Controls whether to show a notification when a push is successful.","default":false},"git.inputValidation":{"type":"boolean","default":false,"description":"Controls whether to show commit message input validation diagnostics."},"git.inputValidationLength":{"type":"number","default":72,"description":"Controls the commit message length threshold for showing a warning."},"git.inputValidationSubjectLength":{"type":["number","null"],"default":50,"markdownDescription":"Controls the commit message subject length threshold for showing a warning. Unset it to inherit the value of `#git.inputValidationLength#`."},"git.detectSubmodules":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to automatically detect Git submodules."},"git.detectSubmodulesLimit":{"type":"number","scope":"resource","default":10,"description":"Controls the limit of Git submodules detected."},"git.detectWorktrees":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether to automatically detect Git worktrees.","agentsWindow":{"default":false}},"git.detectWorktreesLimit":{"type":"number","scope":"resource","default":50,"description":"Controls the limit of Git worktrees detected."},"git.worktreeIncludeFiles":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"Configure [glob patterns](https://aka.ms/vscode-glob-patterns) for files and folders that are included when creating a new worktree. Only files and folders that match the patterns and are listed in `.gitignore` will be copied to the newly created worktree.","scope":"resource","tags":["experimental"]},"git.alwaysShowStagedChangesResourceGroup":{"type":"boolean","scope":"resource","default":false,"description":"Always show the Staged Changes resource group."},"git.alwaysSignOff":{"type":"boolean","scope":"resource","default":false,"description":"Controls the signoff flag for all commits."},"git.addAICoAuthor":{"type":"string","enum":["off","chatAndAgent","all"],"enumDescriptions":["Never add the AI co-author trailer.","Add the AI co-author trailer when code from chat or agent edits is included.","Add the AI co-author trailer when any AI-generated code is included, such as inline completions, chat, or agent edits."],"scope":"resource","default":"off","description":"Controls whether a 'Co-authored-by' trailer is automatically added to the commit message when AI-generated code is included in the commit."},"git.ignoreSubmodules":{"type":"boolean","scope":"resource","default":false,"description":"Ignore modifications to submodules in the file tree."},"git.ignoredRepositories":{"type":"array","items":{"type":"string"},"default":[],"scope":"window","description":"List of Git repositories to ignore."},"git.scanRepositories":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","description":"List of paths to search for Git repositories in."},"git.showProgress":{"type":"boolean","description":"Controls whether Git actions should show progress.","default":true,"scope":"resource","agentsWindow":{"default":false,"readOnly":true}},"git.rebaseWhenSync":{"type":"boolean","scope":"resource","default":false,"description":"Force Git to use rebase when running the sync command."},"git.pullBeforeCheckout":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether a branch that does not have outgoing commits is fast-forwarded before it is checked out."},"git.fetchOnPull":{"type":"boolean","scope":"resource","default":false,"description":"When enabled, fetch all branches when pulling. Otherwise, fetch just the current one."},"git.pruneOnFetch":{"type":"boolean","scope":"resource","default":false,"description":"Prune when fetching."},"git.pullTags":{"type":"boolean","scope":"resource","default":true,"description":"Fetch all tags when pulling."},"git.autoStash":{"type":"boolean","scope":"resource","default":false,"description":"Stash any changes before pulling and restore them after successful pull."},"git.allowForcePush":{"type":"boolean","default":false,"description":"Controls whether force push (with or without lease) is enabled."},"git.useForcePushWithLease":{"type":"boolean","default":true,"description":"Controls whether force pushing uses the safer force-with-lease variant."},"git.useForcePushIfIncludes":{"type":"boolean","default":true,"markdownDescription":"Controls whether force pushing uses the safer force-if-includes variant. Note: This setting requires the `#git.useForcePushWithLease#` setting to be enabled, and Git version `2.30.0` or later."},"git.confirmForcePush":{"type":"boolean","default":true,"description":"Controls whether to ask for confirmation before force-pushing."},"git.allowNoVerifyCommit":{"type":"boolean","default":false,"description":"Controls whether commits without running pre-commit and commit-msg hooks are allowed."},"git.confirmNoVerifyCommit":{"type":"boolean","default":true,"description":"Controls whether to ask for confirmation before committing without verification."},"git.closeDiffOnOperation":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether the diff editor should be automatically closed when changes are stashed, committed, discarded, staged, or unstaged."},"git.openDiffOnClick":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the diff editor should be opened when clicking a change. Otherwise the regular editor will be opened."},"git.supportCancellation":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether a notification comes up when running the Sync action, which allows the user to cancel the operation."},"git.branchSortOrder":{"type":"string","enum":["committerdate","alphabetically"],"default":"committerdate","description":"Controls the sort order for branches."},"git.untrackedChanges":{"type":"string","enum":["mixed","separate","hidden"],"enumDescriptions":["All changes, tracked and untracked, appear together and behave equally.","Untracked changes appear separately in the Source Control view. They are also excluded from several actions.","Untracked changes are hidden and excluded from several actions."],"default":"mixed","description":"Controls how untracked changes behave.","scope":"resource"},"git.requireGitUserConfig":{"type":"boolean","description":"Controls whether to require explicit Git user configuration or allow Git to guess if missing.","default":true,"scope":"resource"},"git.showCommitInput":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to show the commit input in the Git source control panel."},"git.terminalAuthentication":{"type":"boolean","default":true,"description":"Controls whether to enable VS Code to be the authentication handler for Git processes spawned in the Integrated Terminal. Note: Terminals need to be restarted to pick up a change in this setting."},"git.terminalGitEditor":{"type":"boolean","default":false,"description":"Controls whether to enable VS Code to be the Git editor for Git processes spawned in the integrated terminal. Note: Terminals need to be restarted to pick up a change in this setting."},"git.useCommitInputAsStashMessage":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether to use the message from the commit input box as the default stash message."},"git.useIntegratedAskPass":{"type":"boolean","default":true,"description":"Controls whether GIT_ASKPASS should be overwritten to use the integrated version."},"git.githubAuthentication":{"markdownDeprecationMessage":"This setting is now deprecated, please use `#github.gitAuthentication#` instead."},"git.timeline.date":{"type":"string","enum":["committed","authored"],"enumDescriptions":["Use the committed date","Use the authored date"],"default":"committed","description":"Controls which date to use for items in the Timeline view.","scope":"window"},"git.timeline.showAuthor":{"type":"boolean","default":true,"description":"Controls whether to show the commit author in the Timeline view.","scope":"window"},"git.timeline.showUncommitted":{"type":"boolean","default":false,"description":"Controls whether to show uncommitted changes in the Timeline view.","scope":"window"},"git.showActionButton":{"type":"object","additionalProperties":false,"description":"Controls whether an action button is shown in the Source Control view.","properties":{"commit":{"type":"boolean","description":"Show an action button to commit changes when the local branch has modified files ready to be committed."},"publish":{"type":"boolean","description":"Show an action button to publish the local branch when it does not have a tracking remote branch."},"sync":{"type":"boolean","description":"Show an action button to synchronize changes when the local branch is either ahead or behind the remote branch."}},"default":{"commit":true,"publish":true,"sync":true},"scope":"resource"},"git.statusLimit":{"type":"number","scope":"resource","default":10000,"description":"Controls how to limit the number of changes that can be parsed from Git status command. Can be set to 0 for no limit."},"git.repositoryScanIgnoredFolders":{"type":"array","items":{"type":"string"},"default":["node_modules"],"scope":"resource","markdownDescription":"List of folders that are ignored while scanning for Git repositories when `#git.autoRepositoryDetection#` is set to `true` or `subFolders`."},"git.repositoryScanMaxDepth":{"type":"number","scope":"resource","default":1,"markdownDescription":"Controls the depth used when scanning workspace folders for Git repositories when `#git.autoRepositoryDetection#` is set to `true` or `subFolders`. Can be set to `-1` for no limit."},"git.commandsToLog":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"List of git commands (ex: commit, push) that would have their `stdout` logged to the [git output](command:git.showOutput). If the git command has a client-side hook configured, the client-side hook's `stdout` will also be logged to the [git output](command:git.showOutput)."},"git.mergeEditor":{"type":"boolean","default":false,"markdownDescription":"Open the merge editor for files that are currently under conflict.","scope":"window"},"git.optimisticUpdate":{"type":"boolean","default":true,"markdownDescription":"Controls whether to optimistically update the state of the Source Control view after running git commands.","scope":"resource","tags":["experimental"]},"git.openRepositoryInParentFolders":{"type":"string","enum":["always","never","prompt"],"enumDescriptions":["Always open a repository in parent folders of workspaces or open files.","Never open a repository in parent folders of workspaces or open files.","Prompt before opening a repository the parent folders of workspaces or open files."],"default":"prompt","markdownDescription":"Control whether a repository in parent folders of workspaces or open files should be opened.","scope":"resource"},"git.similarityThreshold":{"type":"number","default":50,"minimum":0,"maximum":100,"markdownDescription":"Controls the threshold of the similarity index (the amount of additions/deletions compared to the file's size) for changes in a pair of added/deleted files to be considered a rename. **Note:** Requires Git version `2.18.0` or later.","scope":"resource"},"git.blame.editorDecoration.enabled":{"type":"boolean","default":false,"markdownDescription":"Controls whether to show blame information in the editor using editor decorations."},"git.blame.editorDecoration.template":{"type":"string","default":"${subject}, ${authorName} (${authorDateAgo})","markdownDescription":"Template for the blame information editor decoration. Supported variables:\n\n* `hash`: Commit hash\n\n* `hashShort`: First N characters of the commit hash according to `#git.commitShortHashLength#`\n\n* `subject`: First line of the commit message\n\n* `authorName`: Author name\n\n* `authorEmail`: Author email\n\n* `authorDate`: Author date\n\n* `authorDateAgo`: Time difference between now and the author date\n\n"},"git.blame.editorDecoration.disableHover":{"type":"boolean","default":false,"markdownDescription":"Controls whether to disable the blame information editor decoration hover."},"git.blame.statusBarItem.enabled":{"type":"boolean","default":true,"markdownDescription":"Controls whether to show blame information in the status bar."},"git.blame.statusBarItem.template":{"type":"string","default":"${authorName} (${authorDateAgo})","markdownDescription":"Template for the blame information status bar item. Supported variables:\n\n* `hash`: Commit hash\n\n* `hashShort`: First N characters of the commit hash according to `#git.commitShortHashLength#`\n\n* `subject`: First line of the commit message\n\n* `authorName`: Author name\n\n* `authorEmail`: Author email\n\n* `authorDate`: Author date\n\n* `authorDateAgo`: Time difference between now and the author date\n\n"},"git.blame.ignoreWhitespace":{"type":"boolean","default":false,"markdownDescription":"Controls whether to ignore whitespace changes when computing blame information."},"git.commitShortHashLength":{"type":"number","default":7,"minimum":7,"maximum":40,"markdownDescription":"Controls the length of the commit short hash.","scope":"resource"},"git.diagnosticsCommitHook.enabled":{"type":"boolean","default":false,"markdownDescription":"Controls whether to check for unresolved diagnostics before committing.","scope":"resource"},"git.diagnosticsCommitHook.sources":{"type":"object","additionalProperties":{"type":"string","enum":["error","warning","information","hint","none"]},"default":{"*":"error"},"markdownDescription":"Controls the list of sources (**Item**) and the minimum severity (**Value**) to be considered before committing. **Note:** To ignore diagnostics from a particular source, add the source to the list and set the minimum severity to `none`.","scope":"resource"},"git.discardUntrackedChangesToTrash":{"type":"boolean","default":true,"markdownDescription":"Controls whether discarding untracked changes moves the file(s) to the Recycle Bin (Windows), Trash (macOS, Linux) instead of deleting them permanently. **Note:** This setting has no effect when connected to a remote or when running in Linux as a snap package."},"git.showReferenceDetails":{"type":"boolean","default":true,"markdownDescription":"Controls whether to show the details of the last commit for Git refs in the checkout, branch, and tag pickers."}}},"colors":[{"id":"gitDecoration.addedResourceForeground","description":"Color for added resources.","defaults":{"light":"#587c0c","dark":"#81b88b","highContrast":"#a1e3ad","highContrastLight":"#374e06"}},{"id":"gitDecoration.modifiedResourceForeground","description":"Color for modified resources.","defaults":{"light":"#895503","dark":"#E2C08D","highContrast":"#E2C08D","highContrastLight":"#895503"}},{"id":"gitDecoration.deletedResourceForeground","description":"Color for deleted resources.","defaults":{"light":"#ad0707","dark":"#c74e39","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.renamedResourceForeground","description":"Color for renamed or copied resources.","defaults":{"light":"#007100","dark":"#73C991","highContrast":"#73C991","highContrastLight":"#007100"}},{"id":"gitDecoration.untrackedResourceForeground","description":"Color for untracked resources.","defaults":{"light":"#007100","dark":"#73C991","highContrast":"#73C991","highContrastLight":"#007100"}},{"id":"gitDecoration.ignoredResourceForeground","description":"Color for ignored resources.","defaults":{"light":"#8E8E90","dark":"#8C8C8C","highContrast":"#A7A8A9","highContrastLight":"#8e8e90"}},{"id":"gitDecoration.stageModifiedResourceForeground","description":"Color for modified resources which have been staged.","defaults":{"light":"#895503","dark":"#E2C08D","highContrast":"#E2C08D","highContrastLight":"#895503"}},{"id":"gitDecoration.stageDeletedResourceForeground","description":"Color for deleted resources which have been staged.","defaults":{"light":"#ad0707","dark":"#c74e39","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.conflictingResourceForeground","description":"Color for resources with conflicts.","defaults":{"light":"#ad0707","dark":"#e4676b","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.submoduleResourceForeground","description":"Color for submodule resources.","defaults":{"light":"#1258a7","dark":"#8db9e2","highContrast":"#8db9e2","highContrastLight":"#1258a7"}},{"id":"git.blame.editorDecorationForeground","description":"Color for the blame editor decoration.","defaults":{"dark":"editorInlayHint.foreground","light":"editorInlayHint.foreground","highContrast":"editorInlayHint.foreground","highContrastLight":"editorInlayHint.foreground"}}],"configurationDefaults":{"[git-commit]":{"editor.rulers":[50,72],"editor.wordWrap":"off","workbench.editor.restoreViewState":false},"[git-rebase]":{"workbench.editor.restoreViewState":false}},"viewsWelcome":[{"view":"scm","contents":"If you would like to use Git features, please enable Git in your [settings](command:workbench.action.openSettings?%5B%22git.enabled%22%5D).\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"!config.git.enabled"},{"view":"scm","contents":"Install Git, a popular source control system, to track code changes and collaborate with others. Learn more in our [Git guides](https://aka.ms/vscode-scm).","when":"config.git.enabled && git.missing && remoteName != ''"},{"view":"scm","contents":"[Download Git for macOS](https://git-scm.com/download/mac)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isMac"},{"view":"scm","contents":"[Download Git for Windows](https://git-scm.com/download/win)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isWindows"},{"view":"scm","contents":"Source control depends on Git being installed.\n[Download Git for Linux](https://git-scm.com/download/linux)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isLinux"},{"view":"scm","contents":"In order to use Git features, you can open a folder containing a Git repository or clone from a URL.\n[Open Folder](command:vscode.openFolder)\n[Clone Repository](command:git.cloneRecursive)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && workbenchState == empty && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0","enablement":"git.state == initialized","group":"2_open@1"},{"view":"scm","contents":"The workspace currently open doesn't have any folders containing Git repositories.\n[Add Folder to Workspace](command:workbench.action.addRootFolder)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && workbenchState == workspace && workspaceFolderCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0","enablement":"git.state == initialized","group":"2_open@1"},{"view":"scm","contents":"Scanning folder for Git repositories...","when":"config.git.enabled && !git.missing && workbenchState == folder && workspaceFolderCount != 0 && git.state != initialized"},{"view":"scm","contents":"Scanning workspace for Git repositories...","when":"config.git.enabled && !git.missing && workbenchState == workspace && workspaceFolderCount != 0 && git.state != initialized"},{"view":"scm","contents":"The folder currently open doesn't have a Git repository. You can initialize a repository which will enable source control features powered by Git.\n[Initialize Repository](command:git.init?%5Btrue%5D)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && workbenchState == folder && scm.providerCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0 && remoteName != 'codespaces'","group":"5_scm@1"},{"view":"scm","contents":"The workspace currently open doesn't have any folders containing Git repositories. You can initialize a repository on a folder which will enable source control features powered by Git.\n[Initialize Repository](command:git.init)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && workbenchState == workspace && workspaceFolderCount != 0 && scm.providerCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0 && remoteName != 'codespaces'","group":"5_scm@1"},{"view":"scm","contents":"A Git repository was found in the parent folders of the workspace or the open file(s).\n[Open Repository](command:git.openRepositoriesInParentFolders)\nUse the [git.openRepositoryInParentFolders](command:workbench.action.openSettings?%5B%22git.openRepositoryInParentFolders%22%5D) setting to control whether Git repositories in parent folders of workspaces or open files are opened. To learn more [read our docs](https://aka.ms/vscode-git-repository-in-parent-folders).","when":"config.git.enabled && !git.missing && git.state == initialized && git.parentRepositoryCount == 1"},{"view":"scm","contents":"Git repositories were found in the parent folders of the workspace or the open file(s).\n[Open Repository](command:git.openRepositoriesInParentFolders)\nUse the [git.openRepositoryInParentFolders](command:workbench.action.openSettings?%5B%22git.openRepositoryInParentFolders%22%5D) setting to control whether Git repositories in parent folders of workspace or open files are opened. To learn more [read our docs](https://aka.ms/vscode-git-repository-in-parent-folders).","when":"config.git.enabled && !git.missing && git.state == initialized && git.parentRepositoryCount > 1"},{"view":"scm","contents":"The detected Git repository is potentially unsafe as the folder is owned by someone other than the current user.\n[Manage Unsafe Repositories](command:git.manageUnsafeRepositories)\nTo learn more about unsafe repositories [read our docs](https://aka.ms/vscode-git-unsafe-repository).","when":"config.git.enabled && !git.missing && git.state == initialized && git.unsafeRepositoryCount == 1"},{"view":"scm","contents":"The detected Git repositories are potentially unsafe as the folders are owned by someone other than the current user.\n[Manage Unsafe Repositories](command:git.manageUnsafeRepositories)\nTo learn more about unsafe repositories [read our docs](https://aka.ms/vscode-git-unsafe-repository).","when":"config.git.enabled && !git.missing && git.state == initialized && git.unsafeRepositoryCount > 1"},{"view":"scm","contents":"A Git repository was found that was previously closed.\n[Reopen Closed Repository](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && git.closedRepositoryCount == 1"},{"view":"scm","contents":"Git repositories were found that were previously closed.\n[Reopen Closed Repositories](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && git.closedRepositoryCount > 1"},{"view":"explorer","contents":"You can clone a repository locally.\n[Clone Repository](command:git.clone 'Clone a repository once the Git extension has activated')","when":"config.git.enabled && git.state == initialized && scm.providerCount == 0","group":"5_scm@1"},{"view":"explorer","contents":"To learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && git.state == initialized && scm.providerCount == 0","group":"5_scm@10"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"allowScripts":{"@vscode/fs-copyfile@2.0.0":true},"originalEnabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","canonicalUriProvider","contribEditSessions","contribEditorContentMenu","contribMergeEditorMenus","contribMultiDiffEditorMenus","contribDiffEditorGutterToolBarMenus","contribSourceControlArtifactGroupMenu","contribSourceControlArtifactMenu","contribSourceControlHistoryItemMenu","contribSourceControlHistoryTitleMenu","contribSourceControlInputBoxMenu","contribSourceControlTitleMenu","contribViewsWelcome","editSessionIdentityProvider","envIsConnectionMetered","findFiles2","quickDiffProvider","quickPickSortByLabel","scmActionButton","scmArtifactProvider","scmHistoryProvider","scmMultiDiffEditor","scmProviderOptions","scmSelectedProvider","scmTextDocument","scmValidation","statusBarItemTooltip","taskRunOptions","tabInputMultiDiff","tabInputTextMerge","textEditorDiffInformation","timeline","workspaceTrust"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/git","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.git-base"},"manifest":{"name":"git-base","displayName":"Git Base","description":"Git static contributions and pickers.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Other"],"activationEvents":["*"],"main":"./dist/extension.js","browser":"./dist/browser/extension.js","icon":"resources/icons/git.png","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"commands":[{"command":"git-base.api.getRemoteSources","title":"Get Remote Sources","category":"Git Base API"}],"menus":{"commandPalette":[{"command":"git-base.api.getRemoteSources","when":"false"}]},"languages":[{"id":"git-commit","aliases":["Git Commit Message","git-commit"],"filenames":["COMMIT_EDITMSG","MERGE_MSG"],"configuration":"./languages/git-commit.language-configuration.json"},{"id":"git-rebase","aliases":["Git Rebase Message","git-rebase"],"filenames":["git-rebase-todo"],"filenamePatterns":["**/rebase-merge/done"],"configuration":"./languages/git-rebase.language-configuration.json"},{"id":"ignore","aliases":["Ignore","ignore"],"extensions":[".gitignore_global",".gitignore",".git-blame-ignore-revs"],"configuration":"./languages/ignore.language-configuration.json"}],"grammars":[{"language":"git-commit","scopeName":"text.git-commit","path":"./syntaxes/git-commit.tmLanguage.json"},{"language":"git-rebase","scopeName":"text.git-rebase","path":"./syntaxes/git-rebase.tmLanguage.json"},{"language":"ignore","scopeName":"source.ignore","path":"./syntaxes/ignore.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/git-base","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.github"},"manifest":{"name":"github","displayName":"GitHub","description":"GitHub features for VS Code","publisher":"vscode","license":"MIT","version":"0.0.1","engines":{"vscode":"^1.41.0"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","icon":"images/icon.png","categories":["Other"],"activationEvents":["*"],"extensionDependencies":["vscode.git-base"],"type":"module","main":"./dist/extension.js","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["canonicalUriProvider","chatSessionsProvider","contribEditSessions","contribShareMenu","contribSourceControlHistoryItemMenu","scmHistoryProvider","shareProvider","timeline"],"contributes":{"commands":[{"command":"github.publish","title":"Publish to GitHub"},{"command":"github.copyVscodeDevLink","title":"Copy vscode.dev Link"},{"command":"github.copyVscodeDevLinkFile","title":"Copy vscode.dev Link"},{"command":"github.copyVscodeDevLinkWithoutRange","title":"Copy vscode.dev Link"},{"command":"github.openOnVscodeDev","title":"Open in vscode.dev","icon":"$(globe)"},{"command":"github.graph.openOnGitHub","title":"Open on GitHub","icon":"$(github)"},{"command":"github.timeline.openOnGitHub","title":"Open on GitHub","icon":"$(github)"},{"command":"github.createPullRequest","title":"Create PR","icon":"$(git-pull-request)"},{"command":"github.openPullRequest","title":"Open PR","icon":"$(git-pull-request)"}],"continueEditSession":[{"command":"github.openOnVscodeDev","when":"github.hasGitHubRepo","qualifiedName":"Continue Working in vscode.dev","category":"Remote Repositories","remoteGroup":"virtualfs_44_vscode-vfs_2_web@2"}],"menus":{"commandPalette":[{"command":"github.publish","when":"git-base.gitEnabled && workspaceFolderCount != 0 && remoteName != 'codespaces'"},{"command":"github.createPullRequest","when":"false"},{"command":"github.openPullRequest","when":"false"},{"command":"github.graph.openOnGitHub","when":"false"},{"command":"github.copyVscodeDevLink","when":"false"},{"command":"github.copyVscodeDevLinkFile","when":"false"},{"command":"github.copyVscodeDevLinkWithoutRange","when":"false"},{"command":"github.openOnVscodeDev","when":"false"},{"command":"github.timeline.openOnGitHub","when":"false"}],"file/share":[{"command":"github.copyVscodeDevLinkFile","when":"github.hasGitHubRepo && remoteName != 'codespaces'","group":"0_vscode@0"}],"editor/context/share":[{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'","group":"0_vscode@0"}],"explorer/context/share":[{"command":"github.copyVscodeDevLinkWithoutRange","when":"github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'","group":"0_vscode@0"}],"editor/lineNumber/context":[{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editors.files.textFileEditor && config.editor.lineNumbers == on && remoteName != 'codespaces'","group":"1_cutcopypaste@2"},{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editor.notebook && remoteName != 'codespaces'","group":"1_cutcopypaste@2"}],"editor/title/context/share":[{"command":"github.copyVscodeDevLinkWithoutRange","when":"github.hasGitHubRepo && resourceScheme != untitled && remoteName != 'codespaces'","group":"0_vscode@0"}],"scm/historyItem/context":[{"command":"github.graph.openOnGitHub","when":"github.hasGitHubRepo","group":"0_view@2"}],"timeline/item/context":[{"command":"github.timeline.openOnGitHub","group":"1_actions@3","when":"github.hasGitHubRepo && timelineItem =~ /git:file:commit\\b/"}],"agents/changes/actions/primary":[]},"configuration":[{"title":"GitHub","properties":{"github.branchProtection":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to query repository rules for GitHub repositories"},"github.gitAuthentication":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to enable automatic GitHub authentication for git commands within VS Code."},"github.gitProtocol":{"type":"string","enum":["https","ssh"],"default":"https","description":"Controls which protocol is used to clone a GitHub repository"},"github.showAvatar":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to show the GitHub avatar of the commit author in various hovers (ex: Git blame, Timeline, Source Control Graph, etc.)"}}}],"viewsWelcome":[{"view":"scm","contents":"You can directly publish this folder to a GitHub repository. Once published, you'll have access to source control features powered by Git and GitHub.\n[$(github) Publish to GitHub](command:github.publish)","when":"config.git.enabled && git.state == initialized && workbenchState == folder && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0"},{"view":"scm","contents":"You can directly publish a workspace folder to a GitHub repository. Once published, you'll have access to source control features powered by Git and GitHub.\n[$(github) Publish to GitHub](command:github.publish)","when":"config.git.enabled && git.state == initialized && workbenchState == workspace && workspaceFolderCount != 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0"}],"markdown.previewStyles":["./markdown.css"]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["canonicalUriProvider","chatSessionsProvider","contribEditSessions","contribShareMenu","contribSourceControlHistoryItemMenu","scmHistoryProvider","shareProvider","timeline"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/github","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.github-authentication"},"manifest":{"name":"github-authentication","displayName":"GitHub Authentication","description":"GitHub Authentication Provider","publisher":"vscode","license":"MIT","version":"0.0.2","engines":{"vscode":"^1.41.0"},"icon":"images/icon.png","categories":["Other"],"api":"none","extensionKind":["ui","workspace"],"enabledApiProposals":["authIssuers","authProviderSpecific","authSessionAccountIcon"],"activationEvents":[],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","restrictedConfigurations":["github-enterprise.uri"]}},"contributes":{"authentication":[{"label":"GitHub","id":"github","authorizationServerGlobs":["https://github.com/login/oauth"]},{"label":"GitHub Enterprise Server","id":"github-enterprise","authorizationServerGlobs":["*"]}],"configuration":[{"title":"GHE.com & GitHub Enterprise Server Authentication","properties":{"github-enterprise.uri":{"type":"string","markdownDescription":"The URI for your GHE.com or GitHub Enterprise Server instance.\n\nExamples:\n* GHE.com: `https://octocat.ghe.com`\n* GitHub Enterprise Server: `https://github.octocat.com`\n\n> **Note:** This should _not_ be set to a GitHub.com URI. If your account exists on GitHub.com or is a GitHub Enterprise Managed User, you do not need any additional configuration and can simply log in to GitHub.","pattern":"^(?:$|(https?)://(?!github\\.com).*)"},"github-authentication.useElectronFetch":{"type":"boolean","default":true,"scope":"application","markdownDescription":"When true, uses Electron's built-in fetch function for HTTP requests. When false, uses the Node.js global fetch function. This setting only applies when running in the Electron environment. **Note:** A restart is required for this setting to take effect."},"github-authentication.preferDeviceCodeFlow":{"type":"boolean","default":false,"scope":"application","markdownDescription":"When true, prioritize the device code flow for authentication instead of other available flows. This is useful for environments like WSL where the local server or URL handler flows may not work as expected."}}}]},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","main":"./dist/extension.js","browser":"./dist/browser/extension.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["authIssuers","authProviderSpecific","authSessionAccountIcon"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/github-authentication","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.go"},"manifest":{"name":"go","displayName":"Go Language Basics","description":"Provides syntax highlighting and bracket matching in Go files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin worlpaker/go-syntax syntaxes/go.tmLanguage.json ./syntaxes/go.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"go","extensions":[".go"],"aliases":["Go"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"go","scopeName":"source.go","path":"./syntaxes/go.tmLanguage.json"}],"configurationDefaults":{"[go]":{"editor.insertSpaces":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/go","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.groovy"},"manifest":{"name":"groovy","displayName":"Groovy Language Basics","description":"Provides snippets, syntax highlighting and bracket matching in Groovy files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/groovy.tmbundle Syntaxes/Groovy.tmLanguage ./syntaxes/groovy.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"groovy","aliases":["Groovy","groovy"],"extensions":[".groovy",".gvy",".gradle",".jenkinsfile",".nf"],"filenames":["Jenkinsfile"],"filenamePatterns":["Jenkinsfile*"],"firstLine":"^#!.*\\bgroovy\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"groovy","scopeName":"source.groovy","path":"./syntaxes/groovy.tmLanguage.json"}],"snippets":[{"language":"groovy","path":"./snippets/groovy.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/groovy","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.grunt"},"manifest":{"name":"grunt","publisher":"vscode","description":"Extension to add Grunt capabilities to VS Code.","displayName":"Grunt support for VS Code","version":"10.0.0","private":true,"icon":"images/grunt.png","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:grunt"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"grunt","type":"object","title":"Grunt","properties":{"grunt.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Grunt task detection. Grunt task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"grunt","required":["task"],"properties":{"task":{"type":"string","description":"The Grunt task to customize."},"args":{"type":"array","description":"Command line arguments to pass to the grunt task"},"file":{"type":"string","description":"The Grunt file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/grunt","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.gulp"},"manifest":{"name":"gulp","publisher":"vscode","description":"Extension to add Gulp capabilities to VSCode.","displayName":"Gulp support for VSCode","version":"10.0.0","icon":"images/gulp.png","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:gulp"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"gulp","type":"object","title":"Gulp","properties":{"gulp.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Gulp task detection. Gulp task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"gulp","required":["task"],"properties":{"task":{"type":"string","description":"The Gulp task to customize."},"file":{"type":"string","description":"The Gulp file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/gulp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.handlebars"},"manifest":{"name":"handlebars","displayName":"Handlebars Language Basics","description":"Provides syntax highlighting and bracket matching in Handlebars files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin daaain/Handlebars grammars/Handlebars.json ./syntaxes/Handlebars.tmLanguage.json"},"categories":["Programming Languages"],"extensionKind":["ui","workspace"],"contributes":{"languages":[{"id":"handlebars","extensions":[".handlebars",".hbs",".hjs"],"aliases":["Handlebars","handlebars"],"mimetypes":["text/x-handlebars-template"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"handlebars","scopeName":"text.html.handlebars","path":"./syntaxes/Handlebars.tmLanguage.json"}],"htmlLanguageParticipants":[{"languageId":"handlebars","autoInsert":true}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/handlebars","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[[2,"property `extensionKind` can be defined only if property `main` is also defined."]],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.hlsl"},"manifest":{"name":"hlsl","displayName":"HLSL Language Basics","description":"Provides syntax highlighting and bracket matching in HLSL files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin tgjones/shaders-tmLanguage grammars/hlsl.json ./syntaxes/hlsl.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"hlsl","extensions":[".hlsl",".hlsli",".fx",".fxh",".vsh",".psh",".cginc",".compute"],"aliases":["HLSL","hlsl"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"hlsl","path":"./syntaxes/hlsl.tmLanguage.json","scopeName":"source.hlsl"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/hlsl","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.html"},"manifest":{"name":"html","displayName":"HTML Language Basics","description":"Provides syntax highlighting, bracket matching & snippets in HTML files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"html","extensions":[".html",".htm",".shtml",".xhtml",".xht",".mdoc",".jsp",".asp",".aspx",".jshtm",".volt",".ejs",".rhtml"],"aliases":["HTML","htm","html","xhtml"],"mimetypes":["text/html","text/x-jshtm","text/template","text/ng-template","application/xhtml+xml"],"configuration":"./language-configuration.json"}],"grammars":[{"scopeName":"text.html.basic","path":"./syntaxes/html.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.css":"css","source.js":"javascript","source.python":"python","source.smarty":"smarty"},"tokenTypes":{"meta.tag string.quoted":"other"}},{"language":"html","scopeName":"text.html.derivative","path":"./syntaxes/html-derivative.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.css":"css","source.js":"javascript","source.python":"python","source.smarty":"smarty"},"tokenTypes":{"meta.tag string.quoted":"other"}}],"snippets":[{"language":"html","path":"./snippets/html.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/html","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.html-language-features"},"manifest":{"name":"html-language-features","displayName":"HTML Language Features","description":"Provides rich language support for HTML and Handlebar files","version":"10.0.0","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.77.0"},"icon":"icons/html.png","activationEvents":["onLanguage:html","onLanguage:handlebars"],"enabledApiProposals":["extensionsAny"],"main":"./client/dist/node/htmlClientMain","browser":"./client/dist/browser/htmlClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"categories":["Programming Languages"],"contributes":{"configuration":{"id":"html","order":20,"type":"object","title":"HTML","properties":{"html.completion.attributeDefaultValue":{"type":"string","scope":"resource","enum":["doublequotes","singlequotes","empty"],"enumDescriptions":["Attribute value is set to \"\".","Attribute value is set to ''.","Attribute value is not set."],"default":"doublequotes","markdownDescription":"Controls the default value for attributes when completion is accepted."},"html.customData":{"type":"array","markdownDescription":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-html-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its HTML support for the custom HTML tags, attributes and attribute values you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","default":[],"items":{"type":"string"},"scope":"resource"},"html.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default HTML formatter."},"html.format.wrapLineLength":{"type":"integer","scope":"resource","default":120,"description":"Maximum amount of characters per line (0 = disable)."},"html.format.unformatted":{"type":["string","null"],"scope":"resource","default":"wbr","markdownDescription":"List of tags, comma separated, that shouldn't be reformatted. `null` defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content."},"html.format.contentUnformatted":{"type":["string","null"],"scope":"resource","default":"pre,code,textarea","markdownDescription":"List of tags, comma separated, where the content shouldn't be reformatted. `null` defaults to the `pre` tag."},"html.format.indentInnerHtml":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Indent `` and `` sections."},"html.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text."},"html.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk. Use `null` for unlimited."},"html.format.indentHandlebars":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Format and indent `{{#foo}}` and `{{/foo}}`."},"html.format.extraLiners":{"type":["string","null"],"scope":"resource","default":"head, body, /html","markdownDescription":"List of tags, comma separated, that should have an extra newline before them. `null` defaults to `\"head, body, /html\"`."},"html.format.wrapAttributes":{"type":"string","scope":"resource","default":"auto","enum":["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"],"enumDescriptions":["Wrap attributes only when line length is exceeded.","Wrap each attribute except first.","Wrap each attribute except first and keep aligned.","Wrap each attribute.","Wrap when line length is exceeded, align attributes vertically.","Preserve wrapping of attributes.","Preserve wrapping of attributes but align."],"description":"Wrap attributes."},"html.format.wrapAttributesIndentSize":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Indent wrapped attributes to after N characters. Use `null` to use the default indent size. Ignored if `#html.format.wrapAttributes#` is set to `aligned`."},"html.format.templating":{"type":"boolean","scope":"resource","default":false,"description":"Honor django, erb, handlebars and php templating language tags."},"html.format.unformattedContentDelimiter":{"type":"string","scope":"resource","default":"","markdownDescription":"Keep text content together between this string."},"html.suggest.html5":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support suggests HTML5 tags, properties and values."},"html.suggest.hideEndTagSuggestions":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether the built-in HTML language support suggests closing tags. When disabled, end tag completions like `` will not be shown."},"html.validate.scripts":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support validates embedded scripts."},"html.validate.styles":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support validates embedded styles."},"html.autoCreateQuotes":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Enable/disable auto creation of quotes for HTML attribute assignment. The type of quotes can be configured by `#html.completion.attributeDefaultValue#`."},"html.autoClosingTags":{"type":"boolean","scope":"resource","default":true,"description":"Enable/disable autoclosing of HTML tags."},"html.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show tag and attribute documentation in hover."},"html.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in hover."},"html.mirrorCursorOnMatchingTag":{"type":"boolean","scope":"resource","default":false,"description":"Enable/disable mirroring cursor on matching HTML tag.","deprecationMessage":"Deprecated in favor of `editor.linkedEditing`"},"html.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the HTML language server."}}},"configurationDefaults":{"[html]":{"editor.suggest.insertMode":"replace"},"[handlebars]":{"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.html-data.json","url":"https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json"},{"fileMatch":"package.json","url":"./schemas/package.schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["extensionsAny"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/html-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ini"},"manifest":{"name":"ini","displayName":"Ini Language Basics","description":"Provides syntax highlighting and bracket matching in Ini files.","version":"10.0.0","private":true,"publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/ini.tmbundle Syntaxes/Ini.plist ./syntaxes/ini.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"ini","extensions":[".ini"],"aliases":["Ini","ini"],"configuration":"./ini.language-configuration.json"},{"id":"properties","extensions":[".conf",".properties",".cfg",".directory",".gitattributes",".gitconfig",".gitmodules",".editorconfig",".repo"],"filenames":["gitconfig"],"filenamePatterns":["**/.config/git/config","**/.git/config"],"aliases":["Properties","properties"],"configuration":"./properties.language-configuration.json"}],"grammars":[{"language":"ini","scopeName":"source.ini","path":"./syntaxes/ini.tmLanguage.json"},{"language":"properties","scopeName":"source.ini","path":"./syntaxes/ini.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ini","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ipynb"},"manifest":{"name":"ipynb","displayName":".ipynb Support","description":"Provides basic support for opening and reading Jupyter's .ipynb notebook files","publisher":"vscode","version":"10.0.0","license":"MIT","icon":"media/icon.png","engines":{"vscode":"^1.57.0"},"enabledApiProposals":["diffContentOptions"],"activationEvents":["onNotebook:jupyter-notebook","onNotebookSerializer:interactive","onNotebookSerializer:repl"],"extensionKind":["workspace","ui"],"main":"./dist/ipynbMain.node.js","browser":"./dist/browser/ipynbMain.browser.js","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":[{"properties":{"ipynb.pasteImagesAsAttachments.enabled":{"type":"boolean","scope":"resource","markdownDescription":"Enable/disable pasting of images into Markdown cells in ipynb notebook files. Pasted images are inserted as attachments to the cell.","default":true},"ipynb.experimental.serialization":{"type":"boolean","scope":"resource","markdownDescription":"Experimental feature to serialize the Jupyter notebook in a worker thread.","default":true,"tags":["experimental"]}}}],"commands":[{"command":"ipynb.newUntitledIpynb","title":"New Jupyter Notebook","shortTitle":"Jupyter Notebook","category":"Create"},{"command":"ipynb.openIpynbInNotebookEditor","title":"Open IPYNB File In Notebook Editor"},{"command":"ipynb.cleanInvalidImageAttachment","title":"Clean Invalid Image Attachment Reference"},{"command":"notebook.cellOutput.copy","title":"Copy Cell Output","category":"Notebook"},{"command":"notebook.cellOutput.addToChat","title":"Add Cell Output to Chat","category":"Notebook","enablement":"chatIsEnabled"},{"command":"notebook.cellOutput.openInTextEditor","title":"Open Cell Output in Text Editor","category":"Notebook"}],"notebooks":[{"type":"jupyter-notebook","displayName":"Jupyter Notebook","selector":[{"filenamePattern":"*.ipynb"}],"priority":"default"}],"notebookRenderer":[{"id":"vscode.markdown-it-cell-attachment-renderer","displayName":"Markdown-It ipynb Cell Attachment renderer","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/cellAttachmentRenderer.js"}}],"menus":{"file/newFile":[{"command":"ipynb.newUntitledIpynb","group":"notebook"}],"commandPalette":[{"command":"ipynb.newUntitledIpynb"},{"command":"ipynb.openIpynbInNotebookEditor","when":"false"},{"command":"ipynb.cleanInvalidImageAttachment","when":"false"},{"command":"notebook.cellOutput.copy","when":"notebookCellHasOutputs"},{"command":"notebook.cellOutput.openInTextEditor","when":"false"}],"webview/context":[{"command":"notebook.cellOutput.copy","when":"webviewId == 'notebook.output' && webviewSection == 'image'","group":"context@1"},{"command":"notebook.cellOutput.copy","when":"webviewId == 'notebook.output' && webviewSection == 'text'"},{"command":"notebook.cellOutput.addToChat","when":"webviewId == 'notebook.output' && (webviewSection == 'text' || webviewSection == 'image')","group":"context@2"},{"command":"notebook.cellOutput.openInTextEditor","when":"webviewId == 'notebook.output' && webviewSection == 'text'"}]}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["diffContentOptions"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ipynb","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.jake"},"manifest":{"name":"jake","publisher":"vscode","description":"Extension to add Jake capabilities to VS Code.","displayName":"Jake support for VS Code","icon":"images/cowboy_hat.png","version":"10.0.0","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:jake"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"jake","type":"object","title":"Jake","properties":{"jake.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Jake task detection. Jake task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"jake","required":["task"],"properties":{"task":{"type":"string","description":"The Jake task to customize."},"file":{"type":"string","description":"The Jake file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/jake","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.java"},"manifest":{"name":"java","displayName":"Java Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Java files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin redhat-developer/vscode-java language-support/java/java.tmLanguage.json ./syntaxes/java.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"java","extensions":[".java",".jav"],"aliases":["Java","java"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"java","scopeName":"source.java","path":"./syntaxes/java.tmLanguage.json"}],"snippets":[{"language":"java","path":"./snippets/java.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/java","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.javascript"},"manifest":{"name":"javascript","displayName":"JavaScript Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in JavaScript files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Programming Languages"],"contributes":{"configurationDefaults":{"[javascript]":{"editor.maxTokenizationLineLength":2500}},"languages":[{"id":"javascriptreact","aliases":["JavaScript JSX","JavaScript React","jsx"],"extensions":[".jsx"],"configuration":"./javascript-language-configuration.json"},{"id":"javascript","aliases":["JavaScript","javascript","js"],"extensions":[".js",".es6",".mjs",".cjs",".pac"],"filenames":["jakefile"],"firstLine":"^#!.*\\bnode","mimetypes":["text/javascript"],"configuration":"./javascript-language-configuration.json"},{"id":"jsx-tags","aliases":[],"configuration":"./tags-language-configuration.json"}],"grammars":[{"language":"javascriptreact","scopeName":"source.js.jsx","path":"./syntaxes/JavaScriptReact.tmLanguage.json","embeddedLanguages":{"meta.tag.js":"jsx-tags","meta.tag.without-attributes.js":"jsx-tags","meta.tag.attributes.js.jsx":"javascriptreact","meta.embedded.expression.js":"javascriptreact"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"language":"javascript","scopeName":"source.js","path":"./syntaxes/JavaScript.tmLanguage.json","embeddedLanguages":{"meta.tag.js":"jsx-tags","meta.tag.without-attributes.js":"jsx-tags","meta.tag.attributes.js":"javascript","meta.embedded.expression.js":"javascript"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"scopeName":"source.js.regexp","path":"./syntaxes/Regular Expressions (JavaScript).tmLanguage"}],"semanticTokenScopes":[{"language":"javascript","scopes":{"property":["variable.other.property.js"],"property.readonly":["variable.other.constant.property.js"],"variable":["variable.other.readwrite.js"],"variable.readonly":["variable.other.constant.object.js"],"function":["entity.name.function.js"],"namespace":["entity.name.type.module.js"],"variable.defaultLibrary":["support.variable.js"],"function.defaultLibrary":["support.function.js"]}},{"language":"javascriptreact","scopes":{"property":["variable.other.property.jsx"],"property.readonly":["variable.other.constant.property.jsx"],"variable":["variable.other.readwrite.jsx"],"variable.readonly":["variable.other.constant.object.jsx"],"function":["entity.name.function.jsx"],"namespace":["entity.name.type.module.jsx"],"variable.defaultLibrary":["support.variable.js"],"function.defaultLibrary":["support.function.js"]}}],"snippets":[{"language":"javascript","path":"./snippets/javascript.code-snippets"},{"language":"javascriptreact","path":"./snippets/javascript.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/javascript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.json"},"manifest":{"name":"json","displayName":"JSON Language Basics","description":"Provides syntax highlighting & bracket matching in JSON files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"json","aliases":["JSON","json"],"extensions":[".json",".bowerrc",".jscsrc",".webmanifest",".js.map",".css.map",".ts.map",".har",".jslintrc",".jsonld",".geojson",".ipynb",".vuerc"],"filenames":["composer.lock",".watchmanconfig"],"mimetypes":["application/json","application/manifest+json"],"configuration":"./language-configuration.json"},{"id":"jsonc","aliases":["JSON with Comments"],"extensions":[".jsonc",".eslintrc",".eslintrc.json",".jsfmtrc",".jshintrc",".swcrc",".hintrc",".babelrc",".toolset.jsonc"],"filenames":["babel.config.json","bun.lock",".babelrc.json",".ember-cli","typedoc.json"],"filenamePatterns":["**/.github/hooks/*.json"],"configuration":"./language-configuration.json"},{"id":"jsonl","aliases":["JSON Lines"],"extensions":[".jsonl",".ndjson"],"filenames":[],"configuration":"./language-configuration.json"},{"id":"snippets","aliases":["Code Snippets"],"extensions":[".code-snippets"],"filenamePatterns":["**/User/snippets/*.json","**/User/profiles/*/snippets/*.json","**/snippets*.json"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"json","scopeName":"source.json","path":"./syntaxes/JSON.tmLanguage.json"},{"language":"jsonc","scopeName":"source.json.comments","path":"./syntaxes/JSONC.tmLanguage.json"},{"language":"jsonl","scopeName":"source.json.lines","path":"./syntaxes/JSONL.tmLanguage.json"},{"language":"snippets","scopeName":"source.json.comments.snippets","path":"./syntaxes/snippets.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/json","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.json-language-features"},"manifest":{"name":"json-language-features","displayName":"JSON Language Features","description":"Provides rich language support for JSON files.","version":"10.0.0","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.77.0"},"enabledApiProposals":["extensionsAny"],"icon":"icons/json.png","activationEvents":["onLanguage:json","onLanguage:jsonc","onLanguage:snippets","onCommand:json.validate"],"main":"./client/dist/node/jsonClientMain","browser":"./client/dist/browser/jsonClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","description":"The extension requires workspace trust to load schemas from http and https."}},"categories":["Programming Languages"],"contributes":{"configuration":{"id":"json","order":20,"type":"object","title":"JSON","properties":{"json.schemas":{"type":"array","scope":"resource","description":"Associate schemas to JSON files in the current project.","items":{"type":"object","default":{"fileMatch":["/myfile"],"url":"schemaURL"},"properties":{"url":{"type":"string","default":"/user.schema.json","markdownDescription":"A URL or absolute file path to a schema. Can be a relative path (starting with `./`) in workspace and workspace folder settings."},"fileMatch":{"type":"array","items":{"type":"string","default":"MyFile.json","markdownDescription":"A file pattern that can contain `*` and `**` to match against when resolving JSON files to schemas. When beginning with `!`, it defines an exclusion pattern."},"minItems":1,"markdownDescription":"An array of file patterns to match against when resolving JSON files to schemas. `*` and `**` can be used as a wildcard. Exclusion patterns can also be defined and start with `!`. A file matches when there is at least one matching pattern and the last matching pattern is not an exclusion pattern."},"schema":{"$ref":"http://json-schema.org/draft-07/schema#","description":"The schema definition for the given URL. The schema only needs to be provided to avoid accesses to the schema URL."}}}},"json.validate.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable JSON validation."},"json.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default JSON formatter"},"json.format.keepLines":{"type":"boolean","scope":"window","default":false,"description":"Keep all existing new lines when formatting."},"json.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the JSON language server."},"json.colorDecorators.enable":{"type":"boolean","scope":"window","default":true,"description":"Enables or disables color decorators","deprecationMessage":"The setting `json.colorDecorators.enable` has been deprecated in favor of `editor.colorDecorators`."},"json.maxItemsComputed":{"type":"number","default":5000,"description":"The maximum number of outline symbols and folding regions computed (limited for performance reasons)."},"json.schemaDownload.enable":{"type":"boolean","default":true,"description":"When enabled, JSON schemas can be fetched from http and https locations.","tags":["usesOnlineServices"]},"json.schemaDownload.trustedDomains":{"type":"object","default":{"https://schemastore.azurewebsites.net/":true,"https://raw.githubusercontent.com/microsoft/vscode/":true,"https://raw.githubusercontent.com/devcontainers/spec/":true,"https://www.schemastore.org/":true,"https://json.schemastore.org/":true,"https://json-schema.org/":true,"https://developer.microsoft.com/json-schemas/":true},"additionalProperties":{"type":"boolean"},"markdownDescription":"List of trusted domains for downloading JSON schemas over http(s). Use `*` to trust all domains. `*` can also be used as a wildcard in domain names.","tags":["usesOnlineServices"]}}},"configurationDefaults":{"[json]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"},"[jsonc]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"},"[snippets]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.schema.json","url":"http://json-schema.org/draft-07/schema#"}],"jsonValidationRegistry":[{"url":"vscode://schemas-associations/schemas-associations.json"}],"commands":[{"command":"json.clearCache","title":"Clear Schema Cache","category":"JSON"},{"command":"json.sort","title":"Sort Document","category":"JSON"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["extensionsAny"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/json-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.julia"},"manifest":{"name":"julia","displayName":"Julia Language Basics","description":"Provides syntax highlighting & bracket matching in Julia files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin JuliaEditorSupport/atom-language-julia variants/julia_vscode.json ./syntaxes/julia.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"julia","aliases":["Julia","julia"],"extensions":[".jl"],"firstLine":"^#!\\s*/.*\\bjulia[0-9.-]*\\b","configuration":"./language-configuration.json"},{"id":"juliamarkdown","aliases":["Julia Markdown","juliamarkdown"],"extensions":[".jmd"]}],"grammars":[{"language":"julia","scopeName":"source.julia","path":"./syntaxes/julia.tmLanguage.json","embeddedLanguages":{"meta.embedded.inline.cpp":"cpp","meta.embedded.inline.javascript":"javascript","meta.embedded.inline.python":"python","meta.embedded.inline.r":"r","meta.embedded.inline.sql":"sql"}}],"configurationDefaults":{"[julia]":{"editor.defaultColorDecorators":"never"}}}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/julia","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.latex"},"manifest":{"name":"latex","displayName":"LaTeX Language Basics","description":"Provides syntax highlighting and bracket matching for TeX, LaTeX and BibTeX.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"tex","aliases":["TeX","tex"],"extensions":[".sty",".cls",".bbx",".cbx"],"configuration":"latex-language-configuration.json"},{"id":"latex","aliases":["LaTeX","latex"],"extensions":[".tex",".ltx",".ctx"],"configuration":"latex-language-configuration.json"},{"id":"bibtex","aliases":["BibTeX","bibtex"],"extensions":[".bib"]},{"id":"cpp_embedded_latex","configuration":"latex-cpp-embedded-language-configuration.json","aliases":[]},{"id":"markdown_latex_combined","configuration":"markdown-latex-combined-language-configuration.json","aliases":[]}],"grammars":[{"language":"tex","scopeName":"text.tex","path":"./syntaxes/TeX.tmLanguage.json","unbalancedBracketScopes":["keyword.control.ifnextchar.tex","punctuation.math.operator.tex"]},{"language":"latex","scopeName":"text.tex.latex","path":"./syntaxes/LaTeX.tmLanguage.json","unbalancedBracketScopes":["keyword.control.ifnextchar.tex","punctuation.math.operator.tex"],"embeddedLanguages":{"source.cpp":"cpp_embedded_latex","source.css":"css","text.html":"html","source.java":"java","source.js":"javascript","source.julia":"julia","source.lua":"lua","source.python":"python","source.ruby":"ruby","source.ts":"typescript","text.xml":"xml","source.yaml":"yaml","meta.embedded.markdown_latex_combined":"markdown_latex_combined"}},{"language":"bibtex","scopeName":"text.bibtex","path":"./syntaxes/Bibtex.tmLanguage.json"},{"language":"markdown_latex_combined","scopeName":"text.tex.markdown_latex_combined","path":"./syntaxes/markdown-latex-combined.tmLanguage.json"},{"language":"cpp_embedded_latex","scopeName":"source.cpp.embedded.latex","path":"./syntaxes/cpp-grammar-bailout.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/latex","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.less"},"manifest":{"name":"less","displayName":"Less Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Less files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"less","aliases":["Less","less"],"extensions":[".less"],"mimetypes":["text/x-less","text/less"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"less","scopeName":"source.css.less","path":"./syntaxes/less.tmLanguage.json"}],"problemMatchers":[{"name":"lessc","label":"Lessc compiler","owner":"lessc","source":"less","fileLocation":"absolute","pattern":{"regexp":"(.*)\\sin\\s(.*)\\son line\\s(\\d+),\\scolumn\\s(\\d+)","message":1,"file":2,"line":3,"column":4}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/less","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.log"},"manifest":{"name":"log","displayName":"Log","description":"Provides syntax highlighting for files with .log extension.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin emilast/vscode-logfile-highlighter syntaxes/log.tmLanguage ./syntaxes/log.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"log","extensions":[".log","*.log.?"],"aliases":["Log"]}],"grammars":[{"language":"log","scopeName":"text.log","path":"./syntaxes/log.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/log","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.lua"},"manifest":{"name":"lua","displayName":"Lua Language Basics","description":"Provides syntax highlighting and bracket matching in Lua files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin sumneko/lua.tmbundle Syntaxes/Lua.plist ./syntaxes/lua.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"lua","extensions":[".lua"],"aliases":["Lua","lua"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"lua","scopeName":"source.lua","path":"./syntaxes/lua.tmLanguage.json","tokenTypes":{"comment.line.double-dash.doc.lua":"other"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/lua","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.make"},"manifest":{"name":"make","displayName":"Make Language Basics","description":"Provides syntax highlighting and bracket matching in Make files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin fadeevab/make.tmbundle Syntaxes/Makefile.plist ./syntaxes/make.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"makefile","aliases":["Makefile","makefile"],"extensions":[".mak",".mk"],"filenames":["Makefile","makefile","GNUmakefile","OCamlMakefile"],"firstLine":"^#!\\s*/usr/bin/make","configuration":"./language-configuration.json"}],"grammars":[{"language":"makefile","scopeName":"source.makefile","path":"./syntaxes/make.tmLanguage.json","tokenTypes":{"string.interpolated":"other"}}],"configurationDefaults":{"[makefile]":{"editor.insertSpaces":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/make","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown"},"manifest":{"name":"markdown","displayName":"Markdown Language Basics","description":"Provides snippets and syntax highlighting for Markdown.","version":"30.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.20.0"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"markdown","aliases":["Markdown","markdown"],"extensions":[".md",".mkd",".mkdn",".mdwn",".mdown",".markdown",".markdn",".mdtxt",".mdtext",".litcoffee",".ron",".ronn",".workbook"],"filenamePatterns":["**/.cursor/**/*.mdc"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"markdown","scopeName":"text.html.markdown","path":"./syntaxes/markdown.tmLanguage.json","embeddedLanguages":{"meta.embedded.block.html":"html","source.js":"javascript","source.css":"css","meta.embedded.block.frontmatter":"yaml","meta.embedded.block.css":"css","meta.embedded.block.ini":"ini","meta.embedded.block.java":"java","meta.embedded.block.lua":"lua","meta.embedded.block.makefile":"makefile","meta.embedded.block.perl":"perl","meta.embedded.block.r":"r","meta.embedded.block.ruby":"ruby","meta.embedded.block.php":"php","meta.embedded.block.sql":"sql","meta.embedded.block.vs_net":"vs_net","meta.embedded.block.xml":"xml","meta.embedded.block.xsl":"xsl","meta.embedded.block.yaml":"yaml","meta.embedded.block.dosbatch":"dosbatch","meta.embedded.block.clojure":"clojure","meta.embedded.block.coffee":"coffee","meta.embedded.block.c":"c","meta.embedded.block.cpp":"cpp","meta.embedded.block.diff":"diff","meta.embedded.block.dockerfile":"dockerfile","meta.embedded.block.go":"go","meta.embedded.block.groovy":"groovy","meta.embedded.block.pug":"jade","meta.embedded.block.ignore":"ignore","meta.embedded.block.javascript":"javascript","meta.embedded.block.json":"json","meta.embedded.block.jsonc":"jsonc","meta.embedded.block.jsonl":"jsonl","meta.embedded.block.latex":"latex","meta.embedded.block.less":"less","meta.embedded.block.objc":"objc","meta.embedded.block.scss":"scss","meta.embedded.block.perl6":"perl6","meta.embedded.block.powershell":"powershell","meta.embedded.block.python":"python","meta.embedded.block.restructuredtext":"restructuredtext","meta.embedded.block.rust":"rust","meta.embedded.block.scala":"scala","meta.embedded.block.shellscript":"shellscript","meta.embedded.block.typescript":"typescript","meta.embedded.block.typescriptreact":"typescriptreact","meta.embedded.block.csharp":"csharp","meta.embedded.block.fsharp":"fsharp"},"unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown","keyword.operator.relational.cs","keyword.operator.arrow.cs","punctuation.accessor.pointer.cs","keyword.operator.bitwise.shift.cs","keyword.operator.assignment.compound.bitwise.cs","keyword.operator.relational.ts","storage.type.function.arrow.ts","keyword.operator.bitwise.shift.ts","keyword.operator.assignment.compound.bitwise.ts","keyword.operator.relational.tsx","storage.type.function.arrow.tsx","keyword.operator.bitwise.shift.tsx","keyword.operator.assignment.compound.bitwise.tsx"]}],"snippets":[{"language":"markdown","path":"./snippets/markdown.code-snippets"}],"configurationDefaults":{"[markdown]":{"editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false}}},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin microsoft/vscode-markdown-tm-grammar syntaxes/markdown.tmLanguage ./syntaxes/markdown.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/markdown-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown-language-features"},"manifest":{"name":"markdown-language-features","displayName":"Markdown Language Features","description":"Provides rich language support for Markdown.","version":"10.0.0","icon":"icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["agentEditorComments","customEditorDiffs","documentDiff","documentSyntaxHighlighting","externalUriOpener","linkPresentation","textEditorDiffInformation"],"engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension","categories":["Programming Languages"],"activationEvents":["onLanguage:markdown","onLanguage:prompt","onLanguage:instructions","onLanguage:chatagent","onLanguage:skill","onCommand:markdown.api.render","onCommand:markdown.api.reloadPlugins","onWebviewPanel:markdown.preview"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","description":"Required for loading styles configured in the workspace.","restrictedConfigurations":["markdown.styles"]}},"contributes":{"linkPresentationProviders":[{"id":"markdown.gitCommitLinkPresentations","kind":"commit","uriPattern":"^(?:commit:[^?#]+|https?://[^\\s?#]+/(?:commit|-/commit)/[^/?#]+)(?:[?#].*)?$"},{"id":"markdown.workspaceFileLinkPresentations","kind":"file","uriPattern":"^(?:(?:file|vscode-remote|vscode-vfs):[^?#]*|(?!(?:[a-z][a-z0-9+.-]*:|#))[^?#]+)(?:[?#].*)?$"}],"notebookRenderer":[{"id":"vscode.markdown-it-renderer","displayName":"Markdown it renderer","entrypoint":"./notebook-out/index.js","mimeTypes":["text/markdown","text/latex","text/x-css","text/x-html","text/x-json","text/x-typescript","text/x-abap","text/x-apex","text/x-azcli","text/x-bat","text/x-cameligo","text/x-clojure","text/x-coffee","text/x-cpp","text/x-csharp","text/x-csp","text/x-css","text/x-dart","text/x-dockerfile","text/x-ecl","text/x-fsharp","text/x-go","text/x-graphql","text/x-handlebars","text/x-hcl","text/x-html","text/x-ini","text/x-java","text/x-javascript","text/x-julia","text/x-kotlin","text/x-less","text/x-lexon","text/x-lua","text/x-m3","text/x-markdown","text/x-mips","text/x-msdax","text/x-mysql","text/x-objective-c/objective","text/x-pascal","text/x-pascaligo","text/x-perl","text/x-pgsql","text/x-php","text/x-postiats","text/x-powerquery","text/x-powershell","text/x-pug","text/x-python","text/x-r","text/x-razor","text/x-redis","text/x-redshift","text/x-restructuredtext","text/x-ruby","text/x-rust","text/x-sb","text/x-scala","text/x-scheme","text/x-scss","text/x-shell","text/x-solidity","text/x-sophia","text/x-sql","text/x-st","text/x-swift","text/x-systemverilog","text/x-tcl","text/x-twig","text/x-typescript","text/x-vb","text/x-xml","text/x-yaml","application/json"]}],"commands":[{"command":"_markdown.copyImage","title":"Copy Image","category":"Markdown"},{"command":"_markdown.openImage","title":"Open Image","category":"Markdown"},{"command":"_markdown.openFrontMatterSettings","title":"Configure Frontmatter Visibility","category":"Markdown"},{"command":"markdown.showPreview","title":"Open Preview","category":"Markdown","icon":{"light":"./media/preview-light.svg","dark":"./media/preview-dark.svg"}},{"command":"markdown.showPreviewToSide","title":"Open Preview to the Side","category":"Markdown","icon":"$(open-preview)"},{"command":"markdown.showLockedPreviewToSide","title":"Open Locked Preview to the Side","category":"Markdown","icon":"$(open-preview)"},{"command":"markdown.showSource","title":"Open Source File","category":"Markdown","icon":"$(file-code)"},{"command":"markdown.showPreviewSecuritySelector","title":"Change Preview Security Settings","category":"Markdown"},{"command":"markdown.preview.refresh","title":"Refresh Preview","category":"Markdown"},{"command":"markdown.preview.toggleLock","title":"Toggle Preview Locking","category":"Markdown"},{"command":"markdown.findAllFileReferences","title":"Find File References","category":"Markdown"},{"command":"markdown.reopenAsPreview","title":"Open as Preview","category":"Markdown","icon":"$(preview)"},{"command":"markdown.reopenAsSource","title":"Reopen as source file","category":"Markdown","icon":"$(file-code)"},{"command":"markdown.togglePreview","title":"Toggle Preview","category":"Markdown"},{"command":"markdown.editor.insertLinkFromWorkspace","title":"Insert Link to File in Workspace","category":"Markdown","enablement":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !activeEditorIsReadonly"},{"command":"markdown.editor.insertImageFromWorkspace","title":"Insert Image from Workspace","category":"Markdown","enablement":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !activeEditorIsReadonly"},{"command":"markdown.editor.cursorLeft","title":"Move Cursor Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorRight","title":"Move Cursor Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorUp","title":"Move Cursor Up","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDown","title":"Move Cursor Down","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLeftSelect","title":"Select Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorRightSelect","title":"Select Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorUpSelect","title":"Select Up","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDownSelect","title":"Select Down","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordLeft","title":"Move Cursor Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordRight","title":"Move Cursor Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","title":"Select Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","title":"Select Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","title":"Move Cursor to Visual Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","title":"Move Cursor to Visual Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","title":"Select to Visual Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","title":"Select to Visual Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","title":"Move Cursor to Logical Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","title":"Move Cursor to Logical Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","title":"Select to Logical Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","title":"Select to Logical Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentStart","title":"Move Cursor to Document Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","title":"Move Cursor to Document End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","title":"Select to Document Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","title":"Select to Document End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.selectAll","title":"Select All","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLeft","title":"Delete Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteRight","title":"Delete Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteWordLeft","title":"Delete Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteWordRight","title":"Delete Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLineLeft","title":"Delete All Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLineRight","title":"Delete All Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.undo","title":"Undo","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.redo","title":"Redo","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertTab","title":"Insert Tab","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.outdent","title":"Outdent","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.toggleTabFocus","title":"Toggle Tab Key Moves Focus","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.smartEnter","title":"Insert Paragraph","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertHardLineBreak","title":"Insert Hard Line Break","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertParagraph","title":"Insert Paragraph Without Continuing Markup","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true}],"menus":{"webview/context":[{"command":"_markdown.copyImage","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && (webviewSection == 'image' || webviewSection == 'localImage')"},{"command":"_markdown.openImage","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && webviewSection == 'localImage'"},{"command":"_markdown.openFrontMatterSettings","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && webviewSection == 'frontMatter'"}],"editor/title":[{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview","alt":"markdown.showPreview","group":"navigation@1"},{"command":"markdown.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview && !isSessionsWindow","group":"navigation@2"},{"command":"markdown.showSource","when":"activeWebviewPanelId == 'markdown.preview'","group":"navigation@2"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor' && !activeCustomEditorTextDiff && !isSessionsWindow","group":"navigation@2"},{"command":"markdown.preview.refresh","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"},{"command":"markdown.preview.toggleLock","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"},{"command":"markdown.showPreviewSecuritySelector","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"}],"modalEditor/editorTitle":[{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview","alt":"markdown.showPreview","group":"navigation"},{"command":"markdown.reopenAsPreview","when":"(activeEditor == workbench.editors.files.textFileEditor || activeEditor == workbench.editors.textDiffEditor) && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview && !isSessionsWindow","group":"navigation"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor' && !activeCustomEditorTextDiff && !isSessionsWindow","group":"navigation"}],"explorer/context":[{"command":"markdown.showPreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !hasCustomMarkdownPreview","group":"navigation"},{"command":"markdown.findAllFileReferences","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/","group":"4_search"}],"editor/title/context":[{"command":"markdown.showPreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !hasCustomMarkdownPreview","group":"1_open"},{"command":"markdown.findAllFileReferences","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"}],"commandPalette":[{"command":"_markdown.openImage","when":"false"},{"command":"_markdown.copyImage","when":"false"},{"command":"markdown.showPreview","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showLockedPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showSource","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"navigation"},{"command":"markdown.showPreviewSecuritySelector","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.showPreviewSecuritySelector","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.preview.toggleLock","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.preview.refresh","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.preview.refresh","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.findAllFileReferences","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"},{"command":"markdown.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/","group":"navigation"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"navigation"},{"command":"markdown.togglePreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"},{"command":"markdown.editor.cursorLeft","when":"false","$generated":true},{"command":"markdown.editor.cursorRight","when":"false","$generated":true},{"command":"markdown.editor.cursorUp","when":"false","$generated":true},{"command":"markdown.editor.cursorDown","when":"false","$generated":true},{"command":"markdown.editor.cursorLeftSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorRightSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorUpSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDownSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorWordLeft","when":"false","$generated":true},{"command":"markdown.editor.cursorWordRight","when":"false","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentStart","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","when":"false","$generated":true},{"command":"markdown.editor.selectAll","when":"false","$generated":true},{"command":"markdown.editor.deleteLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteRight","when":"false","$generated":true},{"command":"markdown.editor.deleteWordLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteWordRight","when":"false","$generated":true},{"command":"markdown.editor.deleteLineLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteLineRight","when":"false","$generated":true},{"command":"markdown.editor.undo","when":"false","$generated":true},{"command":"markdown.editor.redo","when":"false","$generated":true},{"command":"markdown.editor.insertTab","when":"false","$generated":true},{"command":"markdown.editor.outdent","when":"false","$generated":true},{"command":"markdown.editor.toggleTabFocus","when":"false","$generated":true},{"command":"markdown.editor.smartEnter","when":"false","$generated":true},{"command":"markdown.editor.insertHardLineBreak","when":"false","$generated":true},{"command":"markdown.editor.insertParagraph","when":"false","$generated":true}]},"keybindings":[{"command":"markdown.showPreviewToSide","key":"ctrl+k v","mac":"cmd+k v","when":"editorFocus && editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.togglePreview","key":"shift+ctrl+v","mac":"shift+cmd+v","when":"!terminalFocus && ((editorFocus && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused) || activeCustomEditorId == 'vscode.markdown.preview.editor')"},{"command":"markdown.editor.cursorLeft","key":"ctrl+b","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLeft","key":"left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorRight","key":"ctrl+f","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorRight","key":"right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorUp","key":"ctrl+p","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorUp","key":"up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorDown","key":"ctrl+n","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDown","key":"down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorLeftSelect","key":"shift+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorRightSelect","key":"shift+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorUpSelect","key":"shift+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorDownSelect","key":"shift+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorWordLeft","key":"alt+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordLeft","key":"ctrl+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordRight","key":"alt+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordRight","key":"ctrl+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","key":"shift+alt+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","key":"ctrl+shift+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","key":"shift+alt+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","key":"ctrl+shift+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","key":"cmd+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","key":"home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","key":"cmd+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","key":"end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","key":"shift+cmd+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","key":"shift+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","key":"shift+cmd+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","key":"shift+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","key":"ctrl+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","key":"ctrl+e","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","key":"ctrl+shift+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","key":"ctrl+shift+e","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStart","key":"cmd+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStart","key":"ctrl+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","key":"cmd+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","key":"ctrl+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","key":"shift+cmd+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","key":"ctrl+shift+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","key":"shift+cmd+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","key":"ctrl+shift+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.selectAll","key":"cmd+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.selectAll","key":"ctrl+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"ctrl+h","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"ctrl+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteLeft","key":"shift+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteRight","key":"ctrl+d","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteRight","key":"ctrl+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteRight","key":"delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteWordLeft","key":"alt+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteWordLeft","key":"ctrl+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteWordRight","key":"alt+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteWordRight","key":"ctrl+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteLineLeft","key":"cmd+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLineRight","key":"cmd+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLineRight","key":"ctrl+k","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.undo","key":"cmd+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.undo","key":"ctrl+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.redo","key":"shift+cmd+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.redo","key":"ctrl+shift+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.redo","key":"ctrl+y","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.smartEnter","key":"enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.insertHardLineBreak","key":"shift+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.insertParagraph","key":"cmd+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.insertParagraph","key":"ctrl+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true}],"configuration":[{"title":"Language Features","order":20,"properties":{"markdown.experimental.richLinks.enabled":{"type":"boolean","default":true,"description":"Controls whether supported links in the Markdown editor are rendered as rich links with live metadata. Enabling this may make authenticated requests to services such as GitHub.","scope":"window","tags":["experimental","onExP"]},"markdown.links.openLocation":{"type":"string","default":"currentGroup","description":"Controls where links in Markdown files should be opened.","scope":"resource","enum":["currentGroup","beside"],"enumDescriptions":["Open links in the active editor group.","Open links beside the active editor."]},"markdown.suggest.paths.enabled":{"type":"boolean","default":true,"description":"Controls whether path suggestions are shown while writing links in Markdown files.","scope":"resource"},"markdown.suggest.paths.includeWorkspaceHeaderCompletions":{"type":"string","default":"onDoubleHash","scope":"resource","markdownDescription":"Enable suggestions for headers in other Markdown files in the current workspace. Accepting one of these suggestions inserts the full path to header in that file, for example: `[link text](/path/to/file.md#header)`.","enum":["never","onDoubleHash","onSingleOrDoubleHash"],"markdownEnumDescriptions":["Disable workspace header suggestions.","Enable workspace header suggestions after typing `##` in a path, for example: `[link text](##`.","Enable workspace header suggestions after typing either `##` or `#` in a path, for example: `[link text](#` or `[link text](##`."]},"markdown.editor.drop.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether dropping files into a Markdown editor while holding Shift inserts Markdown links. Requires enabling `#editor.dropIntoEditor.enabled#`.","default":"smart","enum":["always","smart","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not dropping into a code block or other special element. Use the drop widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.drop.copyIntoWorkspace":{"type":"string","markdownDescription":"Controls if files outside of the workspace that are dropped into a Markdown editor should be copied into the workspace.\n\nUse `#markdown.copyFiles.destination#` to configure where copied dropped files should be created","default":"mediaFiles","enum":["mediaFiles","never"],"markdownEnumDescriptions":["Try to copy external image and video files into the workspace.","Do not copy external files into the workspace."]},"markdown.editor.filePaste.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether pasting files into a Markdown editor creates Markdown links. Requires enabling `#editor.pasteAs.enabled#`.","default":"smart","enum":["always","smart","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.filePaste.copyIntoWorkspace":{"type":"string","markdownDescription":"Controls if files outside of the workspace that are pasted into a Markdown editor should be copied into the workspace.\n\nUse `#markdown.copyFiles.destination#` to configure where copied files should be created.","default":"mediaFiles","enum":["mediaFiles","never"],"markdownEnumDescriptions":["Try to copy external image and video files into the workspace.","Do not copy external files into the workspace."]},"markdown.editor.filePaste.videoSnippet":{"type":"string","markdownDescription":"Snippet used when adding videos to Markdown. This snippet can use the following variables:\n- `${src}` — The resolved path of the video file.\n- `${title}` — The title used for the video. A snippet placeholder will automatically be created for this variable.","default":""},"markdown.editor.filePaste.audioSnippet":{"type":"string","markdownDescription":"Snippet used when adding audio to Markdown. This snippet can use the following variables:\n- `${src}` — The resolved path of the audio file.\n- `${title}` — The title used for the audio. A snippet placeholder will automatically be created for this variable.","default":""},"markdown.editor.pasteUrlAsFormattedLink.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls if Markdown links are created when URLs are pasted into a Markdown editor. Requires enabling `#editor.pasteAs.enabled#`.","default":"smartWithSelection","enum":["always","smart","smartWithSelection","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Smartly create Markdown links by default when you have selected text and are not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.updateLinksOnPaste.enabled":{"type":"boolean","markdownDescription":"Enable/disable a paste option that updates links and reference in text that is copied and pasted between Markdown editors.\n\nTo use this feature, after pasting text that contains updatable links, just click on the Paste Widget and select `Paste and update pasted links`.","scope":"resource","default":true},"markdown.updateLinksOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each file move.","Always update links automatically.","Never try to update link and don't prompt."],"default":"never","markdownDescription":"Try to update links in Markdown files when a file is renamed/moved in the workspace. Use `#markdown.updateLinksOnFileMove.include#` to configure which files trigger link updates.","scope":"window"},"markdown.updateLinksOnFileMove.include":{"type":"array","markdownDescription":"Glob patterns that specifies files that trigger automatic link updates. See `#markdown.updateLinksOnFileMove.enabled#` for details about this feature.","scope":"window","items":{"type":"string","description":"The glob pattern to match file paths against. Set to true to enable the pattern."},"default":["**/*.{md,mkd,mdwn,mdown,markdown,markdn,mdtxt,mdtext,workbook}","**/*.{jpg,jpe,jpeg,png,bmp,gif,ico,webp,avif,tiff,svg,mp4}"]},"markdown.updateLinksOnFileMove.enableForDirectories":{"type":"boolean","default":true,"description":"Enable updating links when a directory is moved or renamed in the workspace.","scope":"window"},"markdown.occurrencesHighlight.enabled":{"type":"boolean","default":false,"description":"Controls whether link occurrences in the current document are highlighted.","scope":"resource"},"markdown.copyFiles.destination":{"type":"object","markdownDescription":"Configures the path and file name of files created by copy/paste or drag and drop. This is a map of globs that match against a Markdown document path to the destination path where the new file should be created.\n\nThe destination path may use the following variables:\n\n- `${documentDirName}` — Absolute parent directory path of the Markdown document, e.g. `/Users/me/myProject/docs`.\n- `${documentRelativeDirName}` — Relative parent directory path of the Markdown document, e.g. `docs`. This is the same as `${documentDirName}` if the file is not part of a workspace.\n- `${documentFileName}` — The full filename of the Markdown document, e.g. `README.md`.\n- `${documentBaseName}` — The basename of the Markdown document, e.g. `README`.\n- `${documentExtName}` — The extension of the Markdown document, e.g. `md`.\n- `${documentFilePath}` — Absolute path of the Markdown document, e.g. `/Users/me/myProject/docs/README.md`.\n- `${documentRelativeFilePath}` — Relative path of the Markdown document, e.g. `docs/README.md`. This is the same as `${documentFilePath}` if the file is not part of a workspace.\n- `${documentWorkspaceFolder}` — The workspace folder for the Markdown document, e.g. `/Users/me/myProject`. This is the same as `${documentDirName}` if the file is not part of a workspace.\n- `${fileName}` — The file name of the dropped file, e.g. `image.png`.\n- `${fileExtName}` — The extension of the dropped file, e.g. `png`.\n- `${unixTime}` — The current Unix timestamp in milliseconds.\n- `${isoTime}` — The current time in ISO 8601 format, e.g. '2025-06-06T08:40:32.123Z'.","additionalProperties":{"type":"string"}},"markdown.copyFiles.overwriteBehavior":{"type":"string","markdownDescription":"Controls if files created by drop or paste should overwrite existing files.","default":"nameIncrementally","enum":["nameIncrementally","overwrite"],"markdownEnumDescriptions":["If a file with the same name already exists, append a number to the file name, for example: `image.png` becomes `image-1.png`.","If a file with the same name already exists, overwrite it."]},"markdown.preferredMdPathExtensionStyle":{"type":"string","default":"auto","markdownDescription":"Controls if file extensions (for example `.md`) are added or not for links to Markdown files. This setting is used when file paths are added by tooling such as path completions or file renames.","enum":["auto","includeExtension","removeExtension"],"markdownEnumDescriptions":["For existing paths, try to maintain the file extension style. For new paths, add file extensions.","Prefer including the file extension. For example, path completions to a file named `file.md` will insert `file.md`.","Prefer removing the file extension. For example, path completions to a file named `file.md` will insert `file` without the `.md`."]}}},{"title":"Validation","order":22,"properties":{"markdown.validate.enabled":{"order":0,"type":"boolean","scope":"resource","description":"Controls whether error reporting is enabled in Markdown files.","default":false},"markdown.validate.referenceLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether reference links in Markdown files are validated, for example: `[link][ref]`. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fragmentLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether fragment links to headers in the current Markdown file are validated, for example: `[link](#header)`. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fileLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether links to other files in Markdown files are validated, for example `[link](/path/to/file.md)`. This checks that the target files exist. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fileLinks.markdownFragmentLinks":{"type":"string","scope":"resource","markdownDescription":"Validate the fragment part of links to headers in other files in Markdown files, for example: `[link](/path/to/file.md#header)`. Inherits the setting value from `#markdown.validate.fragmentLinks.enabled#` by default.","default":"inherit","enum":["inherit","ignore","warning","error"]},"markdown.validate.ignoredLinks":{"type":"array","scope":"resource","markdownDescription":"Configure links that should not be validated. For example adding `/about` would not validate the link `[about](/about)`, while the glob `/assets/**/*.svg` would let you skip validation for any link to `.svg` files under the `assets` directory.","items":{"type":"string"}},"markdown.validate.unusedLinkDefinitions.enabled":{"type":"string","scope":"resource","markdownDescription":"Validate link definitions that are unused in the current file.","default":"hint","enum":["ignore","hint","warning","error"]},"markdown.validate.duplicateLinkDefinitions.enabled":{"type":"string","scope":"resource","markdownDescription":"Validate duplicated definitions in the current file.","default":"warning","enum":["ignore","warning","error"]}}},{"title":"Preview","order":23,"properties":{"markdown.styles":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"A list of URLs or local paths to CSS style sheets to use from the Markdown preview. Relative paths are interpreted relative to the folder open in the Explorer. If there is no open folder, they are interpreted relative to the location of the Markdown file. All `\\` need to be written as `\\\\`.","scope":"resource"},"markdown.preview.breaks":{"type":"boolean","default":false,"markdownDescription":"Sets how line-breaks are rendered in the Markdown preview. Setting it to `true` creates a `
` for newlines inside paragraphs.","scope":"resource"},"markdown.preview.linkify":{"type":"boolean","default":true,"description":"Convert URL-like text to links in the Markdown preview.","scope":"resource"},"markdown.preview.typographer":{"type":"boolean","default":false,"description":"Enable some language-neutral replacement and quotes beautification in the Markdown preview.","scope":"resource"},"markdown.preview.fontFamily":{"type":"string","default":"-apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif","description":"Controls the font family used in the Markdown preview.","scope":"resource"},"markdown.preview.fontSize":{"type":"number","default":14,"description":"Controls the font size in pixels used in the Markdown preview.","scope":"resource"},"markdown.preview.lineHeight":{"type":"number","default":1.6,"description":"Controls the line height used in the Markdown preview. This number is relative to the font size.","scope":"resource"},"markdown.preview.scrollPreviewWithEditor":{"type":"boolean","default":true,"description":"When a Markdown editor is scrolled, update the view of the preview.","scope":"resource"},"markdown.preview.markEditorSelection":{"type":"boolean","default":false,"description":"Mark the current editor selection in the Markdown preview.","scope":"resource"},"markdown.preview.scrollEditorWithPreview":{"type":"boolean","default":true,"description":"When a Markdown preview is scrolled, update the view of the editor.","scope":"resource"},"markdown.preview.doubleClickToSwitchToEditor":{"type":"boolean","default":false,"description":"Double-click in the Markdown preview to switch to the editor.","scope":"resource"},"markdown.preview.openMarkdownLinks":{"type":"string","default":"inPreview","description":"Controls how links to other Markdown files in the Markdown preview should be opened.","scope":"resource","enum":["inPreview","inEditor"],"enumDescriptions":["Try to open links in the Markdown preview.","Try to open links in the editor."]},"markdown.preview.frontMatter":{"type":"string","default":"table","scope":"resource","markdownDescription":"Controls how YAML frontmatter (delimited by `---`) at the start of a Markdown file is rendered in the preview.","enum":["hide","codeBlock","table"],"enumDescriptions":["Do not render frontmatter.","Render frontmatter as a code block.","Render frontmatter as a table of keys and values."]}}},{"title":"Advanced","order":24,"properties":{"markdown.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the Markdown language server."},"markdown.server.log":{"type":"string","scope":"window","enum":["off","debug","trace"],"default":"off","description":"Controls the logging level of the Markdown language server."}}}],"configurationDefaults":{"[markdown]":{"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"off","other":"off"}}},"jsonValidation":[{"fileMatch":"package.json","url":"./schemas/package.schema.json"}],"markdown.previewStyles":["./media/markdown.css","./media/highlight.css"],"markdown.previewScripts":[{"path":"./media/index.js","type":"module"}],"customEditors":[{"viewType":"vscode.markdown.preview.editor","displayName":"Markdown Preview","priority":{"diffEditor":"option","textEditor":"option"},"selector":[{"filenamePattern":"*.md"}]},{"viewType":"vscode.markdown.editor","displayName":"Markdown Editor","priority":{"diffEditor":"explicit","textEditor":"option"},"selector":[{"filenamePattern":"*.md"}]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["agentEditorComments","customEditorDiffs","documentDiff","documentSyntaxHighlighting","externalUriOpener","linkPresentation","textEditorDiffInformation"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/markdown-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown-math"},"manifest":{"name":"markdown-math","displayName":"Markdown Math","description":"Adds math support to Markdown in notebooks.","version":"10.0.0","icon":"icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.54.0"},"categories":["Other","Programming Languages"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"main":"./dist/extension","browser":"./dist/browser/extension","activationEvents":[],"contributes":{"languages":[{"id":"markdown-math","aliases":[]}],"grammars":[{"language":"markdown-math","scopeName":"text.html.markdown.math","path":"./syntaxes/md-math.tmLanguage.json"},{"scopeName":"markdown.math.block","path":"./syntaxes/md-math-block.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex"}},{"scopeName":"markdown.math.inline","path":"./syntaxes/md-math-inline.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex","punctuation.definition.math.end.markdown":"latex"}},{"scopeName":"markdown.math.codeblock","path":"./syntaxes/md-math-fence.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex"}}],"notebookRenderer":[{"id":"vscode.markdown-it-katex-extension","displayName":"Markdown it KaTeX renderer","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/katex.js"}}],"markdown.markdownItPlugins":true,"markdown.previewStyles":["./notebook-out/katex.min.css","./preview-styles/index.css"],"configuration":[{"title":"Markdown Math","properties":{"markdown.math.enabled":{"type":"boolean","default":true,"description":"Enable/disable rendering math in the built-in Markdown preview."},"markdown.math.macros":{"type":"object","additionalProperties":{"type":"string"},"default":{},"description":"A collection of custom macros. Each macro is a key-value pair where the key is a new command name and the value is the expansion of the macro.","scope":"resource"}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/markdown-math","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.media-preview"},"manifest":{"name":"media-preview","displayName":"Media Preview","description":"Provides VS Code's built-in previews for images, audio, and video","extensionKind":["ui","workspace"],"version":"10.0.0","publisher":"vscode","icon":"icon.png","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension.js","categories":["Other"],"activationEvents":[],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"type":"object","title":"Media Previewer","properties":{"mediaPreview.video.autoPlay":{"type":"boolean","default":false,"markdownDescription":"Start playing videos on mute automatically."},"mediaPreview.video.loop":{"type":"boolean","default":false,"markdownDescription":"Loop videos over again automatically."}}},"customEditors":[{"viewType":"imagePreview.previewEditor","displayName":"Image Preview","priority":"builtin","selector":[{"filenamePattern":"*.{jpg,jpe,jpeg,png,bmp,gif,ico,webp,avif,svg}"}]},{"viewType":"vscode.audioPreview","displayName":"Audio Preview","priority":"builtin","selector":[{"filenamePattern":"*.{mp3,wav,ogg,oga}"}]},{"viewType":"vscode.videoPreview","displayName":"Video Preview","priority":"builtin","selector":[{"filenamePattern":"*.{mp4,webm}"}]}],"commands":[{"command":"imagePreview.zoomIn","title":"Zoom in","category":"Image Preview"},{"command":"imagePreview.zoomOut","title":"Zoom out","category":"Image Preview"},{"command":"imagePreview.copyImage","title":"Copy","category":"Image Preview"},{"command":"imagePreview.reopenAsPreview","title":"Reopen as image preview","category":"Image Preview","icon":"$(preview)"},{"command":"imagePreview.reopenAsText","title":"Reopen as source text","category":"Image Preview","icon":"$(go-to-file)"}],"menus":{"commandPalette":[{"command":"imagePreview.zoomIn","when":"activeCustomEditorId == 'imagePreview.previewEditor'","group":"1_imagePreview"},{"command":"imagePreview.zoomOut","when":"activeCustomEditorId == 'imagePreview.previewEditor'","group":"1_imagePreview"},{"command":"imagePreview.copyImage","when":"false"},{"command":"imagePreview.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceExtname == '.svg' && !hasCustomImagePreview","group":"navigation"},{"command":"imagePreview.reopenAsText","when":"activeCustomEditorId == 'imagePreview.previewEditor' && resourceExtname == '.svg'","group":"navigation"}],"webview/context":[{"command":"imagePreview.copyImage","when":"webviewId == 'imagePreview.previewEditor'"}],"editor/title":[{"command":"imagePreview.reopenAsPreview","when":"editorFocus && resourceExtname == '.svg' && !hasCustomImagePreview","group":"navigation"},{"command":"imagePreview.reopenAsText","when":"activeCustomEditorId == 'imagePreview.previewEditor' && resourceExtname == '.svg'","group":"navigation"}]}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/media-preview","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.merge-conflict"},"manifest":{"name":"merge-conflict","publisher":"vscode","displayName":"Merge Conflict","description":"Highlighting and commands for inline merge conflicts.","icon":"media/icon.png","version":"10.0.0","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.5.0"},"categories":["Other"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onStartupFinished"],"main":"./dist/mergeConflictMain","browser":"./dist/browser/mergeConflictMain","contributes":{"commands":[{"category":"Merge Conflict","title":"Accept All Current","original":"Accept All Current","command":"merge-conflict.accept.all-current","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept All Incoming","original":"Accept All Incoming","command":"merge-conflict.accept.all-incoming","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept All Both","original":"Accept All Both","command":"merge-conflict.accept.all-both","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Current","original":"Accept Current","command":"merge-conflict.accept.current","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Incoming","original":"Accept Incoming","command":"merge-conflict.accept.incoming","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Selection","original":"Accept Selection","command":"merge-conflict.accept.selection","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Both","original":"Accept Both","command":"merge-conflict.accept.both","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Next Conflict","original":"Next Conflict","command":"merge-conflict.next","enablement":"!isMergeEditor","icon":"$(arrow-down)"},{"category":"Merge Conflict","title":"Previous Conflict","original":"Previous Conflict","command":"merge-conflict.previous","enablement":"!isMergeEditor","icon":"$(arrow-up)"},{"category":"Merge Conflict","title":"Compare Current Conflict","original":"Compare Current Conflict","command":"merge-conflict.compare","enablement":"!isMergeEditor"}],"menus":{"scm/resourceState/context":[{"command":"merge-conflict.accept.all-current","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"merge-conflict.accept.all-incoming","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"}],"editor/title":[{"command":"merge-conflict.previous","group":"navigation@1","when":"!isMergeEditor && mergeConflictsCount && mergeConflictsCount != 0"},{"command":"merge-conflict.next","group":"navigation@2","when":"!isMergeEditor && mergeConflictsCount && mergeConflictsCount != 0"}]},"configuration":{"title":"Merge Conflict","properties":{"merge-conflict.codeLens.enabled":{"type":"boolean","description":"Create a CodeLens for merge conflict blocks within editor.","default":true},"merge-conflict.decorators.enabled":{"type":"boolean","description":"Create decorators for merge conflict blocks within editor.","default":true},"merge-conflict.autoNavigateNextConflict.enabled":{"type":"boolean","description":"Whether to automatically navigate to the next merge conflict after resolving a merge conflict.","default":false},"merge-conflict.diffViewPosition":{"type":"string","enum":["Current","Beside","Below"],"description":"Controls where the diff view should be opened when comparing changes in merge conflicts.","enumDescriptions":["Open the diff view in the current editor group.","Open the diff view next to the current editor group.","Open the diff view below the current editor group."],"default":"Current"}}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/merge-conflict","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.mermaid-markdown-features"},"manifest":{"name":"mermaid-markdown-features","displayName":"Mermaid Markdown Features","description":"Adds Mermaid diagram support to built-in chats, Markdown previews, and notebooks.","version":"10.0.0","publisher":"vscode","license":"MIT","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.104.0"},"enabledApiProposals":["chatOutputRenderer","chatParticipantPrivate"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"main":"./dist/extension","browser":"./dist/browser/extension","activationEvents":["onWebviewPanel:vscode.mermaid-markdown-features.preview"],"contributes":{"commands":[{"command":"_mermaid-markdown.resetPanZoom","title":"Reset Pan and Zoom"},{"command":"_mermaid-markdown.openInEditor","title":"Open Diagram in Editor"},{"command":"_mermaid-markdown.copySource","title":"Copy Diagram Source"}],"menus":{"commandPalette":[{"command":"_mermaid-markdown.resetPanZoom","when":"false"},{"command":"_mermaid-markdown.openInEditor","when":"false"},{"command":"_mermaid-markdown.copySource","when":"false"}],"webview/context":[{"command":"_mermaid-markdown.openInEditor","when":"webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || (webviewSection == 'mermaid' && (webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor' || webviewId == 'notebook.output'))","group":"navigation@1"},{"command":"_mermaid-markdown.copySource","when":"webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || webviewId == 'vscode.mermaid-markdown-features.preview' || (webviewSection == 'mermaid' && (webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor' || webviewId == 'notebook.output'))","group":"navigation@2"},{"command":"_mermaid-markdown.resetPanZoom","when":"!mermaidError && (webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || webviewId == 'vscode.mermaid-markdown-features.preview')","group":"navigation@3"}]},"configuration":{"title":"Mermaid","properties":{"markdown-mermaid.lightModeTheme":{"order":0,"type":"string","enum":["vscode","base","forest","dark","default","neutral"],"enumDescriptions":["Mermaid theme derived from the current VS Code color theme.","Built-in Mermaid theme. The only Mermaid theme that can be customized with theme variables.","Built-in Mermaid theme using shades of green.","Built-in Mermaid theme for dark backgrounds.","The default built-in Mermaid theme. Works well with light backgrounds.","Built-in Mermaid theme using a neutral grayscale palette. Suitable for black and white prints."],"default":"vscode","description":"Default Mermaid theme for light mode."},"markdown-mermaid.darkModeTheme":{"order":1,"type":"string","enum":["vscode","base","forest","dark","default","neutral"],"enumDescriptions":["Mermaid theme derived from the current VS Code color theme.","Built-in Mermaid theme. The only Mermaid theme that can be customized with theme variables.","Built-in Mermaid theme using shades of green.","Built-in Mermaid theme for dark backgrounds.","The default built-in Mermaid theme. Works well with light backgrounds.","Built-in Mermaid theme using a neutral grayscale palette. Suitable for black and white prints."],"default":"vscode","description":"Default Mermaid theme for dark mode."},"markdown-mermaid.languages":{"order":2,"type":"array","default":["mermaid"],"description":"Default languages in Markdown."},"markdown-mermaid.maxTextSize":{"order":3,"type":"number","default":50000,"description":"The maximum allowed size of the user's text diagram."},"markdown-mermaid.mouseNavigation.enabled":{"type":"string","description":"Controls when mouse-based navigation is enabled on Mermaid diagrams.","enum":["always","alt","never"],"default":"alt","markdownEnumDescriptions":["Always enable mouse navigation on Mermaid diagrams.","Only enable mouse navigation when holding down Alt (Option on macOS). Gestures such as pinch-to-zoom will still work without Alt.","Disable mouse navigation."]},"markdown-mermaid.controls.show":{"type":"string","description":"Controls showing UI controls on Mermaid diagrams.","enum":["never","onHoverOrFocus","always"],"enumDescriptions":["Never show controls.","Show zoom controls when hovering over or focusing a diagram.","Always show zoom controls."],"default":"onHoverOrFocus"},"markdown-mermaid.resizable":{"type":"boolean","default":true,"description":"Allow diagrams to be resized vertically by dragging the bottom edge."},"markdown-mermaid.maxHeight":{"type":"string","default":"","markdownDescription":"Maximum height for diagrams. Must be a CSS value with units such as `80vh` or `400px`. Leave empty to try to automatically size diagrams based on their content."}}},"markdown.previewScripts":[{"path":"./markdown-preview-out/index.js","type":"module"}],"notebookRenderer":[{"id":"vscode.markdown-it.mermaid-extension","displayName":"Markdown-It Mermaid Renderer","requiresMessaging":"optional","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/index.js"}}],"markdown.markdownItPlugins":true,"chatOutputRenderers":[{"viewType":"vscode.mermaid-markdown-features.chatOutputItem","mimeTypes":["text/vnd.mermaid"],"codeBlockLanguageIdentifiers":["mermaid"]}],"languageModelTools":[{"name":"renderMermaidDiagram","displayName":"Mermaid Renderer","toolReferenceName":"renderMermaidDiagram","legacyToolReferenceFullNames":["vscode.mermaid-chat-features/renderMermaidDiagram"],"canBeReferencedInPrompt":true,"modelDescription":"Renders a Mermaid diagram from Mermaid.js markup.","userDescription":"Render a Mermaid.js diagram from markup.","when":"chatSessionType == local","inputSchema":{"type":"object","properties":{"markup":{"type":"string","description":"The mermaid diagram markup to render as a Mermaid diagram. This should only be the markup of the diagram. Do not include a wrapping code block."},"title":{"type":"string","description":"A short title that describes the diagram."}}}}]},"overrides":{"lodash-es":"4.18.1"},"allowScripts":{"fsevents@2.3.3":true},"originalEnabledApiProposals":["chatOutputRenderer","chatParticipantPrivate"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/mermaid-markdown-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.microsoft-authentication"},"manifest":{"name":"microsoft-authentication","publisher":"vscode","license":"MIT","displayName":"Microsoft Account","description":"Microsoft authentication provider","version":"0.0.1","engines":{"vscode":"^1.42.0"},"icon":"media/icon.png","categories":["Other"],"activationEvents":[],"enabledApiProposals":["nativeWindowHandle","authIssuers","authenticationChallenges"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","restrictedConfigurations":["microsoft-sovereign-cloud.environment","microsoft-sovereign-cloud.customEnvironment"]}},"extensionKind":["ui","workspace"],"contributes":{"authentication":[{"label":"Microsoft","id":"microsoft","authorizationServerGlobs":["https://login.microsoftonline.com/*","https://login.microsoftonline.com/*/v2.0"]},{"label":"Microsoft Sovereign Cloud","id":"microsoft-sovereign-cloud"}],"configuration":[{"title":"Microsoft Sovereign Cloud","properties":{"microsoft-sovereign-cloud.environment":{"type":"string","markdownDescription":"The Sovereign Cloud to use for authentication. If you select `custom`, you must also set the `#microsoft-sovereign-cloud.customEnvironment#` setting.","enum":["ChinaCloud","USGovernment","custom"],"enumDescriptions":["Azure China","Azure US Government","A custom Microsoft Sovereign Cloud"]},"microsoft-sovereign-cloud.customEnvironment":{"type":"object","additionalProperties":true,"markdownDescription":"The custom configuration for the Sovereign Cloud to use with the Microsoft Sovereign Cloud authentication provider. This along with setting `#microsoft-sovereign-cloud.environment#` to `custom` is required to use this feature.","properties":{"name":{"type":"string","description":"The name of the custom Sovereign Cloud."},"portalUrl":{"type":"string","description":"The portal URL for the custom Sovereign Cloud."},"managementEndpointUrl":{"type":"string","description":"The management endpoint for the custom Sovereign Cloud."},"resourceManagerEndpointUrl":{"type":"string","description":"The resource manager endpoint for the custom Sovereign Cloud."},"activeDirectoryEndpointUrl":{"type":"string","description":"The Active Directory endpoint for the custom Sovereign Cloud."},"activeDirectoryResourceId":{"type":"string","description":"The Active Directory resource ID for the custom Sovereign Cloud."}},"required":["name","portalUrl","managementEndpointUrl","resourceManagerEndpointUrl","activeDirectoryEndpointUrl","activeDirectoryResourceId"]}}},{"title":"Microsoft","properties":{"microsoft-authentication.implementation":{"type":"string","default":"msal","enum":["msal","msal-no-broker"],"enumDescriptions":["Use the Microsoft Authentication Library (MSAL) to sign in with a Microsoft account.","Use the Microsoft Authentication Library (MSAL) to sign in with a Microsoft account using a browser. This is useful if you are having issues with the native broker."],"markdownDescription":"The authentication implementation to use for signing in with a Microsoft account.","tags":["onExP"]}}}]},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","main":"./dist/extension.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"allowScripts":{"@azure/msal-node-runtime@0.20.1":true,"@azure/msal-node-extensions@5.3.2":true},"originalEnabledApiProposals":["nativeWindowHandle","authIssuers","authenticationChallenges"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/microsoft-authentication","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.js-debug"},"manifest":{"name":"js-debug","displayName":"JavaScript Debugger","version":"1.117.0","publisher":"ms-vscode","author":{"name":"Microsoft Corporation"},"keywords":["pwa","javascript","node","chrome","debugger"],"description":"An extension for debugging Node.js programs and Chrome.","license":"MIT","engines":{"vscode":"^1.80.0","node":">=10"},"icon":"resources/logo.png","categories":["Debuggers"],"private":true,"repository":{"type":"git","url":"https://github.com/Microsoft/vscode-pwa.git"},"bugs":{"url":"https://github.com/Microsoft/vscode-pwa/issues"},"main":"./src/extension.js","enabledApiProposals":["portsAttributes","workspaceTrust","tunnels","browser"],"extensionKind":["workspace"],"overrides":{"serialize-javascript":">=7.0.5"},"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":"limited","description":"Trust is required to debug code in this workspace."}},"activationEvents":["onDebugDynamicConfigurations","onDebugInitialConfigurations","onFileSystem:jsDebugNetworkFs","onDebugResolve:pwa-node","onDebugResolve:node-terminal","onDebugResolve:pwa-extensionHost","onDebugResolve:pwa-chrome","onDebugResolve:pwa-msedge","onDebugResolve:pwa-editor-browser","onDebugResolve:node","onDebugResolve:chrome","onDebugResolve:extensionHost","onDebugResolve:msedge","onDebugResolve:editor-browser","onCommand:extension.js-debug.clearAutoAttachVariables","onCommand:extension.js-debug.setAutoAttachVariables","onCommand:extension.js-debug.autoAttachToProcess","onCommand:extension.js-debug.pickNodeProcess","onCommand:extension.js-debug.requestCDPProxy","onCommand:extension.js-debug.completion.nodeTool"],"contributes":{"menus":{"commandPalette":[{"command":"extension.js-debug.prettyPrint","title":"Pretty print for debugging","when":"debugType == pwa-extensionHost && debugState == stopped || debugType == node-terminal && debugState == stopped || debugType == pwa-node && debugState == stopped || debugType == pwa-chrome && debugState == stopped || debugType == pwa-msedge && debugState == stopped || debugType == pwa-editor-browser && debugState == stopped"},{"command":"extension.js-debug.startProfile","title":"Take Performance Profile","when":"debugType == pwa-extensionHost && inDebugMode && !jsDebugIsProfiling || debugType == node-terminal && inDebugMode && !jsDebugIsProfiling || debugType == pwa-node && inDebugMode && !jsDebugIsProfiling || debugType == pwa-chrome && inDebugMode && !jsDebugIsProfiling || debugType == pwa-msedge && inDebugMode && !jsDebugIsProfiling || debugType == pwa-editor-browser && inDebugMode && !jsDebugIsProfiling"},{"command":"extension.js-debug.stopProfile","title":"Stop Performance Profile","when":"debugType == pwa-extensionHost && inDebugMode && jsDebugIsProfiling || debugType == node-terminal && inDebugMode && jsDebugIsProfiling || debugType == pwa-node && inDebugMode && jsDebugIsProfiling || debugType == pwa-chrome && inDebugMode && jsDebugIsProfiling || debugType == pwa-msedge && inDebugMode && jsDebugIsProfiling || debugType == pwa-editor-browser && inDebugMode && jsDebugIsProfiling"},{"command":"extension.js-debug.revealPage","when":"false"},{"command":"extension.js-debug.debugLink","title":"Open Link","when":"!isWeb"},{"command":"extension.js-debug.createDiagnostics","title":"Diagnose Breakpoint Problems","when":"debugType == pwa-extensionHost && inDebugMode || debugType == node-terminal && inDebugMode || debugType == pwa-node && inDebugMode || debugType == pwa-chrome && inDebugMode || debugType == pwa-msedge && inDebugMode || debugType == pwa-editor-browser && inDebugMode"},{"command":"extension.js-debug.getDiagnosticLogs","title":"Save Diagnostic JS Debug Logs","when":"debugType == pwa-extensionHost && inDebugMode || debugType == node-terminal && inDebugMode || debugType == pwa-node && inDebugMode || debugType == pwa-chrome && inDebugMode || debugType == pwa-msedge && inDebugMode || debugType == pwa-editor-browser && inDebugMode"},{"command":"extension.js-debug.openEdgeDevTools","title":"Open Browser Devtools","when":"debugType == pwa-msedge"},{"command":"extension.js-debug.callers.add","title":"Exclude caller from pausing in the current location","when":"debugType == pwa-extensionHost && debugState == \"stopped\" || debugType == node-terminal && debugState == \"stopped\" || debugType == pwa-node && debugState == \"stopped\" || debugType == pwa-chrome && debugState == \"stopped\" || debugType == pwa-msedge && debugState == \"stopped\" || debugType == pwa-editor-browser && debugState == \"stopped\""},{"command":"extension.js-debug.callers.goToCaller","when":"false"},{"command":"extension.js-debug.callers.gotToTarget","when":"false"},{"command":"extension.js-debug.network.copyUri","when":"false"},{"command":"extension.js-debug.network.openBody","when":"false"},{"command":"extension.js-debug.network.openBodyInHex","when":"false"},{"command":"extension.js-debug.network.replayXHR","when":"false"},{"command":"extension.js-debug.network.viewRequest","when":"false"},{"command":"extension.js-debug.network.clear","when":"false"},{"command":"extension.js-debug.enableSourceMapStepping","when":"jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.disableSourceMapStepping","when":"!jsDebugIsMapSteppingDisabled"}],"debug/callstack/context":[{"command":"extension.js-debug.revealPage","group":"navigation","when":"debugType == pwa-chrome && callStackItemType == 'session' || debugType == pwa-msedge && callStackItemType == 'session' || debugType == pwa-editor-browser && callStackItemType == 'session'"},{"command":"extension.js-debug.toggleSkippingFile","group":"navigation","when":"debugType == pwa-extensionHost && callStackItemType == 'session' || debugType == node-terminal && callStackItemType == 'session' || debugType == pwa-node && callStackItemType == 'session' || debugType == pwa-chrome && callStackItemType == 'session' || debugType == pwa-msedge && callStackItemType == 'session' || debugType == pwa-editor-browser && callStackItemType == 'session'"},{"command":"extension.js-debug.startProfile","group":"navigation","when":"debugType == pwa-extensionHost && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == node-terminal && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-node && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-chrome && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-msedge && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-editor-browser && !jsDebugIsProfiling && callStackItemType == 'session'"},{"command":"extension.js-debug.stopProfile","group":"navigation","when":"debugType == pwa-extensionHost && jsDebugIsProfiling && callStackItemType == 'session' || debugType == node-terminal && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-node && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-chrome && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-msedge && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-editor-browser && jsDebugIsProfiling && callStackItemType == 'session'"},{"command":"extension.js-debug.startProfile","group":"inline","when":"debugType == pwa-extensionHost && !jsDebugIsProfiling || debugType == node-terminal && !jsDebugIsProfiling || debugType == pwa-node && !jsDebugIsProfiling || debugType == pwa-chrome && !jsDebugIsProfiling || debugType == pwa-msedge && !jsDebugIsProfiling || debugType == pwa-editor-browser && !jsDebugIsProfiling"},{"command":"extension.js-debug.stopProfile","group":"inline","when":"debugType == pwa-extensionHost && jsDebugIsProfiling || debugType == node-terminal && jsDebugIsProfiling || debugType == pwa-node && jsDebugIsProfiling || debugType == pwa-chrome && jsDebugIsProfiling || debugType == pwa-msedge && jsDebugIsProfiling || debugType == pwa-editor-browser && jsDebugIsProfiling"},{"command":"extension.js-debug.callers.add","when":"debugType == pwa-extensionHost && callStackItemType == 'stackFrame' || debugType == node-terminal && callStackItemType == 'stackFrame' || debugType == pwa-node && callStackItemType == 'stackFrame' || debugType == pwa-chrome && callStackItemType == 'stackFrame' || debugType == pwa-msedge && callStackItemType == 'stackFrame' || debugType == pwa-editor-browser && callStackItemType == 'stackFrame'"}],"debug/toolBar":[{"command":"extension.js-debug.stopProfile","when":"debugType == pwa-extensionHost && jsDebugIsProfiling || debugType == node-terminal && jsDebugIsProfiling || debugType == pwa-node && jsDebugIsProfiling || debugType == pwa-chrome && jsDebugIsProfiling || debugType == pwa-msedge && jsDebugIsProfiling || debugType == pwa-editor-browser && jsDebugIsProfiling"},{"command":"extension.js-debug.openEdgeDevTools","when":"debugType == pwa-msedge"},{"command":"extension.js-debug.enableSourceMapStepping","when":"jsDebugIsMapSteppingDisabled"}],"view/title":[{"command":"extension.js-debug.addCustomBreakpoints","when":"view == jsBrowserBreakpoints","group":"navigation"},{"command":"extension.js-debug.removeAllCustomBreakpoints","when":"view == jsBrowserBreakpoints","group":"navigation"},{"command":"extension.js-debug.callers.removeAll","group":"navigation","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.disableSourceMapStepping","group":"navigation","when":"debugType == pwa-extensionHost && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == node-terminal && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-node && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-chrome && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-msedge && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-editor-browser && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.enableSourceMapStepping","group":"navigation","when":"debugType == pwa-extensionHost && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == node-terminal && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-node && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-chrome && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-msedge && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-editor-browser && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.network.clear","group":"navigation","when":"view == jsDebugNetworkTree"}],"view/item/context":[{"command":"extension.js-debug.addXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.editXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint","group":"inline"},{"command":"extension.js-debug.editXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.removeXHRBreakpoint","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint","group":"inline"},{"command":"extension.js-debug.removeXHRBreakpoint","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.addXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrCategory","group":"inline"},{"command":"extension.js-debug.callers.goToCaller","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.callers.gotToTarget","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.callers.remove","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.network.viewRequest","group":"inline@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.openBody","group":"body@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.openBodyInHex","group":"body@2","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.copyUri","group":"other@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.replayXHR","group":"other@2","when":"view == jsDebugNetworkTree"}],"editor/title":[{"command":"extension.js-debug.prettyPrint","group":"navigation","when":"jsDebugCanPrettyPrint"}]},"breakpoints":[{"language":"javascript"},{"language":"typescript"},{"language":"typescriptreact"},{"language":"javascriptreact"},{"language":"fsharp"},{"language":"html"},{"language":"wat"},{"language":"c"},{"language":"cpp"},{"language":"rust"},{"language":"zig"}],"debuggers":[{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","type":"string"},"attachExistingChildren":{"default":false,"description":"Whether to attempt to attach to already-spawned child processes.","type":"boolean"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"continueOnAttach":{"default":true,"markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","type":"boolean"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"port":{"default":9229,"description":"Debug port to attach to. Default is 9229.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"processId":{"default":"${command:PickProcess}","description":"ID of process to attach to.","type":"string"},"remoteHostHeader":{"description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header.","type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"websocketAddress":{"description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port.","type":"string"}}},"launch":{"properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[],"deprecated":"Please use type node instead","label":"Node.js","languages":["javascript","typescript","javascriptreact","typescriptreact"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-node","variables":{"PickProcess":"extension.js-debug.pickNodeProcess"}},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","type":"string"},"attachExistingChildren":{"default":false,"description":"Whether to attempt to attach to already-spawned child processes.","type":"boolean"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"continueOnAttach":{"default":true,"markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","type":"boolean"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"port":{"default":9229,"description":"Debug port to attach to. Default is 9229.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"processId":{"default":"${command:PickProcess}","description":"ID of process to attach to.","type":"string"},"remoteHostHeader":{"description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header.","type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"websocketAddress":{"description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port.","type":"string"}}},"launch":{"properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[{"body":{"name":"${1:Attach}","port":9229,"request":"attach","skipFiles":["/**"],"type":"node"},"description":"Attach to a running node program","label":"Node.js: Attach"},{"body":{"address":"${2:TCP/IP address of process to be debugged}","localRoot":"^\"\\${workspaceFolder}\"","name":"${1:Attach to Remote}","port":9229,"remoteRoot":"${3:Absolute path to the remote directory containing the program}","request":"attach","skipFiles":["/**"],"type":"node"},"description":"Attach to the debug port of a remote node program","label":"Node.js: Attach to Remote Program"},{"body":{"name":"${1:Attach by Process ID}","processId":"^\"\\${command:PickProcess}\"","request":"attach","skipFiles":["/**"],"type":"node"},"description":"Open process picker to select node process to attach to","label":"Node.js: Attach to Process"},{"body":{"name":"${2:Launch Program}","program":"^\"\\${workspaceFolder}/${1:app.js}\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Launch a node program in debug mode","label":"Node.js: Launch Program"},{"body":{"name":"${1:Launch via NPM}","request":"launch","runtimeArgs":["run-script","debug"],"runtimeExecutable":"npm","skipFiles":["/**"],"type":"node"},"label":"Node.js: Launch via npm","markdownDescription":"Launch a node program through an npm `debug` script"},{"body":{"console":"integratedTerminal","internalConsoleOptions":"neverOpen","name":"nodemon","program":"^\"\\${workspaceFolder}/${1:app.js}\"","request":"launch","restart":true,"runtimeExecutable":"nodemon","skipFiles":["/**"],"type":"node"},"description":"Use nodemon to relaunch a debug session on source changes","label":"Node.js: Nodemon Setup"},{"body":{"args":["-u","tdd","--timeout","999999","--colors","^\"\\${workspaceFolder}/${1:test}\""],"internalConsoleOptions":"openOnSessionStart","name":"Mocha Tests","program":"^\"mocha\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Debug mocha tests","label":"Node.js: Mocha Tests"},{"body":{"args":["${1:generator}"],"console":"integratedTerminal","internalConsoleOptions":"neverOpen","name":"Yeoman ${1:generator}","program":"^\"\\${workspaceFolder}/node_modules/yo/lib/cli.js\"","request":"launch","skipFiles":["/**"],"type":"node"},"label":"Node.js: Yeoman generator","markdownDescription":"Debug yeoman generator (install by running `npm link` in project folder)"},{"body":{"args":["${1:task}"],"name":"Gulp ${1:task}","program":"^\"\\${workspaceFolder}/node_modules/gulp/bin/gulp.js\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Debug gulp task (make sure to have a local gulp installed in your project)","label":"Node.js: Gulp task"},{"body":{"name":"Electron Main","program":"^\"\\${workspaceFolder}/main.js\"","request":"launch","runtimeExecutable":"^\"electron\"","skipFiles":["/**"],"type":"node"},"description":"Debug the Electron main process","label":"Node.js: Electron Main"}],"label":"Node.js","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"node","variables":{"PickProcess":"extension.js-debug.pickNodeProcess"}},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[{"body":{"command":"npm start","name":"Run npm start","request":"launch","type":"node-terminal"},"description":"Run \"npm start\" in a debug terminal","label":"Run \"npm start\" in a debug terminal"}],"label":"JavaScript Debug Terminal","languages":[],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"node-terminal"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"args":{"default":["--extensionDevelopmentPath=${workspaceFolder}"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":"array"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"debugWebWorkerHost":{"default":true,"markdownDescription":"Configures whether we should try to attach to the web worker extension host.","type":["boolean"]},"debugWebviews":{"default":true,"markdownDescription":"Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.","type":["boolean"]},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"rendererDebugOptions":{"default":{"webRoot":"${workspaceFolder}"},"markdownDescription":"Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.","properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"type":"object"},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeExecutable":{"default":"node","markdownDescription":"Absolute path to VS Code.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"testConfiguration":{"default":"${workspaceFolder}/.vscode-test.js","markdownDescription":"Path to a test configuration file for the [test CLI](https://code.visualstudio.com/api/working-with-extensions/testing-extension#quick-setup-the-test-cli).","type":"string"},"testConfigurationLabel":{"default":"","markdownDescription":"A single configuration to run from the file. If not specified, you may be asked to pick.","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"required":[]}},"configurationSnippets":[],"deprecated":"Please use type extensionHost instead","label":"VS Code Extension Development","languages":["javascript","typescript","javascriptreact","typescriptreact"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-extensionHost"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"args":{"default":["--extensionDevelopmentPath=${workspaceFolder}"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":"array"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"debugWebWorkerHost":{"default":true,"markdownDescription":"Configures whether we should try to attach to the web worker extension host.","type":["boolean"]},"debugWebviews":{"default":true,"markdownDescription":"Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.","type":["boolean"]},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"rendererDebugOptions":{"default":{"webRoot":"${workspaceFolder}"},"markdownDescription":"Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.","properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"type":"object"},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeExecutable":{"default":"node","markdownDescription":"Absolute path to VS Code.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"testConfiguration":{"default":"${workspaceFolder}/.vscode-test.js","markdownDescription":"Path to a test configuration file for the [test CLI](https://code.visualstudio.com/api/working-with-extensions/testing-extension#quick-setup-the-test-cli).","type":"string"},"testConfigurationLabel":{"default":"","markdownDescription":"A single configuration to run from the file. If not specified, you may be asked to pick.","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"required":[]}},"configurationSnippets":[{"body":{"args":["^\"--extensionDevelopmentPath=\\${workspaceFolder}\""],"name":"Launch Extension","outFiles":["^\"\\${workspaceFolder}/out/**/*.js\""],"preLaunchTask":"npm","request":"launch","type":"extensionHost"},"description":"Launch a VS Code extension in debug mode","label":"VS Code Extension Development"}],"label":"VS Code Extension Development","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"extensionHost"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":0,"description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[],"deprecated":"Please use type chrome instead","label":"Web App (Chrome)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-chrome"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":0,"description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[{"body":{"name":"Launch Chrome","request":"launch","type":"chrome","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch Chrome to debug a URL","label":"Chrome: Launch"},{"body":{"name":"Attach to Chrome","port":9222,"request":"attach","type":"chrome","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an instance of Chrome already in debug mode","label":"Chrome: Attach"}],"label":"Web App (Chrome)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"chrome"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":{"pipeName":"MyPipeName"},"description":"An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"","properties":{"pipeName":{"type":"string"}},"type":"object"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"address":{"default":"localhost","description":"When debugging webviews, the IP address or hostname the webview is listening on. Will be automatically discovered if not set.","type":"string"},"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"When debugging webviews, the port the webview debugger is listening on. Will be automatically discovered if not set.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":false,"description":"When 'true', the debugger will treat the runtime executable as a host application that contains a WebView allowing you to debug the WebView script content.","type":"boolean"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[],"deprecated":"Please use type msedge instead","label":"Web App (Edge)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-msedge"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":{"pipeName":"MyPipeName"},"description":"An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"","properties":{"pipeName":{"type":"string"}},"type":"object"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"address":{"default":"localhost","description":"When debugging webviews, the IP address or hostname the webview is listening on. Will be automatically discovered if not set.","type":"string"},"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"When debugging webviews, the port the webview debugger is listening on. Will be automatically discovered if not set.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":false,"description":"When 'true', the debugger will treat the runtime executable as a host application that contains a WebView allowing you to debug the WebView script content.","type":"boolean"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[{"body":{"name":"Launch Edge","request":"launch","type":"msedge","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch Edge to debug a URL","label":"Edge: Launch"},{"body":{"name":"Attach to Edge","port":9222,"request":"attach","type":"msedge","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an instance of Edge already in debug mode","label":"Edge: Attach"}],"label":"Web App (Edge)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"msedge"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"required":["url"]}},"configurationSnippets":[],"deprecated":"Please use type editor-browser instead","label":"Web App (Integrated Browser)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-editor-browser","when":"!isWeb"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"required":["url"]}},"configurationSnippets":[{"body":{"name":"Launch Integrated Browser","request":"launch","type":"editor-browser","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch a VS Code integrated browser to debug a URL","label":"Integrated Browser: Launch"},{"body":{"name":"Attach to Integrated Browser","request":"attach","type":"editor-browser","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an open VS Code integrated browser","label":"Integrated Browser: Attach"}],"label":"Web App (Integrated Browser)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"editor-browser","when":"!isWeb"}],"commands":[{"command":"extension.js-debug.prettyPrint","title":"Pretty print for debugging","category":"Debug","icon":"$(json)"},{"command":"extension.js-debug.toggleSkippingFile","title":"Toggle Skipping this File","category":"Debug"},{"command":"extension.js-debug.addCustomBreakpoints","title":"Toggle Event Listener Breakpoints","icon":"$(add)"},{"command":"extension.js-debug.removeAllCustomBreakpoints","title":"Remove All Event Listener Breakpoints","icon":"$(close-all)"},{"command":"extension.js-debug.addXHRBreakpoints","title":"Add XHR/fetch Breakpoint","icon":"$(add)"},{"command":"extension.js-debug.removeXHRBreakpoint","title":"Remove XHR/fetch Breakpoint","icon":"$(remove)"},{"command":"extension.js-debug.editXHRBreakpoints","title":"Edit XHR/fetch Breakpoint","icon":"$(edit)"},{"command":"extension.pwa-node-debug.attachNodeProcess","title":"Attach to Node Process","category":"Debug"},{"command":"extension.js-debug.npmScript","title":"Debug npm Script","category":"Debug"},{"command":"extension.js-debug.createDebuggerTerminal","title":"JavaScript Debug Terminal","category":"Debug"},{"command":"extension.js-debug.startProfile","title":"Take Performance Profile","category":"Debug","icon":"$(record)"},{"command":"extension.js-debug.stopProfile","title":"Stop Performance Profile","category":"Debug","icon":"resources/dark/stop-profiling.svg"},{"command":"extension.js-debug.revealPage","title":"Focus Tab","category":"Debug"},{"command":"extension.js-debug.debugLink","title":"Open Link","category":"Debug"},{"command":"extension.js-debug.createDiagnostics","title":"Diagnose Breakpoint Problems","category":"Debug"},{"command":"extension.js-debug.getDiagnosticLogs","title":"Save Diagnostic JS Debug Logs","category":"Debug"},{"command":"extension.node-debug.startWithStopOnEntry","title":"Start Debugging and Stop on Entry","category":"Debug"},{"command":"extension.js-debug.openEdgeDevTools","title":"Open Browser Devtools","icon":"$(inspect)","category":"Debug"},{"command":"extension.js-debug.callers.add","title":"Exclude Caller","category":"Debug"},{"command":"extension.js-debug.callers.remove","title":"Remove excluded caller","icon":"$(close)"},{"command":"extension.js-debug.callers.removeAll","title":"Remove all excluded callers","icon":"$(clear-all)"},{"command":"extension.js-debug.callers.goToCaller","title":"Go to caller location","icon":"$(call-outgoing)"},{"command":"extension.js-debug.callers.gotToTarget","title":"Go to target location","icon":"$(call-incoming)"},{"command":"extension.js-debug.enableSourceMapStepping","title":"Enable Source Mapped Stepping","icon":"$(compass-dot)"},{"command":"extension.js-debug.disableSourceMapStepping","title":"Disable Source Mapped Stepping","icon":"$(compass)"},{"command":"extension.js-debug.network.viewRequest","title":"View Request as cURL","icon":"$(arrow-right)"},{"command":"extension.js-debug.network.clear","title":"Clear Network Log","icon":"$(clear-all)"},{"command":"extension.js-debug.network.openBody","title":"Open Response Body"},{"command":"extension.js-debug.network.openBodyInHex","title":"Open Response Body in Hex Editor"},{"command":"extension.js-debug.network.replayXHR","title":"Replay Request"},{"command":"extension.js-debug.network.copyUri","title":"Copy Request URL"}],"keybindings":[{"command":"extension.node-debug.startWithStopOnEntry","key":"F10","mac":"F10","when":"debugConfigurationType == pwa-node && !inDebugMode || debugConfigurationType == pwa-extensionHost && !inDebugMode || debugConfigurationType == node && !inDebugMode"},{"command":"extension.node-debug.startWithStopOnEntry","key":"F11","mac":"F11","when":"debugConfigurationType == pwa-node && !inDebugMode && activeViewlet == workbench.view.debug || debugConfigurationType == pwa-extensionHost && !inDebugMode && activeViewlet == workbench.view.debug || debugConfigurationType == node && !inDebugMode && activeViewlet == workbench.view.debug"}],"configuration":{"title":"JavaScript Debugger","properties":{"debug.javascript.codelens.npmScripts":{"enum":["top","all","never"],"default":"top","description":"Where a \"Run\" and \"Debug\" code lens should be shown in your npm scripts. It may be on \"all\", scripts, on \"top\" of the script section, or \"never\"."},"debug.javascript.terminalOptions":{"type":"object","description":"Default launch options for the JavaScript debug terminal and npm scripts.","default":{},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"command":{"type":["string","null"],"description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","default":"npm start","tags":["setup"]}}},"debug.javascript.automaticallyTunnelRemoteServer":{"type":"boolean","description":"When debugging a remote web app, configures whether to automatically tunnel the remote server to your local machine.","default":true},"debug.javascript.debugByLinkOptions":{"default":"on","description":"Options used when debugging open links clicked from inside the JavaScript Debug Terminal. Can be set to \"off\" to disable this behavior, or \"always\" to enable debugging in all terminals.","oneOf":[{"type":"string","enum":["on","off","always"]},{"type":"object","properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":null,"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"disableNetworkCache":{"type":"boolean","description":"Controls whether to skip the network cache for each request","default":true},"pathMapping":{"type":"object","description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","default":{}},"webRoot":{"type":"string","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","default":"${workspaceFolder}","tags":["setup"]},"urlFilter":{"type":"string","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","default":""},"url":{"type":"string","description":"Will search for a tab with this exact url and attach to it, if found","default":"http://localhost:8080","tags":["setup"]},"inspectUri":{"type":["string","null"],"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","default":null},"vueComponentPaths":{"type":"array","description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","default":["${workspaceFolder}/**/*.vue"]},"server":{"oneOf":[{"type":"object","description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","additionalProperties":false,"default":{"program":"node my-server.js"},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"program":{"type":"string","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","default":"","tags":["setup"]},"stopOnEntry":{"type":["boolean","string"],"description":"Automatically stop program after launch.","default":true},"console":{"type":"string","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"description":"Where to launch the debug target.","default":"internalConsole"},"args":{"type":["array","string"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"default":[],"tags":["setup"]},"restart":{"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","properties":{"delay":{"type":"number","minimum":0,"default":1000},"maxAttempts":{"type":"number","minimum":0,"default":10}}}]},"runtimeExecutable":{"type":["string","null"],"markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","default":"node"},"runtimeVersion":{"type":"string","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","default":"default"},"runtimeArgs":{"type":"array","description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"default":[],"tags":["setup"]},"profileStartup":{"type":"boolean","description":"If true, will start profiling as soon as the process launches","default":true},"attachSimplePort":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\${.*}$"}],"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","default":9229},"killBehavior":{"type":"string","enum":["forceful","polite","none"],"default":"forceful","markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen."},"experimentalNetworking":{"type":"string","default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"]}}},{"type":"object","description":"JavaScript Debug Terminal","additionalProperties":false,"default":{"program":"npm start"},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"command":{"type":["string","null"],"description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","default":"npm start","tags":["setup"]}}}]},"perScriptSourcemaps":{"type":"string","default":"auto","enum":["yes","no","auto"],"description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate."},"port":{"type":"number","description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","default":0},"file":{"type":"string","description":"A local html file to open in the browser","default":"${workspaceFolder}/index.html","tags":["setup"]},"userDataDir":{"type":["string","boolean"],"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","default":true},"includeDefaultArgs":{"type":"boolean","description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","default":true},"includeLaunchArgs":{"type":"boolean","description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","default":true},"runtimeExecutable":{"type":["string","null"],"description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","default":"stable"},"runtimeArgs":{"type":"array","description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"default":[]},"env":{"type":"object","description":"Optional dictionary of environment key/value pairs for the browser.","default":{}},"cwd":{"type":"string","description":"Optional working directory for the runtime executable.","default":null},"profileStartup":{"type":"boolean","description":"If true, will start profiling soon as the process launches","default":true},"cleanUp":{"type":"string","enum":["wholeBrowser","onlyTab"],"description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","default":"wholeBrowser"},"killBehavior":{"type":"string","enum":["forceful","polite","none"],"default":"forceful","markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen."},"browserLaunchLocation":{"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","default":null,"oneOf":[{"type":"null"},{"type":"string","enum":["ui","workspace"]}]},"enabled":{"type":"string","enum":["on","off","always"]}}}]},"debug.javascript.pickAndAttachOptions":{"type":"object","default":{},"markdownDescription":"Default options used when debugging a process through the `Debug: Attach to Node.js Process` command","properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"address":{"type":"string","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","default":"localhost"},"port":{"description":"Debug port to attach to. Default is 9229.","default":9229,"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\${.*}$"}],"tags":["setup"]},"websocketAddress":{"type":"string","description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port."},"remoteHostHeader":{"type":"string","description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header."},"restart":{"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","properties":{"delay":{"type":"number","minimum":0,"default":1000},"maxAttempts":{"type":"number","minimum":0,"default":10}}}]},"processId":{"type":"string","description":"ID of process to attach to.","default":"${command:PickProcess}"},"attachExistingChildren":{"type":"boolean","description":"Whether to attempt to attach to already-spawned child processes.","default":false},"continueOnAttach":{"type":"boolean","markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","default":true}}},"debug.javascript.autoAttachFilter":{"type":"string","default":"disabled","enum":["always","smart","onlyWithFlag","disabled"],"enumDescriptions":["Auto attach to every Node.js process launched in the terminal.","Auto attach when running scripts that aren't in a node_modules folder.","Only auto attach when the `--inspect` is given.","Auto attach is disabled and not shown in status bar."],"markdownDescription":"Configures which processes to automatically attach and debug when `#debug.node.autoAttach#` is on. A Node process launched with the `--inspect` flag will always be attached to, regardless of this setting."},"debug.javascript.autoAttachSmartPattern":{"type":"array","items":{"type":"string"},"default":["${workspaceFolder}/**","!**/node_modules/**","**/$KNOWN_TOOLS$/**"],"markdownDescription":"Configures glob patterns for determining when to attach in \"smart\" `#debug.javascript.autoAttachFilter#` mode. `$KNOWN_TOOLS$` is replaced with a list of names of common test and code runners. [Read more on the VS Code docs](https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_auto-attach-smart-patterns)."},"debug.javascript.breakOnConditionalError":{"type":"boolean","default":false,"markdownDescription":"Whether to stop when conditional breakpoints throw an error."},"debug.javascript.unmapMissingSources":{"type":"boolean","default":false,"description":"Configures whether sourcemapped file where the original file can't be read will automatically be unmapped. If this is false (default), a prompt is shown."},"debug.javascript.defaultRuntimeExecutable":{"type":"object","default":{"pwa-node":"node"},"markdownDescription":"The default `runtimeExecutable` used for launch configurations, if unspecified. This can be used to config custom paths to Node.js or browser installations.","properties":{"pwa-node":{"type":"string"},"pwa-chrome":{"type":"string"},"pwa-msedge":{"type":"string"}}},"debug.javascript.resourceRequestOptions":{"type":"object","default":{},"markdownDescription":"Request options to use when loading resources, such as source maps, in the debugger. You may need to configure this if your sourcemaps require authentication or use a self-signed certificate, for instance. Options are used to create a request using the [`got`](https://github.com/sindresorhus/got) library.\n\nA common case to disable certificate verification can be done by passing `{ \"https\": { \"rejectUnauthorized\": false } }`."},"debug.javascript.enableNetworkView":{"type":"boolean","default":true,"description":"Enables the experimental network view for targets that support it."}}},"grammars":[{"language":"wat","scopeName":"text.wat","path":"./src/ui/basic-wat.tmLanguage.json"}],"languages":[{"id":"wat","extensions":[".wat",".wasm"],"aliases":["WebAssembly Text Format"],"firstLine":"^\\(module","mimetypes":["text/wat"],"configuration":"./src/ui/basic-wat.configuration.json"}],"terminal":{"profiles":[{"id":"extension.js-debug.debugTerminal","title":"JavaScript Debug Terminal","icon":"$(debug)"}]},"views":{"debug":[{"id":"jsBrowserBreakpoints","name":"Browser Options","when":"debugType == pwa-chrome || debugType == pwa-msedge || debugType == pwa-editor-browser"},{"id":"jsExcludedCallers","name":"Excluded Callers","when":"debugType == pwa-extensionHost && jsDebugHasExcludedCallers || debugType == node-terminal && jsDebugHasExcludedCallers || debugType == pwa-node && jsDebugHasExcludedCallers || debugType == pwa-chrome && jsDebugHasExcludedCallers || debugType == pwa-msedge && jsDebugHasExcludedCallers || debugType == pwa-editor-browser && jsDebugHasExcludedCallers"},{"id":"jsDebugNetworkTree","name":"Network","when":"jsDebugNetworkAvailable"}]},"viewsWelcome":[{"view":"debug","contents":"[JavaScript Debug Terminal](command:extension.js-debug.createDebuggerTerminal)\n\nYou can use the JavaScript Debug Terminal to debug Node.js processes run on the command line.\n\n[Debug URL](command:extension.js-debug.debugLink)","when":"debugStartLanguage == javascript && !isWeb || debugStartLanguage == typescript && !isWeb || debugStartLanguage == javascriptreact && !isWeb || debugStartLanguage == typescriptreact && !isWeb"},{"view":"debug","contents":"[JavaScript Debug Terminal](command:extension.js-debug.createDebuggerTerminal)\n\nYou can use the JavaScript Debug Terminal to debug Node.js processes run on the command line.","when":"debugStartLanguage == javascript && isWeb || debugStartLanguage == typescript && isWeb || debugStartLanguage == javascriptreact && isWeb || debugStartLanguage == typescriptreact && isWeb"}]},"originalEnabledApiProposals":["portsAttributes","workspaceTrust","tunnels","browser"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ms-vscode.js-debug","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.js-debug-companion"},"manifest":{"name":"js-debug-companion","displayName":"JavaScript Debugger Companion Extension","description":"Companion extension to js-debug that provides capability for remote debugging","version":"1.1.3","publisher":"ms-vscode","engines":{"vscode":"^1.90.0"},"icon":"resources/logo.png","categories":["Other"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode-js-debug-companion.git"},"author":"Connor Peet ","license":"MIT","bugs":{"url":"https://github.com/microsoft/vscode-js-debug-companion/issues"},"homepage":"https://github.com/microsoft/vscode-js-debug-companion#readme","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onCommand:js-debug-companion.launchAndAttach","onCommand:js-debug-companion.kill","onCommand:js-debug-companion.launch","onCommand:js-debug-companion.defaultBrowser"],"main":"./out/extension.js","contributes":{},"extensionKind":["ui"],"api":"none","prettier":{"trailingComma":"all","singleQuote":true,"printWidth":100,"tabWidth":2,"arrowParens":"avoid"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ms-vscode.js-debug-companion","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.vscode-js-profile-table"},"manifest":{"name":"vscode-js-profile-table","version":"1.0.11","displayName":"Table Visualizer for JavaScript Profiles","description":"Text visualizer for profiles taken from the JavaScript debugger","author":"Connor Peet ","homepage":"https://github.com/microsoft/vscode-js-profile-visualizer#readme","license":"MIT","main":"out/extension.js","browser":"out/extension.web.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode-js-profile-visualizer.git"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"icon":"resources/icon.png","publisher":"ms-vscode","sideEffects":false,"engines":{"vscode":"^1.74.0"},"contributes":{"customEditors":[{"viewType":"jsProfileVisualizer.cpuprofile.table","displayName":"CPU Profile Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.cpuprofile"}]},{"viewType":"jsProfileVisualizer.heapprofile.table","displayName":"Heap Profile Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.heapprofile"}]},{"viewType":"jsProfileVisualizer.heapsnapshot.table","displayName":"Heap Snapshot Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.heapsnapshot"}]}],"commands":[{"command":"extension.jsProfileVisualizer.table.clearCodeLenses","title":"Clear Profile Code Lenses"}],"menus":{"commandPalette":[{"command":"extension.jsProfileVisualizer.table.clearCodeLenses","when":"jsProfileVisualizer.hasCodeLenses == true"}]}},"bugs":{"url":"https://github.com/microsoft/vscode-js-profile-visualizer/issues"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ms-vscode.vscode-js-profile-table","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.builtin-notebook-renderers"},"manifest":{"name":"builtin-notebook-renderers","displayName":"Builtin Notebook Output Renderers","description":"Provides basic output renderers for notebooks","publisher":"vscode","version":"10.0.0","license":"MIT","icon":"media/icon.png","engines":{"vscode":"^1.57.0"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"notebookRenderer":[{"id":"vscode.builtin-renderer","entrypoint":"./renderer-out/index.js","displayName":"VS Code Builtin Notebook Output Renderer","requiresMessaging":"never","mimeTypes":["image/gif","image/png","image/jpeg","image/git","image/svg+xml","text/html","application/javascript","application/vnd.code.notebook.error","application/vnd.code.notebook.stdout","application/x.notebook.stdout","application/x.notebook.stream","application/vnd.code.notebook.stderr","application/x.notebook.stderr","text/plain"]}]},"scripts":{"compile":"npx gulp compile-extension:notebook-renderers && npm run build-notebook","watch":"npx gulp compile-watch:notebook-renderers","build-notebook":"node ./esbuild.notebook.mts"},"devDependencies":{"@types/jsdom":"^21.1.0","@types/node":"24.x","@types/vscode-notebook-renderer":"^1.60.0","jsdom":"^28.1.0"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/notebook-renderers","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.npm"},"manifest":{"name":"npm","publisher":"vscode","displayName":"NPM support for VS Code","description":"Extension to add task support for npm scripts.","version":"10.0.0","private":true,"license":"MIT","engines":{"vscode":"0.10.x"},"icon":"images/npm_icon.png","categories":["Other"],"enabledApiProposals":["terminalQuickFixProvider"],"main":"./dist/npmMain","browser":"./dist/browser/npmBrowserMain","activationEvents":["onTaskType:npm","onLanguage:json","workspaceContains:package.json"],"capabilities":{"virtualWorkspaces":{"supported":"limited","description":"Functionality that requires running the 'npm' command is not available in virtual workspaces."},"untrustedWorkspaces":{"supported":"limited","description":"This extension executes tasks, which require trust to run."}},"contributes":{"languages":[{"id":"ignore","extensions":[".npmignore"]},{"id":"properties","extensions":[".npmrc"]}],"views":{"explorer":[{"id":"npm","name":"NPM Scripts","when":"npm:showScriptExplorer","icon":"$(json)","visibility":"hidden","contextualTitle":"NPM Scripts"}]},"commands":[{"command":"npm.runScript","title":"Run","icon":"$(run)"},{"command":"npm.debugScript","title":"Debug","icon":"$(debug)"},{"command":"npm.openScript","title":"Open"},{"command":"npm.runInstall","title":"Run Install"},{"command":"npm.refresh","title":"Refresh","icon":"$(refresh)"},{"command":"npm.runSelectedScript","title":"Run Script"},{"command":"npm.runScriptFromFolder","title":"Run NPM Script in Folder..."},{"command":"npm.packageManager","title":"Get Configured Package Manager"}],"menus":{"commandPalette":[{"command":"npm.refresh","when":"false"},{"command":"npm.runScript","when":"false"},{"command":"npm.debugScript","when":"false"},{"command":"npm.openScript","when":"false"},{"command":"npm.runInstall","when":"false"},{"command":"npm.runSelectedScript","when":"false"},{"command":"npm.runScriptFromFolder","when":"false"},{"command":"npm.packageManager","when":"false"}],"editor/context":[{"command":"npm.runSelectedScript","when":"resourceFilename == 'package.json' && resourceScheme == file","group":"navigation@+1"}],"view/title":[{"command":"npm.refresh","when":"view == npm","group":"navigation"}],"view/item/context":[{"command":"npm.openScript","when":"view == npm && viewItem == packageJSON","group":"navigation@1"},{"command":"npm.runInstall","when":"view == npm && viewItem == packageJSON","group":"navigation@2"},{"command":"npm.openScript","when":"view == npm && viewItem == script","group":"navigation@1"},{"command":"npm.runScript","when":"view == npm && viewItem == script","group":"navigation@2"},{"command":"npm.runScript","when":"view == npm && viewItem == script","group":"inline"},{"command":"npm.debugScript","when":"view == npm && viewItem == script","group":"inline"},{"command":"npm.debugScript","when":"view == npm && viewItem == script","group":"navigation@3"}],"explorer/context":[{"when":"config.npm.enableRunFromFolder && explorerViewletVisible && explorerResourceIsFolder && resourceScheme == file","command":"npm.runScriptFromFolder","group":"2_workspace"}]},"configuration":{"id":"npm","type":"object","title":"Npm","properties":{"npm.autoDetect":{"type":"string","enum":["off","on"],"default":"on","scope":"resource","description":"Controls whether npm scripts should be automatically detected."},"npm.runSilent":{"type":"boolean","default":false,"scope":"resource","markdownDescription":"Run npm commands with the `--silent` option."},"npm.packageManager":{"scope":"resource","type":"string","enum":["auto","npm","yarn","pnpm","bun"],"enumDescriptions":["Auto-detect which package manager to use based on lock files and installed package managers.","Use npm as the package manager.","Use yarn as the package manager.","Use pnpm as the package manager.","Use bun as the package manager."],"default":"auto","description":"The package manager used to install dependencies."},"npm.scriptRunner":{"scope":"resource","type":"string","enum":["auto","npm","yarn","pnpm","bun","node","vp"],"enumDescriptions":["Auto-detect which script runner to use based on lock files and installed package managers.","Use npm as the script runner.","Use yarn as the script runner.","Use pnpm as the script runner.","Use bun as the script runner.","Use Node.js as the script runner.","Use Vite+ (vp) as the script runner."],"default":"auto","description":"The script runner used to run scripts."},"npm.exclude":{"type":["string","array"],"items":{"type":"string"},"description":"Configure glob patterns for folders that should be excluded from automatic script detection.","scope":"resource"},"npm.enableScriptExplorer":{"type":"boolean","default":false,"scope":"resource","deprecationMessage":"The NPM Script Explorer is now available in 'Views' menu in the Explorer in all folders.","markdownDescription":"Enable an explorer view for npm scripts when there is no top-level `package.json` file."},"npm.enableRunFromFolder":{"type":"boolean","default":false,"scope":"resource","description":"Enable running npm scripts contained in a folder from the Explorer context menu."},"npm.scriptExplorerAction":{"type":"string","enum":["open","run"],"markdownDescription":"The default click action used in the NPM Scripts Explorer: `open` or `run`, the default is `open`.","scope":"window","default":"open"},"npm.scriptExplorerExclude":{"type":"array","items":{"type":"string"},"markdownDescription":"An array of regular expressions that indicate which scripts should be excluded from the NPM Scripts view.","scope":"resource","default":[]},"npm.fetchOnlinePackageInfo":{"type":"boolean","description":"Fetch data from https://registry.npmjs.org and https://registry.bower.io to provide auto-completion and information on hover features on npm dependencies.","default":true,"scope":"window","tags":["usesOnlineServices"]},"npm.scriptHover":{"type":"boolean","markdownDescription":"Display hover with `Run` and `Debug` commands for scripts.","default":true,"scope":"window"}}},"jsonValidation":[{"fileMatch":"package.json","url":"https://www.schemastore.org/package"},{"fileMatch":"bower.json","url":"https://www.schemastore.org/bower"}],"taskDefinitions":[{"type":"npm","required":["script"],"properties":{"script":{"type":"string","description":"The npm script to customize."},"path":{"type":"string","description":"The path to the folder of the package.json file that provides the script. Can be omitted."}},"when":"shellExecutionSupported"}],"terminalQuickFixes":[{"id":"ms-vscode.npm-command","commandLineMatcher":"npm","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":8,"lineMatcher":"Did you mean (?:this|one of these)\\?((?:\\n.+?npm .+ #.+)+)","offset":2}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalQuickFixProvider"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/npm","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.objective-c"},"manifest":{"name":"objective-c","displayName":"Objective-C Language Basics","description":"Provides syntax highlighting and bracket matching in Objective-C files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"objective-c","extensions":[".m"],"aliases":["Objective-C"],"configuration":"./language-configuration.json"},{"id":"objective-cpp","extensions":[".mm"],"aliases":["Objective-C++"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"objective-c","scopeName":"source.objc","path":"./syntaxes/objective-c.tmLanguage.json"},{"language":"objective-cpp","scopeName":"source.objcpp","path":"./syntaxes/objective-c++.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/objective-c","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.perl"},"manifest":{"name":"perl","displayName":"Perl Language Basics","description":"Provides syntax highlighting and bracket matching in Perl files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/perl.tmbundle Syntaxes/Perl.plist ./syntaxes/perl.tmLanguage.json Syntaxes/Perl%206.tmLanguage ./syntaxes/perl6.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"perl","aliases":["Perl","perl"],"extensions":[".pl",".pm",".pod",".t",".PL",".psgi"],"firstLine":"^#!.*\\bperl\\b","configuration":"./perl.language-configuration.json"},{"id":"raku","aliases":["Raku","Perl6","perl6"],"extensions":[".raku",".rakumod",".rakutest",".rakudoc",".nqp",".p6",".pl6",".pm6"],"firstLine":"(^#!.*\\bperl6\\b)|use\\s+v6|raku|=begin\\spod|my\\sclass","configuration":"./perl6.language-configuration.json"}],"grammars":[{"language":"perl","scopeName":"source.perl","path":"./syntaxes/perl.tmLanguage.json","unbalancedBracketScopes":["variable.other.predefined.perl"]},{"language":"raku","scopeName":"source.perl.6","path":"./syntaxes/perl6.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/perl","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.php"},"manifest":{"name":"php","displayName":"PHP Language Basics","description":"Provides syntax highlighting and bracket matching for PHP files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"php","extensions":[".php",".php4",".php5",".phtml",".ctp"],"aliases":["PHP","php"],"firstLine":"^#!\\s*/.*\\bphp\\b","mimetypes":["application/x-php"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"php","scopeName":"source.php","path":"./syntaxes/php.tmLanguage.json"},{"language":"php","scopeName":"text.html.php","path":"./syntaxes/html.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.php":"php","source.sql":"sql","text.xml":"xml","source.js":"javascript","source.json":"json","source.css":"css"}}],"snippets":[{"language":"php","path":"./snippets/php.code-snippets"}]},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/php","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.php-language-features"},"manifest":{"name":"php-language-features","displayName":"PHP Language Features","description":"Provides rich language support for PHP files.","version":"10.0.0","publisher":"vscode","license":"MIT","icon":"icons/logo.png","engines":{"vscode":"0.10.x"},"activationEvents":["onLanguage:php"],"main":"./dist/phpMain","categories":["Programming Languages"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":"limited","description":"The extension requires workspace trust when the `php.validate.executablePath` setting will load a version of PHP in the workspace.","restrictedConfigurations":["php.validate.executablePath"]}},"contributes":{"configuration":{"title":"PHP","type":"object","order":20,"properties":{"php.suggest.basic":{"type":"boolean","default":true,"description":"Controls whether the built-in PHP language suggestions are enabled. The support suggests PHP globals and variables."},"php.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable built-in PHP validation."},"php.validate.executablePath":{"type":["string","null"],"default":null,"description":"Points to the PHP executable.","scope":"machine-overridable"},"php.validate.run":{"type":"string","enum":["onSave","onType"],"default":"onSave","description":"Whether the linter is run on save or on type."}}},"jsonValidation":[{"fileMatch":"composer.json","url":"https://getcomposer.org/schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/php-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.powershell"},"manifest":{"name":"powershell","displayName":"Powershell Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Powershell files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"powershell","extensions":[".ps1",".psm1",".psd1",".pssc",".psrc"],"aliases":["PowerShell","powershell","ps","ps1","pwsh"],"firstLine":"^#!\\s*/.*\\bpwsh\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"powershell","scopeName":"source.powershell","path":"./syntaxes/powershell.tmLanguage.json"}]},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin PowerShell/EditorSyntax PowerShellSyntax.tmLanguage ./syntaxes/powershell.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/powershell","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.prompt"},"manifest":{"name":"prompt","displayName":"Prompt Language Basics","description":"Syntax highlighting for Prompt and Instructions documents.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.20.0"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"prompt","aliases":["Prompt","prompt"],"extensions":[".prompt.md"],"configuration":"./language-configuration.json"},{"id":"instructions","aliases":["Instructions","instructions"],"extensions":[".instructions.md","copilot-instructions.md"],"filenamePatterns":["**/.claude/rules/**/*.md"],"configuration":"./language-configuration.json"},{"id":"chatagent","aliases":["Agent","chat agent"],"extensions":[".agent.md",".chatmode.md"],"filenamePatterns":["**/.github/agents/*.md","**/.claude/agents/*.md"],"configuration":"./language-configuration.json"},{"id":"skill","aliases":["Skill","skill"],"filenames":["SKILL.md"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"prompt","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"instructions","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"chatagent","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"skill","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]}],"configurationDefaults":{"[prompt]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[instructions]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[chatagent]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[skill]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"}}},"scripts":{},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/prompt-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.pug"},"manifest":{"name":"pug","displayName":"Pug Language Basics","description":"Provides syntax highlighting and bracket matching in Pug files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin davidrios/pug-tmbundle Syntaxes/Pug.JSON-tmLanguage ./syntaxes/pug.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"jade","extensions":[".pug",".jade"],"aliases":["Pug","Jade","jade"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"jade","scopeName":"text.pug","path":"./syntaxes/pug.tmLanguage.json"}],"configurationDefaults":{"[jade]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/pug","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.python"},"manifest":{"name":"python","displayName":"Python Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Python files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"python","extensions":[".py",".rpy",".pyw",".cpy",".gyp",".gypi",".pyi",".ipy",".pyt"],"aliases":["Python","py"],"filenames":["SConstruct","SConscript"],"firstLine":"^#!\\s*/?.*\\bpython[0-9.-]*\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"python","scopeName":"source.python","path":"./syntaxes/MagicPython.tmLanguage.json"},{"scopeName":"source.regexp.python","path":"./syntaxes/MagicRegExp.tmLanguage.json"}],"configurationDefaults":{"[python]":{"diffEditor.ignoreTrimWhitespace":false,"editor.defaultColorDecorators":"never"}}},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin MagicStack/MagicPython grammars/MagicPython.tmLanguage ./syntaxes/MagicPython.tmLanguage.json grammars/MagicRegExp.tmLanguage ./syntaxes/MagicRegExp.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/python","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.r"},"manifest":{"name":"r","displayName":"R Language Basics","description":"Provides syntax highlighting and bracket matching in R files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin REditorSupport/vscode-R-syntax syntaxes/r.json ./syntaxes/r.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"r","extensions":[".R",".Rhistory",".Rprofile",".rt"],"aliases":["R","r"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"r","scopeName":"source.r","path":"./syntaxes/r.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/r","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.razor"},"manifest":{"name":"razor","displayName":"Razor Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Razor files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"razor","extensions":[".cshtml",".razor"],"aliases":["Razor","razor"],"mimetypes":["text/x-cshtml"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"razor","scopeName":"text.html.cshtml","path":"./syntaxes/cshtml.tmLanguage.json","embeddedLanguages":{"section.embedded.source.cshtml":"csharp","source.css":"css","source.js":"javascript"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/razor","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.references-view"},"manifest":{"name":"references-view","displayName":"Reference Search View","description":"Reference Search results as separate, stable view in the sidebar","icon":"media/icon.png","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.67.0"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"repository":{"type":"git","url":"https://github.com/Microsoft/vscode-references-view"},"bugs":{"url":"https://github.com/Microsoft/vscode-references-view/issues"},"activationEvents":["onCommand:references-view.find","onCommand:editor.action.showReferences"],"main":"./dist/extension","browser":"./dist/browser/extension","contributes":{"configuration":{"properties":{"references.preferredLocation":{"description":"Controls whether 'Peek References' or 'Find References' is invoked when selecting CodeLens references.","type":"string","default":"peek","enum":["peek","view"],"enumDescriptions":["Show references in peek editor.","Show references in separate view."]}}},"viewsContainers":{"activitybar":[{"id":"references-view","icon":"$(references)","title":"References"}]},"views":{"references-view":[{"id":"references-view.tree","name":"Reference Search Results","when":"reference-list.isActive"}]},"commands":[{"command":"references-view.findReferences","title":"Find All References","category":"References"},{"command":"references-view.findImplementations","title":"Find All Implementations","category":"References"},{"command":"references-view.clearHistory","title":"Clear History","category":"References","icon":"$(clear-all)"},{"command":"references-view.clear","title":"Clear","category":"References","icon":"$(clear-all)"},{"command":"references-view.refresh","title":"Refresh","category":"References","icon":"$(refresh)"},{"command":"references-view.pickFromHistory","title":"Show History","category":"References"},{"command":"references-view.removeReferenceItem","title":"Dismiss","icon":"$(close)"},{"command":"references-view.copy","title":"Copy"},{"command":"references-view.copyAll","title":"Copy All"},{"command":"references-view.copyPath","title":"Copy Path"},{"command":"references-view.refind","title":"Rerun","icon":"$(refresh)"},{"command":"references-view.showCallHierarchy","title":"Show Call Hierarchy","category":"Calls"},{"command":"references-view.showOutgoingCalls","title":"Show Outgoing Calls","category":"Calls","icon":"$(call-incoming)"},{"command":"references-view.showIncomingCalls","title":"Show Incoming Calls","category":"Calls","icon":"$(call-outgoing)"},{"command":"references-view.removeCallItem","title":"Dismiss","icon":"$(close)"},{"command":"references-view.next","title":"Go to Next Reference","enablement":"references-view.canNavigate"},{"command":"references-view.prev","title":"Go to Previous Reference","enablement":"references-view.canNavigate"},{"command":"references-view.showTypeHierarchy","title":"Show Type Hierarchy","category":"Types"},{"command":"references-view.showSupertypes","title":"Show Supertypes","category":"Types","icon":"$(type-hierarchy-super)"},{"command":"references-view.showSubtypes","title":"Show Subtypes","category":"Types","icon":"$(type-hierarchy-sub)"},{"command":"references-view.removeTypeItem","title":"Dismiss","icon":"$(close)"}],"menus":{"editor/context":[{"command":"references-view.findReferences","when":"editorHasReferenceProvider","group":"0_navigation@1"},{"command":"references-view.findImplementations","when":"editorHasImplementationProvider","group":"0_navigation@2"},{"command":"references-view.showCallHierarchy","when":"editorHasCallHierarchyProvider","group":"0_navigation@3"},{"command":"references-view.showTypeHierarchy","when":"editorHasTypeHierarchyProvider","group":"0_navigation@4"}],"view/title":[{"command":"references-view.clear","group":"navigation@3","when":"view == references-view.tree && reference-list.hasResult"},{"command":"references-view.clearHistory","group":"navigation@3","when":"view == references-view.tree && reference-list.hasHistory && !reference-list.hasResult"},{"command":"references-view.refresh","group":"navigation@2","when":"view == references-view.tree && reference-list.hasResult"},{"command":"references-view.showOutgoingCalls","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == callHierarchy && references-view.callHierarchyMode == showIncoming"},{"command":"references-view.showIncomingCalls","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == callHierarchy && references-view.callHierarchyMode == showOutgoing"},{"command":"references-view.showSupertypes","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == typeHierarchy && references-view.typeHierarchyMode != supertypes"},{"command":"references-view.showSubtypes","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == typeHierarchy && references-view.typeHierarchyMode != subtypes"}],"view/item/context":[{"command":"references-view.removeReferenceItem","group":"inline","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.removeCallItem","group":"inline","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.removeTypeItem","group":"inline","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.refind","group":"inline","when":"view == references-view.tree && viewItem == history-item"},{"command":"references-view.removeReferenceItem","group":"1","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.removeCallItem","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.removeTypeItem","group":"1","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.refind","group":"1","when":"view == references-view.tree && viewItem == history-item"},{"command":"references-view.copy","group":"2@1","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.copyPath","group":"2@2","when":"view == references-view.tree && viewItem == file-item"},{"command":"references-view.copyAll","group":"2@3","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.showOutgoingCalls","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.showIncomingCalls","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.showSupertypes","group":"1","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.showSubtypes","group":"1","when":"view == references-view.tree && viewItem == type-item"}],"commandPalette":[{"command":"references-view.removeReferenceItem","when":"never"},{"command":"references-view.removeCallItem","when":"never"},{"command":"references-view.removeTypeItem","when":"never"},{"command":"references-view.copy","when":"never"},{"command":"references-view.copyAll","when":"never"},{"command":"references-view.copyPath","when":"never"},{"command":"references-view.refind","when":"never"},{"command":"references-view.findReferences","when":"editorHasReferenceProvider"},{"command":"references-view.clear","when":"reference-list.hasResult"},{"command":"references-view.clearHistory","when":"reference-list.isActive && !reference-list.hasResult"},{"command":"references-view.refresh","when":"reference-list.hasResult"},{"command":"references-view.pickFromHistory","when":"reference-list.isActive"},{"command":"references-view.next","when":"never"},{"command":"references-view.prev","when":"never"}]},"keybindings":[{"command":"references-view.findReferences","when":"editorHasReferenceProvider","key":"shift+alt+f12"},{"command":"references-view.next","when":"reference-list.hasResult","key":"f4"},{"command":"references-view.prev","when":"reference-list.hasResult","key":"shift+f4"},{"command":"references-view.showCallHierarchy","when":"editorHasCallHierarchyProvider","key":"shift+alt+h"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/references-view","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.restructuredtext"},"manifest":{"name":"restructuredtext","displayName":"reStructuredText Language Basics","description":"Provides syntax highlighting in reStructuredText files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin trond-snekvik/vscode-rst syntaxes/rst.tmLanguage.json ./syntaxes/rst.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"restructuredtext","aliases":["reStructuredText"],"configuration":"./language-configuration.json","extensions":[".rst"]}],"grammars":[{"language":"restructuredtext","scopeName":"source.rst","path":"./syntaxes/rst.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/restructuredtext","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ruby"},"manifest":{"name":"ruby","displayName":"Ruby Language Basics","description":"Provides syntax highlighting and bracket matching in Ruby files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin Shopify/ruby-lsp vscode/grammars/ruby.cson.json ./syntaxes/ruby.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"ruby","extensions":[".rb",".rbx",".rjs",".gemspec",".rake",".ru",".erb",".podspec",".rbi"],"filenames":["rakefile","gemfile","guardfile","podfile","capfile","cheffile","hobofile","vagrantfile","appraisals","rantfile","berksfile","berksfile.lock","thorfile","puppetfile","dangerfile","brewfile","fastfile","appfile","deliverfile","matchfile","scanfile","snapfile","gymfile"],"aliases":["Ruby","rb"],"firstLine":"^#!\\s*/.*\\bruby\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"ruby","scopeName":"source.ruby","path":"./syntaxes/ruby.tmLanguage.json"}],"configurationDefaults":{"[ruby]":{"editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/ruby","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.rust"},"manifest":{"name":"rust","displayName":"Rust Language Basics","description":"Provides syntax highlighting and bracket matching in Rust files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"rust","extensions":[".rs"],"aliases":["Rust","rust"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"rust","path":"./syntaxes/rust.tmLanguage.json","scopeName":"source.rust"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/rust","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.scss"},"manifest":{"name":"scss","displayName":"SCSS Language Basics","description":"Provides syntax highlighting, bracket matching and folding in SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-sass grammars/scss.cson ./syntaxes/scss.tmLanguage.json grammars/sassdoc.cson ./syntaxes/sassdoc.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"scss","aliases":["SCSS","scss"],"extensions":[".scss"],"mimetypes":["text/x-scss","text/scss"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"scss","scopeName":"source.css.scss","path":"./syntaxes/scss.tmLanguage.json"},{"scopeName":"source.sassdoc","path":"./syntaxes/sassdoc.tmLanguage.json"}],"problemMatchers":[{"name":"node-sass","label":"Node Sass Compiler","owner":"node-sass","fileLocation":"absolute","pattern":[{"regexp":"^{$"},{"regexp":"\\s*\"status\":\\s\\d+,"},{"regexp":"\\s*\"file\":\\s\"(.*)\",","file":1},{"regexp":"\\s*\"line\":\\s(\\d+),","line":1},{"regexp":"\\s*\"column\":\\s(\\d+),","column":1},{"regexp":"\\s*\"message\":\\s\"(.*)\",","message":1},{"regexp":"\\s*\"formatted\":\\s(.*)"},{"regexp":"^}$"}]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/scss","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.search-result"},"manifest":{"name":"search-result","displayName":"Search Result","description":"Provides syntax highlighting and language features for tabbed search results.","version":"10.0.0","publisher":"vscode","license":"MIT","icon":"images/icon.png","engines":{"vscode":"^1.39.0"},"main":"./dist/extension.js","browser":"./dist/browser/extension","activationEvents":["onLanguage:search-result"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["documentFiltersExclusive"],"contributes":{"configurationDefaults":{"[search-result]":{"editor.lineNumbers":"off"}},"languages":[{"id":"search-result","extensions":[".code-search"],"aliases":["Search Result"]}],"grammars":[{"language":"search-result","scopeName":"text.searchResult","path":"./syntaxes/searchResult.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["documentFiltersExclusive"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/search-result","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.shaderlab"},"manifest":{"name":"shaderlab","displayName":"Shaderlab Language Basics","description":"Provides syntax highlighting and bracket matching in Shaderlab files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin tgjones/shaders-tmLanguage grammars/shaderlab.json ./syntaxes/shaderlab.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"shaderlab","extensions":[".shader"],"aliases":["ShaderLab","shaderlab"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"shaderlab","path":"./syntaxes/shaderlab.tmLanguage.json","scopeName":"source.shaderlab"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/shaderlab","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.shellscript"},"manifest":{"name":"shellscript","displayName":"Shell Script Language Basics","description":"Provides syntax highlighting and bracket matching in Shell Script files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin jeff-hykin/better-shell-syntax autogenerated/shell.tmLanguage.json ./syntaxes/shell-unix-bash.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"shellscript","aliases":["Shell Script","shellscript","bash","fish","sh","zsh","ksh","csh"],"extensions":[".sh",".bash",".bashrc",".bash_aliases",".bash_profile",".bash_login",".ebuild",".eclass",".profile",".bash_logout",".xprofile",".xsession",".xsessionrc",".Xsession",".zsh",".zshrc",".zprofile",".zlogin",".zlogout",".zshenv",".zsh-theme",".fish",".ksh",".csh",".cshrc",".tcshrc",".yashrc",".yash_profile"],"filenames":["APKBUILD","PKGBUILD",".envrc",".hushlogin","zshrc","zshenv","zlogin","zprofile","zlogout","bashrc_Apple_Terminal","zshrc_Apple_Terminal"],"firstLine":"^#!.*\\b(bash|fish|zsh|sh|ksh|dtksh|pdksh|mksh|ash|dash|yash|sh|csh|jcsh|tcsh|itcsh).*|^#\\s*-\\*-[^*]*mode:\\s*shell-script[^*]*-\\*-","configuration":"./language-configuration.json","mimetypes":["text/x-shellscript"]}],"grammars":[{"language":"shellscript","scopeName":"source.shell","path":"./syntaxes/shell-unix-bash.tmLanguage.json","balancedBracketScopes":["*"],"unbalancedBracketScopes":["meta.scope.case-pattern.shell"]}],"configurationDefaults":{"[shellscript]":{"files.eol":"\n","editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/shellscript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.simple-browser"},"manifest":{"name":"simple-browser","displayName":"Simple Browser","description":"A very basic built-in webview for displaying web content.","enabledApiProposals":["externalUriOpener"],"version":"10.0.0","icon":"media/icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension","categories":["Other"],"extensionKind":["ui","workspace"],"activationEvents":["onCommand:simpleBrowser.api.open","onOpenExternalUri:http","onOpenExternalUri:https","onWebviewPanel:simpleBrowser.view"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"commands":[{"command":"simpleBrowser.show","title":"Show","category":"Simple Browser"}],"menus":{"commandPalette":[{"command":"simpleBrowser.show","when":"isWeb"}]},"configuration":[{"title":"Simple Browser","properties":{"simpleBrowser.focusLockIndicator.enabled":{"type":"boolean","default":true,"title":"Focus Lock Indicator Enabled","description":"Enable/disable the floating indicator that shows when focused in the simple browser."}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["externalUriOpener"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/simple-browser","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.sql"},"manifest":{"name":"sql","displayName":"SQL Language Basics","description":"Provides syntax highlighting and bracket matching in SQL files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"sql","extensions":[".sql",".dsql"],"aliases":["MS SQL","T-SQL"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"sql","scopeName":"source.sql","path":"./syntaxes/sql.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/sql","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.swift"},"manifest":{"name":"swift","displayName":"Swift Language Basics","description":"Provides snippets, syntax highlighting and bracket matching in Swift files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin jtbandes/swift-tmlanguage Swift.tmLanguage.json ./syntaxes/swift.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"swift","aliases":["Swift","swift"],"extensions":[".swift"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"swift","scopeName":"source.swift","path":"./syntaxes/swift.tmLanguage.json"}],"snippets":[{"language":"swift","path":"./snippets/swift.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/swift","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.terminal-suggest"},"manifest":{"name":"terminal-suggest","publisher":"vscode","displayName":"Terminal Suggest for VS Code","description":"Extension to add terminal completions for zsh, bash, and fish terminals.","version":"1.0.1","private":true,"license":"MIT","icon":"./media/icon.png","engines":{"vscode":"^1.95.0"},"categories":["Other"],"enabledApiProposals":["terminalCompletionProvider","terminalShellEnv"],"contributes":{"commands":[{"command":"terminal.integrated.suggest.clearCachedGlobals","category":"Terminal","title":"Clear Suggest Cached Globals"}],"terminal":{"completionProviders":[{"description":"Show suggestions for commands, arguments, flags, and file paths based upon the Fig spec."}]}},"main":"./dist/terminalSuggestMain","activationEvents":["onTerminalShellIntegration:*"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalCompletionProvider","terminalShellEnv"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/terminal-suggest","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-abyss"},"manifest":{"name":"theme-abyss","displayName":"Abyss Theme","description":"Abyss theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Abyss","label":"Abyss","uiTheme":"vs-dark","path":"./themes/abyss-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-abyss","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-defaults"},"manifest":{"name":"theme-defaults","displayName":"Default Themes","description":"The default Visual Studio light and dark themes","categories":["Themes"],"version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"contributes":{"themes":[{"id":"Light 2026","label":"Light 2026","uiTheme":"vs","path":"./themes/2026-light.json"},{"id":"Dark 2026","label":"Dark 2026","uiTheme":"vs-dark","path":"./themes/2026-dark.json"},{"id":"Dark+","label":"Dark+","uiTheme":"vs-dark","path":"./themes/dark_plus.json"},{"id":"Dark Modern","label":"Dark Modern","uiTheme":"vs-dark","path":"./themes/dark_modern.json"},{"id":"Light+","label":"Light+","uiTheme":"vs","path":"./themes/light_plus.json"},{"id":"Light Modern","label":"Light Modern","uiTheme":"vs","path":"./themes/light_modern.json"},{"id":"Visual Studio Dark","label":"Dark (Visual Studio)","uiTheme":"vs-dark","path":"./themes/dark_vs.json"},{"id":"Visual Studio Light","label":"Light (Visual Studio)","uiTheme":"vs","path":"./themes/light_vs.json"},{"id":"Default High Contrast","label":"Dark High Contrast","uiTheme":"hc-black","path":"./themes/hc_black.json"},{"id":"Default High Contrast Light","label":"Light High Contrast","uiTheme":"hc-light","path":"./themes/hc_light.json"}],"iconThemes":[{"id":"vs-minimal","label":"Minimal (Visual Studio Code)","path":"./fileicons/vs_minimal-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-defaults","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-kimbie-dark"},"manifest":{"name":"theme-kimbie-dark","displayName":"Kimbie Dark Theme","description":"Kimbie dark theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Kimbie Dark","label":"Kimbie Dark","uiTheme":"vs-dark","path":"./themes/kimbie-dark-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-kimbie-dark","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vscode-modern-icons"},"manifest":{"name":"vscode-modern-icons","private":true,"version":"1.0.0","displayName":"VS Code Modern File Icons","description":"A modern file icon theme for Visual Studio Code","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"iconThemes":[{"id":"vscode-modern-icons","label":"VS Code Modern Icons","path":"./fileicons/vscode-modern-icons-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-modern-icons","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-monokai"},"manifest":{"name":"theme-monokai","displayName":"Monokai Theme","description":"Monokai theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Monokai","label":"Monokai","uiTheme":"vs-dark","path":"./themes/monokai-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-monokai","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-monokai-dimmed"},"manifest":{"name":"theme-monokai-dimmed","displayName":"Monokai Dimmed Theme","description":"Monokai dimmed theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Monokai Dimmed","label":"Monokai Dimmed","uiTheme":"vs-dark","path":"./themes/dimmed-monokai-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-monokai-dimmed","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-quietlight"},"manifest":{"name":"theme-quietlight","displayName":"Quiet Light Theme","description":"Quiet light theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Quiet Light","label":"Quiet Light","uiTheme":"vs","path":"./themes/quietlight-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-quietlight","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-red"},"manifest":{"name":"theme-red","displayName":"Red Theme","description":"Red theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Red","label":"Red","uiTheme":"vs-dark","path":"./themes/Red-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-red","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vscode-theme-seti"},"manifest":{"name":"vscode-theme-seti","private":true,"version":"10.0.0","displayName":"Seti File Icon Theme","description":"A file icon theme made out of the Seti UI file icons","publisher":"vscode","license":"MIT","icon":"icons/seti-circular-128x128.png","scripts":{"update":"node ./build/update-icon-theme.js"},"engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"iconThemes":[{"id":"vs-seti","label":"Seti (Visual Studio Code)","path":"./icons/vs-seti-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-seti","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-solarized-dark"},"manifest":{"name":"theme-solarized-dark","displayName":"Solarized Dark Theme","description":"Solarized dark theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Solarized Dark","label":"Solarized Dark","uiTheme":"vs-dark","path":"./themes/solarized-dark-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-solarized-dark","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-solarized-light"},"manifest":{"name":"theme-solarized-light","displayName":"Solarized Light Theme","description":"Solarized light theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Solarized Light","label":"Solarized Light","uiTheme":"vs","path":"./themes/solarized-light-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-solarized-light","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-tomorrow-night-blue"},"manifest":{"name":"theme-tomorrow-night-blue","displayName":"Tomorrow Night Blue Theme","description":"Tomorrow night blue theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Tomorrow Night Blue","label":"Tomorrow Night Blue","uiTheme":"vs-dark","path":"./themes/tomorrow-night-blue-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/theme-tomorrow-night-blue","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.tunnel-forwarding"},"manifest":{"name":"tunnel-forwarding","displayName":"Local Tunnel Port Forwarding","description":"Allows forwarding local ports to be accessible over the internet.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.82.0"},"icon":"media/icon.png","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["resolvers","tunnelFactory"],"activationEvents":["onTunnel"],"contributes":{"commands":[{"category":"Port Forwarding","command":"tunnel-forwarding.showLog","title":"Show Log","enablement":"tunnelForwardingHasLog"},{"category":"Port Forwarding","command":"tunnel-forwarding.restart","title":"Restart Forwarding System","enablement":"tunnelForwardingIsRunning"}]},"main":"./dist/extension","prettier":{"printWidth":100,"trailingComma":"all","singleQuote":true,"arrowParens":"avoid"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["resolvers","tunnelFactory"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/tunnel-forwarding","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.typescript"},"manifest":{"name":"typescript","description":"Provides snippets, syntax highlighting, bracket matching and folding in TypeScript files.","displayName":"TypeScript Language Basics","version":"10.0.0","author":"vscode","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"typescript","aliases":["TypeScript","ts","typescript"],"extensions":[".ts",".cts",".mts"],"firstLine":"^#!.*\\b(deno|bun|ts-node)\\b","configuration":"./language-configuration.json"},{"id":"typescriptreact","aliases":["TypeScript JSX","TypeScript React","tsx"],"extensions":[".tsx"],"configuration":"./language-configuration.json"},{"id":"jsonc","filenames":["tsconfig.json","jsconfig.json"],"filenamePatterns":["tsconfig.*.json","jsconfig.*.json","tsconfig-*.json","jsconfig-*.json"]},{"id":"json","extensions":[".tsbuildinfo"]}],"grammars":[{"language":"typescript","scopeName":"source.ts","path":"./syntaxes/TypeScript.tmLanguage.json","unbalancedBracketScopes":["keyword.operator.relational","storage.type.function.arrow","keyword.operator.bitwise.shift","meta.brace.angle","punctuation.definition.tag","keyword.operator.assignment.compound.bitwise.ts"],"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"language":"typescriptreact","scopeName":"source.tsx","path":"./syntaxes/TypeScriptReact.tmLanguage.json","unbalancedBracketScopes":["keyword.operator.relational","storage.type.function.arrow","keyword.operator.bitwise.shift","punctuation.definition.tag","keyword.operator.assignment.compound.bitwise.ts"],"embeddedLanguages":{"meta.tag.tsx":"jsx-tags","meta.tag.without-attributes.tsx":"jsx-tags","meta.tag.attributes.tsx":"typescriptreact","meta.embedded.expression.tsx":"typescriptreact"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"scopeName":"documentation.injection.ts","path":"./syntaxes/jsdoc.ts.injection.tmLanguage.json","injectTo":["source.ts","source.tsx"]},{"scopeName":"documentation.injection.js.jsx","path":"./syntaxes/jsdoc.js.injection.tmLanguage.json","injectTo":["source.js","source.js.jsx"]}],"semanticTokenScopes":[{"language":"typescript","scopes":{"property":["variable.other.property.ts"],"property.readonly":["variable.other.constant.property.ts"],"variable":["variable.other.readwrite.ts"],"variable.readonly":["variable.other.constant.object.ts"],"function":["entity.name.function.ts"],"namespace":["entity.name.type.module.ts"],"variable.defaultLibrary":["support.variable.ts"],"function.defaultLibrary":["support.function.ts"]}},{"language":"typescriptreact","scopes":{"property":["variable.other.property.tsx"],"property.readonly":["variable.other.constant.property.tsx"],"variable":["variable.other.readwrite.tsx"],"variable.readonly":["variable.other.constant.object.tsx"],"function":["entity.name.function.tsx"],"namespace":["entity.name.type.module.tsx"],"variable.defaultLibrary":["support.variable.tsx"],"function.defaultLibrary":["support.function.tsx"]}}],"snippets":[{"language":"typescript","path":"./snippets/typescript.code-snippets"},{"language":"typescriptreact","path":"./snippets/typescript.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/typescript-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.typescript-language-features"},"manifest":{"name":"typescript-language-features","description":"Provides rich language support for JavaScript and TypeScript.","displayName":"JavaScript and TypeScript Language Features","version":"10.0.0","author":"vscode","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["workspaceTrust","multiDocumentHighlightProvider","codeActionAI","codeActionRanges","editorHoverVerbosityLevel"],"capabilities":{"virtualWorkspaces":{"supported":"limited","description":"In virtual workspaces, resolving and finding references across files is not supported."},"untrustedWorkspaces":{"supported":false,"description":"The extension requires workspace trust when the workspace version is used because it executes code specified by the workspace."}},"engines":{"vscode":"^1.30.0"},"icon":"media/icon.png","categories":["Programming Languages"],"activationEvents":["onLanguage:javascript","onLanguage:javascriptreact","onLanguage:typescript","onLanguage:typescriptreact","onLanguage:jsx-tags","onCommand:typescript.tsserverRequest","onCommand:_typescript.configurePlugin","onCommand:_typescript.learnMoreAboutRefactorings","onCommand:typescript.fileReferences","onTaskType:typescript","onLanguage:jsonc","onWalkthrough:nodejsWelcome"],"main":"./dist/extension","browser":"./dist/browser/extension","contributes":{"jsonValidation":[{"fileMatch":"package.json","url":"./schemas/package.schema.json"},{"fileMatch":"tsconfig.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"tsconfig.*.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig-*.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"tsconfig-*.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig.*.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"typings.json","url":"https://www.schemastore.org/typings"},{"fileMatch":".bowerrc","url":"https://www.schemastore.org/bowerrc"},{"fileMatch":".babelrc","url":"https://www.schemastore.org/babelrc"},{"fileMatch":".babelrc.json","url":"https://www.schemastore.org/babelrc"},{"fileMatch":"babel.config.json","url":"https://www.schemastore.org/babelrc"},{"fileMatch":"jsconfig.json","url":"https://www.schemastore.org/jsconfig"},{"fileMatch":"jsconfig.json","url":"./schemas/jsconfig.schema.json"},{"fileMatch":"jsconfig.*.json","url":"https://www.schemastore.org/jsconfig"},{"fileMatch":"jsconfig.*.json","url":"./schemas/jsconfig.schema.json"},{"fileMatch":".swcrc","url":"https://swc.rs/schema.json"},{"fileMatch":"typedoc.json","url":"https://typedoc.org/schema.json"}],"configuration":[{"type":"object","properties":{"js/ts.tsdk.path":{"type":"string","markdownDescription":"Specifies the folder path to the tsserver and `lib*.d.ts` files under a TypeScript install to use for IntelliSense, for example: `./node_modules/typescript/lib`.\n\n- When specified as a user setting, the TypeScript version from `js/ts.tsdk.path` automatically replaces the built-in TypeScript version.\n- When specified as a workspace setting, `js/ts.tsdk.path` allows you to switch to use that workspace version of TypeScript for IntelliSense with the `TypeScript: Select TypeScript version` command.\n\nSee the [TypeScript documentation](https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-newer-typescript-versions) for more detail about managing TypeScript versions.","scope":"window","order":1,"keywords":["TypeScript"]},"typescript.tsdk":{"type":"string","markdownDescription":"Specifies the folder path to the tsserver and `lib*.d.ts` files under a TypeScript install to use for IntelliSense, for example: `./node_modules/typescript/lib`.\n\n- When specified as a user setting, the TypeScript version from `js/ts.tsdk.path` automatically replaces the built-in TypeScript version.\n- When specified as a workspace setting, `js/ts.tsdk.path` allows you to switch to use that workspace version of TypeScript for IntelliSense with the `TypeScript: Select TypeScript version` command.\n\nSee the [TypeScript documentation](https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-newer-typescript-versions) for more detail about managing TypeScript versions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsdk.path#` instead.","scope":"window","order":1},"js/ts.experimental.useTsgo":{"type":"boolean","default":false,"markdownDescription":"Disables TypeScript and JavaScript language features to allow usage of the TypeScript Go experimental extension. Requires TypeScript Go to be installed and configured. Requires reloading extensions after changing this setting.","scope":"window","order":2,"keywords":["TypeScript","experimental"]},"typescript.experimental.useTsgo":{"type":"boolean","default":false,"markdownDescription":"Disables TypeScript and JavaScript language features to allow usage of the TypeScript Go experimental extension. Requires TypeScript Go to be installed and configured. Requires reloading extensions after changing this setting.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.experimental.useTsgo#` instead.","scope":"window","order":2,"keywords":["experimental"]},"js/ts.locale":{"type":"string","default":"auto","enum":["auto","de","es","en","fr","it","ja","ko","ru","zh-CN","zh-TW"],"enumDescriptions":["Use VS Code's configured display language.","Deutsch","español","English","français","italiano","日本語","한국어","русский","中文(简体)","中文(繁體)"],"markdownDescription":"Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VS Code's locale.","scope":"window","order":3,"keywords":["TypeScript"]},"typescript.locale":{"type":"string","default":"auto","enum":["auto","de","es","en","fr","it","ja","ko","ru","zh-CN","zh-TW"],"enumDescriptions":["Use VS Code's configured display language.","Deutsch","español","English","français","italiano","日本語","한국어","русский","中文(简体)","中文(繁體)"],"markdownDescription":"Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VS Code's locale.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.locale#` instead.","scope":"window","order":3},"js/ts.tsc.autoDetect":{"type":"string","default":"on","enum":["on","off","build","watch"],"markdownEnumDescriptions":["Create both build and watch tasks.","Disable this feature.","Only create single run compile tasks.","Only create compile and watch tasks."],"description":"Controls auto detection of tsc tasks.","scope":"window","order":4,"keywords":["TypeScript"]},"typescript.tsc.autoDetect":{"type":"string","default":"on","enum":["on","off","build","watch"],"markdownEnumDescriptions":["Create both build and watch tasks.","Disable this feature.","Only create single run compile tasks.","Only create compile and watch tasks."],"description":"Controls auto detection of tsc tasks.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsc.autoDetect#` instead.","scope":"window","order":4}}},{"type":"object","title":"Preferences","properties":{"js/ts.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.quoteStyle#` instead.","scope":"language-overridable"},"typescript.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.quoteStyle#` instead.","scope":"language-overridable"},"js/ts.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifier#` instead.","scope":"language-overridable"},"typescript.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifier#` instead.","scope":"language-overridable"},"js/ts.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifierEnding#` instead.","scope":"language-overridable"},"typescript.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifierEnding#` instead.","scope":"language-overridable"},"js/ts.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#js/ts.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#javascript.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.jsxAttributeCompletionStyle#` instead.","scope":"language-overridable"},"typescript.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#typescript.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.jsxAttributeCompletionStyle#` instead.","scope":"language-overridable"},"js/ts.preferences.includePackageJsonAutoImports":{"type":"string","enum":["auto","on","off"],"enumDescriptions":["Search dependencies based on estimated performance impact.","Always search dependencies.","Never search dependencies."],"default":"auto","markdownDescription":"Enable/disable searching `package.json` dependencies for available auto imports.","scope":"window","keywords":["TypeScript"]},"typescript.preferences.includePackageJsonAutoImports":{"type":"string","enum":["auto","on","off"],"enumDescriptions":["Search dependencies based on estimated performance impact.","Always search dependencies.","Never search dependencies."],"default":"auto","markdownDescription":"Enable/disable searching `package.json` dependencies for available auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.includePackageJsonAutoImports#` instead.","scope":"window"},"js/ts.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","scope":"resource","keywords":["JavaScript","TypeScript"]},"javascript.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportFileExcludePatterns#` instead.","scope":"resource"},"typescript.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportFileExcludePatterns#` instead.","scope":"resource"},"js/ts.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","scope":"resource","keywords":["JavaScript","TypeScript"]},"javascript.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportSpecifierExcludeRegexes#` instead.","scope":"resource"},"typescript.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportSpecifierExcludeRegexes#` instead.","scope":"resource"},"js/ts.preferences.preferTypeOnlyAutoImports":{"type":"boolean","default":false,"markdownDescription":"Include the `type` keyword in auto-imports whenever possible. Requires using TypeScript 5.3+ in the workspace.","scope":"resource","keywords":["TypeScript"]},"typescript.preferences.preferTypeOnlyAutoImports":{"type":"boolean","default":false,"markdownDescription":"Include the `type` keyword in auto-imports whenever possible. Requires using TypeScript 5.3+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.preferTypeOnlyAutoImports#` instead.","scope":"resource"},"js/ts.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.useAliasesForRenames#` instead.","scope":"language-overridable"},"typescript.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.useAliasesForRenames#` instead.","scope":"language-overridable"},"js/ts.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.renameMatchingJsxTags#` instead.","scope":"language-overridable"},"typescript.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.renameMatchingJsxTags#` instead.","scope":"language-overridable"},"js/ts.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","Sort imports case-insensitively.","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}},"keywords":["JavaScript","TypeScript"]},"javascript.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.organizeImports#` instead.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","Sort imports case-insensitively.","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}}},"typescript.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.organizeImports#` instead.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","%typescript.preferences.organizeImports.caseSensitivity.insensitive","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}}}}},{"type":"object","title":"Formatting","properties":{"js/ts.format.enabled":{"type":"boolean","default":true,"description":"Enable/disable the default JavaScript and TypeScript formatter.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.enable":{"type":"boolean","default":true,"description":"Enable/disable default JavaScript formatter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.enabled#` instead.","scope":"window"},"typescript.format.enable":{"type":"boolean","default":true,"description":"Enable/disable default TypeScript formatter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.enabled#` instead.","scope":"window"},"js/ts.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterCommaDelimiter#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterCommaDelimiter#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterConstructor#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterConstructor#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterSemicolonInForStatements#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterSemicolonInForStatements#` instead.","scope":"resource"},"js/ts.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeAndAfterBinaryOperators#` instead.","scope":"resource"},"typescript.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeAndAfterBinaryOperators#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions#` instead.","scope":"resource"},"js/ts.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeFunctionParenthesis#` instead.","scope":"resource"},"typescript.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeFunctionParenthesis#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterTypeAssertion":{"type":"boolean","default":false,"description":"Defines space handling after type assertions in TypeScript.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.format.insertSpaceAfterTypeAssertion":{"type":"boolean","default":false,"description":"Defines space handling after type assertions in TypeScript.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterTypeAssertion#` instead.","scope":"resource"},"js/ts.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForFunctions#` instead.","scope":"resource"},"typescript.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForFunctions#` instead.","scope":"resource"},"js/ts.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForControlBlocks#` instead.","scope":"resource"},"typescript.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForControlBlocks#` instead.","scope":"resource"},"js/ts.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","scope":"language-overridable","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."],"keywords":["JavaScript","TypeScript"]},"javascript.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.semicolons#` instead.","scope":"resource","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."]},"typescript.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.semicolons#` instead.","scope":"resource","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."]},"js/ts.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.indentSwitchCase#` instead.","scope":"resource"},"typescript.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.indentSwitchCase#` instead.","scope":"resource"}}},{"type":"object","title":"Validation","properties":{"js/ts.validate.enabled":{"type":"boolean","default":true,"description":"Enable/disable JavaScript and TypeScript validation.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"typescript.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable TypeScript validation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.validate.enabled#` instead.","scope":"window"},"javascript.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable JavaScript validation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.validate.enabled#` instead.","scope":"window"},"js/ts.reportStyleChecksAsWarnings":{"type":"boolean","default":true,"description":"Report style checks as warnings.","scope":"window","keywords":["TypeScript"]},"typescript.reportStyleChecksAsWarnings":{"type":"boolean","default":true,"description":"Report style checks as warnings.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.reportStyleChecksAsWarnings#` instead.","scope":"window"},"js/ts.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for JavaScript and TypeScript files in the editor.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for JavaScript files in the editor.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggestionActions.enabled#` instead.","scope":"resource"},"typescript.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for TypeScript files in the editor.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggestionActions.enabled#` instead.","scope":"resource"},"js/ts.tsserver.experimental.enableProjectDiagnostics":{"type":"boolean","default":false,"description":"Enables project wide error reporting.","scope":"window","keywords":["JavaScript","TypeScript","experimental"]},"typescript.tsserver.experimental.enableProjectDiagnostics":{"type":"boolean","default":false,"description":"Enables project wide error reporting.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.experimental.enableProjectDiagnostics#` instead.","scope":"window","keywords":["experimental"]}}},{"type":"object","title":"Implicit Project Config","properties":{"js/ts.implicitProjectConfig.module":{"type":"string","markdownDescription":"Sets the module system for the program. See more: https://www.typescriptlang.org/tsconfig#module.","default":"ESNext","enum":["CommonJS","AMD","System","UMD","ES6","ES2015","ES2020","ESNext","None","ES2022","Node12","NodeNext"],"scope":"window"},"js/ts.implicitProjectConfig.target":{"type":"string","default":"ES2024","markdownDescription":"Set target JavaScript language version for emitted JavaScript and include library declarations. See more: https://www.typescriptlang.org/tsconfig#target.","enum":["ES3","ES5","ES6","ES2015","ES2016","ES2017","ES2018","ES2019","ES2020","ES2021","ES2022","ES2023","ES2024","ESNext"],"scope":"window"},"js/ts.implicitProjectConfig.checkJs":{"type":"boolean","default":false,"markdownDescription":"Enable/disable semantic checking of JavaScript files. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.experimentalDecorators":{"type":"boolean","default":false,"markdownDescription":"Enable/disable `experimentalDecorators` in JavaScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strictNullChecks":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict null checks](https://www.typescriptlang.org/tsconfig#strictNullChecks) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strictFunctionTypes":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict function types](https://www.typescriptlang.org/tsconfig#strictFunctionTypes) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strict":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict mode](https://www.typescriptlang.org/tsconfig#strict) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"}}},{"type":"object","title":"Language Features","properties":{"js/ts.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","scope":"resource","keywords":["JavaScript","TypeScript"]},"typescript.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnFileMove.enabled#` instead.","scope":"resource"},"javascript.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnFileMove.enabled#` instead.","scope":"resource"},"js/ts.autoClosingTags.enabled":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"typescript.autoClosingTags":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.autoClosingTags.enabled#` instead.","scope":"language-overridable"},"javascript.autoClosingTags":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.autoClosingTags.enabled#` instead.","scope":"language-overridable"},"js/ts.workspaceSymbols.scope":{"type":"string","enum":["allOpenProjects","currentProject"],"enumDescriptions":["Search all open JavaScript or TypeScript projects for symbols.","Only search for symbols in the current JavaScript or TypeScript project."],"default":"allOpenProjects","markdownDescription":"Controls which files are searched by [Go to Symbol in Workspace](https://code.visualstudio.com/docs/editor/editingevolved#_open-symbol-by-name).","scope":"window","keywords":["TypeScript"]},"typescript.workspaceSymbols.scope":{"type":"string","enum":["allOpenProjects","currentProject"],"enumDescriptions":["Search all open JavaScript or TypeScript projects for symbols.","Only search for symbols in the current JavaScript or TypeScript project."],"default":"allOpenProjects","markdownDescription":"Controls which files are searched by [Go to Symbol in Workspace](https://code.visualstudio.com/docs/editor/editingevolved#_open-symbol-by-name).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.workspaceSymbols.scope#` instead.","scope":"window"},"js/ts.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","scope":"window","keywords":["JavaScript","TypeScript"]},"typescript.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferGoToSourceDefinition#` instead.","scope":"window"},"javascript.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferGoToSourceDefinition#` instead.","scope":"window"},"js/ts.workspaceSymbols.excludeLibrarySymbols":{"type":"boolean","default":true,"markdownDescription":"Exclude symbols that come from library files in `Go to Symbol in Workspace` results. Requires using TypeScript 5.3+ in the workspace.","scope":"window","keywords":["TypeScript"]},"typescript.workspaceSymbols.excludeLibrarySymbols":{"type":"boolean","default":true,"markdownDescription":"Exclude symbols that come from library files in `Go to Symbol in Workspace` results. Requires using TypeScript 5.3+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.workspaceSymbols.excludeLibrarySymbols#` instead.","scope":"window"},"js/ts.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","keywords":["JavaScript","TypeScript"]},"javascript.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnPaste.enabled#` instead."},"typescript.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnPaste.enabled#` instead."},"js/ts.hover.maximumLength":{"type":"number","default":500,"description":"The maximum number of characters in a hover. If the hover is longer than this, it will be truncated. Requires TypeScript 5.9+.","scope":"resource"}}},{"type":"object","title":"Suggestions","properties":{"js/ts.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.enabled#` instead.","scope":"language-overridable"},"typescript.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.enabled#` instead.","scope":"language-overridable"},"js/ts.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.autoImports#` instead.","scope":"resource"},"typescript.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.autoImports#` instead.","scope":"resource"},"js/ts.suggest.names":{"type":"boolean","default":true,"markdownDescription":"Enable/disable including unique names from the file in JavaScript suggestions. Note that name suggestions are always disabled in JavaScript code that is semantically checked using `@ts-check` or `checkJs`.","scope":"language-overridable","keywords":["JavaScript"]},"javascript.suggest.names":{"type":"boolean","default":true,"markdownDescription":"Enable/disable including unique names from the file in JavaScript suggestions. Note that name suggestions are always disabled in JavaScript code that is semantically checked using `@ts-check` or `checkJs`.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.names#` instead.","scope":"resource"},"js/ts.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.completeFunctionCalls#` instead.","scope":"resource"},"typescript.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.completeFunctionCalls#` instead.","scope":"resource"},"js/ts.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.paths#` instead.","scope":"resource"},"typescript.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.paths#` instead.","scope":"resource"},"js/ts.suggest.jsdoc.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.completeJSDocs":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.enabled#` instead.","scope":"language-overridable"},"typescript.suggest.completeJSDocs":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.enabled#` instead.","scope":"language-overridable"},"js/ts.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.generateReturns#` instead.","scope":"language-overridable"},"typescript.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.generateReturns#` instead.","scope":"language-overridable"},"js/ts.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeAutomaticOptionalChainCompletions#` instead.","scope":"resource"},"typescript.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeAutomaticOptionalChainCompletions#` instead.","scope":"resource"},"js/ts.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeCompletionsForImportStatements#` instead.","scope":"resource"},"typescript.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeCompletionsForImportStatements#` instead.","scope":"resource"},"js/ts.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.classMemberSnippets.enabled#` instead.","scope":"resource"},"typescript.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.classMemberSnippets.enabled#` instead.","scope":"resource"},"js/ts.suggest.objectLiteralMethodSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for methods in object literals.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.suggest.objectLiteralMethodSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for methods in object literals.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.objectLiteralMethodSnippets.enabled#` instead.","scope":"resource"}}},{"type":"object","title":"CodeLens","properties":{"js/ts.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.enabled#` instead.","scope":"window"},"typescript.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.enabled#` instead.","scope":"window"},"js/ts.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.showOnAllFunctions#` instead.","scope":"window"},"typescript.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.showOnAllFunctions#` instead.","scope":"window"},"js/ts.implementationsCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable implementations CodeLens in TypeScript files. This CodeLens shows the implementers of TypeScript interfaces.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable implementations CodeLens in TypeScript files. This CodeLens shows the implementers of TypeScript interfaces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.enabled#` instead.","scope":"window"},"js/ts.implementationsCodeLens.showOnInterfaceMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) on TypeScript interface methods.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.showOnInterfaceMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) on TypeScript interface methods.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.showOnInterfaceMethods#` instead.","scope":"window"},"js/ts.implementationsCodeLens.showOnAllClassMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable showing [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) above all TypeScript class methods instead of only on abstract methods.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.showOnAllClassMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable showing [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) above all TypeScript class methods instead of only on abstract methods.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.showOnAllClassMethods#` instead.","scope":"window"}}},{"type":"object","title":"Inlay Hints","properties":{"js/ts.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.enabled#` instead.","scope":"resource"},"typescript.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName#` instead.","scope":"resource"},"typescript.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName#` instead.","scope":"resource"},"js/ts.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName#` instead.","scope":"resource"},"typescript.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName#` instead.","scope":"resource"},"js/ts.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.propertyDeclarationTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.propertyDeclarationTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.functionLikeReturnTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.functionLikeReturnTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.enumMemberValues.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for member values in enum declarations:\n```typescript\n\nenum MyValue {\n\tA /* = 0 */;\n\tB /* = 1 */;\n}\n \n```","scope":"language-overridable","keywords":["TypeScript"]},"typescript.inlayHints.enumMemberValues.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for member values in enum declarations:\n```typescript\n\nenum MyValue {\n\tA /* = 0 */;\n\tB /* = 1 */;\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.enumMemberValues.enabled#` instead.","scope":"resource"}}},{"type":"object","title":"TS Server Advanced Settings","properties":{"js/ts.tsdk.promptToUseWorkspaceVersion":{"type":"boolean","default":false,"description":"Enables prompting of users to use the TypeScript version configured in the workspace for Intellisense.","scope":"window","keywords":["TypeScript"]},"typescript.enablePromptUseWorkspaceTsdk":{"type":"boolean","default":false,"description":"Enables prompting of users to use the TypeScript version configured in the workspace for Intellisense.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsdk.promptToUseWorkspaceVersion#` instead.","scope":"window"},"js/ts.tsserver.automaticTypeAcquisition.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable [automatic type acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition). Automatic type acquisition fetches `@types` packages from npm to improve IntelliSense for external libraries.","scope":"window","keywords":["TypeScript","usesOnlineServices"]},"typescript.disableAutomaticTypeAcquisition":{"type":"boolean","default":false,"markdownDescription":"Disables [automatic type acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition). Automatic type acquisition fetches `@types` packages from npm to improve IntelliSense for external libraries.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.automaticTypeAcquisition.enabled#` instead.","scope":"window","keywords":["usesOnlineServices"]},"js/ts.tsserver.node.path":{"type":"string","markdownDescription":"Run TS Server on a custom Node installation. This can be a path to a Node executable, or `node` if you want VS Code to detect a Node installation.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.nodePath":{"type":"string","markdownDescription":"Run TS Server on a custom Node installation. This can be a path to a Node executable, or `node` if you want VS Code to detect a Node installation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.node.path#` instead.","scope":"window"},"js/ts.tsserver.npm.path":{"type":"string","markdownDescription":"Specifies the path to the npm executable used for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","scope":"machine","keywords":["TypeScript"]},"typescript.npm":{"type":"string","markdownDescription":"Specifies the path to the npm executable used for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.npm.path#` instead.","scope":"machine"},"js/ts.tsserver.checkNpmIsInstalled":{"type":"boolean","default":true,"markdownDescription":"Check if npm is installed for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","scope":"window","keywords":["TypeScript"]},"typescript.check.npmIsInstalled":{"type":"boolean","default":true,"markdownDescription":"Check if npm is installed for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.checkNpmIsInstalled#` instead.","scope":"window"},"js/ts.tsserver.web.projectWideIntellisense.enabled":{"type":"boolean","default":true,"description":"Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.projectWideIntellisense.enabled":{"type":"boolean","default":true,"description":"Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.projectWideIntellisense.enabled#` instead.","scope":"window"},"js/ts.tsserver.web.projectWideIntellisense.suppressSemanticErrors":{"type":"boolean","default":false,"description":"Suppresses semantic errors on web even when project wide IntelliSense is enabled. This is always on when project wide IntelliSense is not enabled or available. See `#js/ts.tsserver.web.projectWideIntellisense.enabled#`","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.projectWideIntellisense.suppressSemanticErrors":{"type":"boolean","default":false,"description":"Suppresses semantic errors on web even when project wide IntelliSense is enabled. This is always on when project wide IntelliSense is not enabled or available. See `#js/ts.tsserver.web.projectWideIntellisense.enabled#`","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.projectWideIntellisense.suppressSemanticErrors#` instead.","scope":"window"},"js/ts.tsserver.web.typeAcquisition.enabled":{"type":"boolean","default":true,"description":"Enable/disable package acquisition on the web. This enables IntelliSense for imported packages. Requires `#js/ts.tsserver.web.projectWideIntellisense.enabled#`. Currently not supported for Safari.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.typeAcquisition.enabled":{"type":"boolean","default":true,"description":"Enable/disable package acquisition on the web. This enables IntelliSense for imported packages. Requires `#js/ts.tsserver.web.projectWideIntellisense.enabled#`. Currently not supported for Safari.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.typeAcquisition.enabled#` instead.","scope":"window"},"js/ts.tsserver.useSyntaxServer":{"type":"string","scope":"window","description":"Controls if TypeScript launches a dedicated server to more quickly handle syntax related operations, such as computing code folding.","default":"auto","enum":["always","never","auto"],"enumDescriptions":["Use a lighter weight syntax server to handle all IntelliSense operations. This disables project-wide features including auto-imports, cross-file completions, and go to definition for symbols in other files. Only use this for very large projects where performance is critical.","Don't use a dedicated syntax server. Use a single server to handle all IntelliSense operations.","Spawn both a full server and a lighter weight server dedicated to syntax operations. The syntax server is used to speed up syntax operations and provide IntelliSense while projects are loading."],"keywords":["TypeScript"]},"typescript.tsserver.useSyntaxServer":{"type":"string","scope":"window","description":"Controls if TypeScript launches a dedicated server to more quickly handle syntax related operations, such as computing code folding.","default":"auto","enum":["always","never","auto"],"enumDescriptions":["Use a lighter weight syntax server to handle all IntelliSense operations. This disables project-wide features including auto-imports, cross-file completions, and go to definition for symbols in other files. Only use this for very large projects where performance is critical.","Don't use a dedicated syntax server. Use a single server to handle all IntelliSense operations.","Spawn both a full server and a lighter weight server dedicated to syntax operations. The syntax server is used to speed up syntax operations and provide IntelliSense while projects are loading."],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.useSyntaxServer#` instead."},"js/ts.tsserver.maxMemory":{"type":"number","default":3072,"markdownDescription":"The maximum amount of memory (in MB) to allocate to the TypeScript server process. To use a memory limit greater than 4 GB, use `#js/ts.tsserver.node.path#` to run TS Server with a custom Node installation.","scope":"window","keywords":["TypeScript"]},"js/ts.tsserver.diagnosticDir":{"type":"string","markdownDescription":"Directory where TypeScript server writes Node diagnostic output by passing `--diagnostic-dir`.","scope":"machine","keywords":["TypeScript","diagnostic","memory"]},"typescript.tsserver.maxTsServerMemory":{"type":"number","default":3072,"markdownDescription":"The maximum amount of memory (in MB) to allocate to the TypeScript server process. To use a memory limit greater than 4 GB, use `#js/ts.tsserver.node.path#` to run TS Server with a custom Node installation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.maxMemory#` instead.","scope":"window"},"js/ts.tsserver.heapSnapshot":{"type":"number","default":0,"minimum":0,"markdownDescription":"Controls how many near-heap-limit snapshots TypeScript server writes by passing `--heapsnapshot-near-heap-limit`. Set to `0` to disable.","scope":"window","keywords":["TypeScript","memory","diagnostics"]},"js/ts.tsserver.heapProfile":{"type":"object","default":{"enabled":false},"markdownDescription":"Configures heap profiling for TypeScript server.","scope":"machine","properties":{"enabled":{"type":"boolean","default":false,"description":"Enable heap profiling for TypeScript server by passing `--heap-prof`."},"dir":{"type":"string","description":"Directory where TypeScript server writes heap profiles by passing `--heap-prof-dir`."},"interval":{"type":"number","minimum":1,"description":"Sampling interval in bytes for TypeScript server heap profiling by passing `--heap-prof-interval`."}},"keywords":["TypeScript","memory","heap","profile"]},"js/ts.tsserver.watchOptions":{"description":"Configure which watching strategies should be used to keep track of files and directories.","scope":"window","default":"vscode","oneOf":[{"type":"string","const":"vscode","description":"Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace."},{"type":"object","properties":{"watchFile":{"type":"string","description":"Strategy for how individual files are watched.","enum":["fixedChunkSizePolling","fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling","useFsEvents","useFsEventsOnParentDirectory"],"enumDescriptions":["Polls files in chunks at regular interval.","Check every file for changes several times a second at a fixed interval.","Check every file for changes several times a second, but use heuristics to check certain types of files less frequently than others.","Use a dynamic queue where less-frequently modified files will be checked less often.","Attempt to use the operating system/file system's native events for file changes.","Attempt to use the operating system/file system's native events to listen for changes on a file's containing directories. This can use fewer file watchers, but might be less accurate."],"default":"useFsEvents"},"watchDirectory":{"type":"string","description":"Strategy for how entire directory trees are watched under systems that lack recursive file-watching functionality.","enum":["fixedChunkSizePolling","fixedPollingInterval","dynamicPriorityPolling","useFsEvents"],"enumDescriptions":["Polls directories in chunks at regular interval.","Check every directory for changes several times a second at a fixed interval.","Use a dynamic queue where less-frequently modified directories will be checked less often.","Attempt to use the operating system/file system's native events for directory changes."],"default":"useFsEvents"},"fallbackPolling":{"type":"string","description":"When using file system events, this option specifies the polling strategy that gets used when the system runs out of native file watchers and/or doesn't support native file watchers.","enum":["fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling"],"enumDescriptions":["configuration.tsserver.watchOptions.fallbackPolling.fixedPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.priorityPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.dynamicPriorityPolling"]},"synchronousWatchDirectory":{"type":"boolean","description":"Disable deferred watching on directories. Deferred watching is useful when lots of file changes might occur at once (e.g. a change in node_modules from running npm install), but you might want to disable it with this flag for some less-common setups."}}}],"keywords":["TypeScript"]},"typescript.tsserver.watchOptions":{"description":"Configure which watching strategies should be used to keep track of files and directories.","scope":"window","default":"vscode","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.watchOptions#` instead.","oneOf":[{"type":"string","const":"vscode","description":"Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace."},{"type":"object","properties":{"watchFile":{"type":"string","description":"Strategy for how individual files are watched.","enum":["fixedChunkSizePolling","fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling","useFsEvents","useFsEventsOnParentDirectory"],"enumDescriptions":["Polls files in chunks at regular interval.","Check every file for changes several times a second at a fixed interval.","Check every file for changes several times a second, but use heuristics to check certain types of files less frequently than others.","Use a dynamic queue where less-frequently modified files will be checked less often.","Attempt to use the operating system/file system's native events for file changes.","Attempt to use the operating system/file system's native events to listen for changes on a file's containing directories. This can use fewer file watchers, but might be less accurate."],"default":"useFsEvents"},"watchDirectory":{"type":"string","description":"Strategy for how entire directory trees are watched under systems that lack recursive file-watching functionality.","enum":["fixedChunkSizePolling","fixedPollingInterval","dynamicPriorityPolling","useFsEvents"],"enumDescriptions":["Polls directories in chunks at regular interval.","Check every directory for changes several times a second at a fixed interval.","Use a dynamic queue where less-frequently modified directories will be checked less often.","Attempt to use the operating system/file system's native events for directory changes."],"default":"useFsEvents"},"fallbackPolling":{"type":"string","description":"When using file system events, this option specifies the polling strategy that gets used when the system runs out of native file watchers and/or doesn't support native file watchers.","enum":["fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling"],"enumDescriptions":["configuration.tsserver.watchOptions.fallbackPolling.fixedPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.priorityPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.dynamicPriorityPolling"]},"synchronousWatchDirectory":{"type":"boolean","description":"Disable deferred watching on directories. Deferred watching is useful when lots of file changes might occur at once (e.g. a change in node_modules from running npm install), but you might want to disable it with this flag for some less-common setups."}}}]},"js/ts.tsserver.tracing.enabled":{"type":"boolean","default":false,"description":"Enables tracing TS server performance to a directory. These trace files can be used to diagnose TS Server performance issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.enableTracing":{"type":"boolean","default":false,"description":"Enables tracing TS server performance to a directory. These trace files can be used to diagnose TS Server performance issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.tracing.enabled#` instead.","scope":"window"},"js/ts.tsserver.log":{"type":"string","enum":["off","terse","normal","verbose","requestTime"],"default":"off","description":"Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.log":{"type":"string","enum":["off","terse","normal","verbose","requestTime"],"default":"off","description":"Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.log#` instead.","scope":"window"},"js/ts.tsserver.pluginPaths":{"type":"array","items":{"type":"string","description":"Either an absolute or relative path. Relative path will be resolved against workspace folder(s)."},"default":[],"description":"Additional paths to discover TypeScript Language Service plugins.","scope":"machine","keywords":["TypeScript"]},"typescript.tsserver.pluginPaths":{"type":"array","items":{"type":"string","description":"Either an absolute or relative path. Relative path will be resolved against workspace folder(s)."},"default":[],"description":"Additional paths to discover TypeScript Language Service plugins.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.pluginPaths#` instead.","scope":"machine"}}}],"commands":[{"command":"typescript.reloadProjects","title":"Reload Project","category":"TypeScript"},{"command":"javascript.reloadProjects","title":"Reload Project","category":"JavaScript"},{"command":"typescript.selectTypeScriptVersion","title":"Select TypeScript Version...","category":"TypeScript"},{"command":"typescript.goToProjectConfig","title":"Go to Project Configuration (tsconfig)","category":"TypeScript"},{"command":"javascript.goToProjectConfig","title":"Go to Project Configuration (jsconfig / tsconfig)","category":"JavaScript"},{"command":"typescript.openTsServerLog","title":"Open TS Server log","category":"TypeScript"},{"command":"typescript.restartTsServer","title":"Restart TS Server","category":"TypeScript"},{"command":"typescript.findAllFileReferences","title":"Find File References","category":"TypeScript"},{"command":"typescript.goToSourceDefinition","title":"Go to Source Definition","category":"TypeScript"},{"command":"typescript.sortImports","title":"Sort Imports","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"javascript.sortImports","title":"Sort Imports","category":"JavaScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"typescript.removeUnusedImports","title":"Remove Unused Imports","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"javascript.removeUnusedImports","title":"Remove Unused Imports","category":"JavaScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"typescript.experimental.enableTsgo","title":"Use TypeScript Go (Experimental)","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && config.typescript-go.executablePath"},{"command":"typescript.experimental.disableTsgo","title":"Stop using TypeScript Go (Experimental)","category":"TypeScript","enablement":"config.js/ts.experimental.useTsgo || config.typescript.experimental.useTsgo"}],"menus":{"commandPalette":[{"command":"typescript.reloadProjects","when":"editorLangId == typescript && typescript.isManagedFile"},{"command":"typescript.reloadProjects","when":"editorLangId == typescriptreact && typescript.isManagedFile"},{"command":"javascript.reloadProjects","when":"editorLangId == javascript && typescript.isManagedFile"},{"command":"javascript.reloadProjects","when":"editorLangId == javascriptreact && typescript.isManagedFile"},{"command":"typescript.goToProjectConfig","when":"editorLangId == typescript && typescript.isManagedFile"},{"command":"typescript.goToProjectConfig","when":"editorLangId == typescriptreact && typescript.isManagedFile"},{"command":"javascript.goToProjectConfig","when":"editorLangId == javascript && typescript.isManagedFile"},{"command":"javascript.goToProjectConfig","when":"editorLangId == javascriptreact && typescript.isManagedFile"},{"command":"typescript.selectTypeScriptVersion","when":"typescript.isManagedFile"},{"command":"typescript.openTsServerLog","when":"typescript.isManagedFile"},{"command":"typescript.restartTsServer","when":"typescript.isManagedFile"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && typescript.isManagedFile"},{"command":"typescript.goToSourceDefinition","when":"tsSupportsSourceDefinition && typescript.isManagedFile"},{"command":"typescript.sortImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.sortImports\\b/ && editorLangId =~ /^typescript(react)?$/"},{"command":"javascript.sortImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.sortImports\\b/ && editorLangId =~ /^javascript(react)?$/"},{"command":"typescript.removeUnusedImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.removeUnusedImports\\b/ && editorLangId =~ /^typescript(react)?$/"},{"command":"javascript.removeUnusedImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.removeUnusedImports\\b/ && editorLangId =~ /^javascript(react)?$/"}],"editor/context":[{"command":"typescript.goToSourceDefinition","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && tsSupportsSourceDefinition && (resourceLangId == typescript || resourceLangId == typescriptreact || resourceLangId == javascript || resourceLangId == javascriptreact)","group":"navigation@1.41"}],"explorer/context":[{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescript","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescriptreact","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascript","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascriptreact","group":"4_search"}],"editor/title/context":[{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascript"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascriptreact"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescript"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescriptreact"}]},"breakpoints":[{"language":"typescript"},{"language":"typescriptreact"}],"taskDefinitions":[{"type":"typescript","required":["tsconfig"],"properties":{"tsconfig":{"type":"string","description":"The tsconfig file that defines the TS build."},"option":{"type":"string"}},"when":"shellExecutionSupported"}],"problemPatterns":[{"name":"tsc","regexp":"^([^\\s].*)[\\(:](\\d+)[,:](\\d+)(?:\\):\\s+|\\s+-\\s+)(error|warning|info)\\s+TS(\\d+)\\s*:\\s*(.*)$","file":1,"line":2,"column":3,"severity":4,"code":5,"message":6}],"problemMatchers":[{"name":"tsc","label":"TypeScript problems","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc"},{"name":"tsgo-watch","label":"TypeScript problems (watch mode)","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc","background":{"activeOnStart":true,"beginsPattern":{"regexp":"^build starting at .*$"},"endsPattern":{"regexp":"^build finished in .*$"}}},{"name":"tsc-watch","label":"TypeScript problems (watch mode)","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc","background":{"activeOnStart":true,"beginsPattern":{"regexp":"^\\s*(?:message TS6032:|\\[?\\D*.{1,2}[:.].{1,2}[:.].{1,2}\\D*(├\\D*\\d{1,2}\\D+┤)?(?:\\]| -)) (Starting compilation in watch mode|File change detected\\. Starting incremental compilation)\\.\\.\\."},"endsPattern":{"regexp":"^\\s*(?:message TS6042:|\\[?\\D*.{1,2}[:.].{1,2}[:.].{1,2}\\D*(├\\D*\\d{1,2}\\D+┤)?(?:\\]| -)) (?:Compilation complete\\.|Found \\d+ errors?\\.) Watching for file changes\\."}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["workspaceTrust","multiDocumentHighlightProvider","codeActionAI","codeActionRanges","editorHoverVerbosityLevel"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/typescript-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vb"},"manifest":{"name":"vb","displayName":"Visual Basic Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Visual Basic files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/asp.vb.net.tmbundle Syntaxes/ASP%20VB.net.plist ./syntaxes/asp-vb-net.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"vb","extensions":[".vb",".brs",".vbs",".bas",".vba"],"aliases":["Visual Basic","vb"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"vb","scopeName":"source.asp.vb.net","path":"./syntaxes/asp-vb-net.tmLanguage.json"}],"snippets":[{"language":"vb","path":"./snippets/vb.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/88e44fa0e0/resources/app/extensions/vb","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.xml"},"manifest":{"name":"xml","displayName":"XML Language Basics","description":"Provides syntax highlighting and bracket matching in XML files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"xml","extensions":[".xml",".xsd",".ascx",".atom",".axml",".axaml",".bpmn",".cpt",".csl",".csproj",".csproj.user",".dita",".ditamap",".dtd",".ent",".mod",".dtml",".fsproj",".fxml",".iml",".isml",".jmx",".launch",".menu",".mxml",".nuspec",".opml",".owl",".proj",".props",".pt",".publishsettings",".pubxml",".pubxml.user",".rbxlx",".rbxmx",".rdf",".rng",".rss",".shproj",".slnx",".storyboard",".svg",".targets",".tld",".tmx",".vbproj",".vbproj.user",".vcxproj",".vcxproj.filters",".wixproj",".wsdl",".wxi",".wxl",".wxs",".xaml",".xbl",".xib",".xlf",".xliff",".xpdl",".xul",".xoml"],"firstLine":"(\\<\\?xml.*)|(\\{if(t&&typeof t=="object"||typeof t=="function")for(let n of l(t))!d.call(s,n)&&n!==e&&S(s,n,{get:()=>t[n],enumerable:!(o=f(t,n))||o.enumerable});return s};var _=(s,t,e)=>(e=s!=null?E(T(s)):{},C(t||!s||!s.__esModule?S(e,"default",{value:s,enumerable:!0}):e,s));var P=_(require("fs"));var h=_(require("http")),c=class{constructor(t){this.handlerName=t;let e=process.env.VSCODE_GIT_IPC_HANDLE;if(!e)throw new Error("Missing VSCODE_GIT_IPC_HANDLE");this.ipcHandlePath=e}handlerName;ipcHandlePath;call(t){let e={socketPath:this.ipcHandlePath,path:`/${this.handlerName}`,method:"POST"};return new Promise((o,n)=>{let p=h.request(e,r=>{if(r.statusCode!==200)return n(new Error(`Bad status code: ${r.statusCode}`));let a=[];r.on("data",u=>a.push(u)),r.on("end",()=>o(JSON.parse(Buffer.concat(a).toString("utf8"))))});p.on("error",r=>n(r)),p.write(JSON.stringify(t)),p.end()})}};function i(s){console.error("Missing or invalid credentials."),console.error(s),process.exit(1)}function v(s){if(!process.env.VSCODE_GIT_ASKPASS_PIPE)return i("Missing pipe");if(!process.env.VSCODE_GIT_ASKPASS_TYPE)return i("Missing type");if(process.env.VSCODE_GIT_ASKPASS_TYPE!=="https"&&process.env.VSCODE_GIT_ASKPASS_TYPE!=="ssh")return i(`Invalid type: ${process.env.VSCODE_GIT_ASKPASS_TYPE}`);if(process.env.VSCODE_GIT_COMMAND==="fetch"&&process.env.VSCODE_GIT_FETCH_SILENT)return i("Skip silent fetch commands");let t=process.env.VSCODE_GIT_ASKPASS_PIPE,e=process.env.VSCODE_GIT_ASKPASS_TYPE;new c("askpass").call({askpassType:e,argv:s}).then(n=>{P.writeFileSync(t,n+` +`),setTimeout(()=>process.exit(0),0)}).catch(n=>i(n))}v(process.argv); +//# sourceMappingURL=askpass-main.js.map diff --git a/Extension/artifacts/panel-host/user3/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh b/Extension/artifacts/panel-host/user3/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh new file mode 100644 index 000000000..93a08c389 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh @@ -0,0 +1,5 @@ +#!/bin/sh +VSCODE_GIT_ASKPASS_PIPE=`mktemp` +ELECTRON_RUN_AS_NODE="1" VSCODE_GIT_ASKPASS_PIPE="$VSCODE_GIT_ASKPASS_PIPE" VSCODE_GIT_ASKPASS_TYPE="https" "$VSCODE_GIT_ASKPASS_NODE" "$VSCODE_GIT_ASKPASS_MAIN" $VSCODE_GIT_ASKPASS_EXTRA_ARGS $* +cat $VSCODE_GIT_ASKPASS_PIPE +rm $VSCODE_GIT_ASKPASS_PIPE diff --git a/Extension/artifacts/panel-host/user3/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh b/Extension/artifacts/panel-host/user3/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh new file mode 100644 index 000000000..8fb014e5c --- /dev/null +++ b/Extension/artifacts/panel-host/user3/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh @@ -0,0 +1,2 @@ +#!/bin/sh +echo '' \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user3/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh b/Extension/artifacts/panel-host/user3/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh new file mode 100644 index 000000000..dca45bc84 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh @@ -0,0 +1,5 @@ +#!/bin/sh +VSCODE_GIT_ASKPASS_PIPE=`mktemp` +ELECTRON_RUN_AS_NODE="1" VSCODE_GIT_ASKPASS_PIPE="$VSCODE_GIT_ASKPASS_PIPE" VSCODE_GIT_ASKPASS_TYPE="ssh" "$VSCODE_GIT_ASKPASS_NODE" "$VSCODE_GIT_ASKPASS_MAIN" $VSCODE_GIT_ASKPASS_EXTRA_ARGS $* +cat $VSCODE_GIT_ASKPASS_PIPE +rm $VSCODE_GIT_ASKPASS_PIPE diff --git a/Extension/artifacts/panel-host/user3/User/settings.json b/Extension/artifacts/panel-host/user3/User/settings.json new file mode 100644 index 000000000..e5d90f660 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/User/settings.json @@ -0,0 +1 @@ +{"security.workspace.trust.enabled":false,"workbench.startupEditor":"none","extensions.autoUpdate":"off","update.mode":"none","workbench.panel.defaultLocation":"bottom"} diff --git a/Extension/artifacts/panel-host/user3/User/workspaceStorage/0b269310783ed16777b49488ef7af89e/meta.json b/Extension/artifacts/panel-host/user3/User/workspaceStorage/0b269310783ed16777b49488ef7af89e/meta.json new file mode 100644 index 000000000..eecb0d494 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/User/workspaceStorage/0b269310783ed16777b49488ef7af89e/meta.json @@ -0,0 +1,4 @@ +{ + "id": "0b269310783ed16777b49488ef7af89e", + "name": "project3" +} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user3/User/workspaceStorage/361e8b56ace503a637641b8787368e88/meta.json b/Extension/artifacts/panel-host/user3/User/workspaceStorage/361e8b56ace503a637641b8787368e88/meta.json new file mode 100644 index 000000000..7a3517ec2 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/User/workspaceStorage/361e8b56ace503a637641b8787368e88/meta.json @@ -0,0 +1,4 @@ +{ + "id": "361e8b56ace503a637641b8787368e88", + "name": "project5" +} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user3/User/workspaceStorage/adb8f8f8206fefe28670869c53f33f9d/chatEditingSessions/f6cb7443-01a3-4dcc-8302-ca7dfb6f0459/state.json b/Extension/artifacts/panel-host/user3/User/workspaceStorage/adb8f8f8206fefe28670869c53f33f9d/chatEditingSessions/f6cb7443-01a3-4dcc-8302-ca7dfb6f0459/state.json new file mode 100644 index 000000000..f8ac420a8 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/User/workspaceStorage/adb8f8f8206fefe28670869c53f33f9d/chatEditingSessions/f6cb7443-01a3-4dcc-8302-ca7dfb6f0459/state.json @@ -0,0 +1 @@ +{"version":2,"initialFileContents":[],"timeline":{"checkpoints":[{"checkpointId":"01339d84-bac8-497f-82e5-82502c79ed97","epoch":0,"label":"Initial State","description":"Starting point before any edits"}],"currentEpoch":1,"fileBaselines":[],"operations":[],"epochCounter":1},"recentSnapshot":{"entries":[]}} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user3/User/workspaceStorage/adb8f8f8206fefe28670869c53f33f9d/chatSessions/f6cb7443-01a3-4dcc-8302-ca7dfb6f0459.jsonl b/Extension/artifacts/panel-host/user3/User/workspaceStorage/adb8f8f8206fefe28670869c53f33f9d/chatSessions/f6cb7443-01a3-4dcc-8302-ca7dfb6f0459.jsonl new file mode 100644 index 000000000..4735a3ac6 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/User/workspaceStorage/adb8f8f8206fefe28670869c53f33f9d/chatSessions/f6cb7443-01a3-4dcc-8302-ca7dfb6f0459.jsonl @@ -0,0 +1 @@ +{"kind":0,"v":{"version":3,"creationDate":1789046527268,"initialLocation":"panel","responderUsername":"","sessionId":"f6cb7443-01a3-4dcc-8302-ca7dfb6f0459","hasPendingEdits":false,"requests":[],"pendingRequests":[],"inputState":{"attachments":[],"mode":{"id":"agent","kind":"agent"},"inputText":"","selections":[{"startLineNumber":1,"startColumn":1,"endLineNumber":1,"endColumn":1,"selectionStartLineNumber":1,"selectionStartColumn":1,"positionLineNumber":1,"positionColumn":1}],"permissionLevel":"default","contrib":{"chatDynamicVariableModel":[]}}}} diff --git a/Extension/artifacts/panel-host/user3/User/workspaceStorage/adb8f8f8206fefe28670869c53f33f9d/meta.json b/Extension/artifacts/panel-host/user3/User/workspaceStorage/adb8f8f8206fefe28670869c53f33f9d/meta.json new file mode 100644 index 000000000..85466d839 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/User/workspaceStorage/adb8f8f8206fefe28670869c53f33f9d/meta.json @@ -0,0 +1,4 @@ +{ + "id": "adb8f8f8206fefe28670869c53f33f9d", + "name": "project6" +} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user3/User/workspaceStorage/ec5ff3e6fcc42d488509dab1f45c107c/meta.json b/Extension/artifacts/panel-host/user3/User/workspaceStorage/ec5ff3e6fcc42d488509dab1f45c107c/meta.json new file mode 100644 index 000000000..48b4c5bd6 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/User/workspaceStorage/ec5ff3e6fcc42d488509dab1f45c107c/meta.json @@ -0,0 +1,4 @@ +{ + "id": "ec5ff3e6fcc42d488509dab1f45c107c", + "name": "project4" +} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/59b6767e93a85a33_0 b/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/59b6767e93a85a33_0 new file mode 100644 index 000000000..954c556a4 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/59b6767e93a85a33_0 differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/a1fc5a00aa54504c_0 b/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/a1fc5a00aa54504c_0 new file mode 100644 index 000000000..1d9cb1db3 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/a1fc5a00aa54504c_0 differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/da95c0f23032e34b_0 b/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/da95c0f23032e34b_0 new file mode 100644 index 000000000..3a85a00b7 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/da95c0f23032e34b_0 differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/index b/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/index differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/index-dir/the-real-index b/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/index-dir/the-real-index new file mode 100644 index 000000000..087e53411 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/7c18fece-6425-4acc-b56f-52115dfa068d/index-dir/the-real-index differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/index.txt b/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/index.txt new file mode 100644 index 000000000..0fc9f3bb1 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/1/CacheStorage/index.txt differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/59b6767e93a85a33_0 b/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/59b6767e93a85a33_0 new file mode 100644 index 000000000..324d503e5 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/59b6767e93a85a33_0 differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/a1fc5a00aa54504c_0 b/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/a1fc5a00aa54504c_0 new file mode 100644 index 000000000..efd997247 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/a1fc5a00aa54504c_0 differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/da95c0f23032e34b_0 b/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/da95c0f23032e34b_0 new file mode 100644 index 000000000..007b37d88 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/da95c0f23032e34b_0 differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/index b/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/index differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/index-dir/the-real-index b/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/index-dir/the-real-index new file mode 100644 index 000000000..cbdbe1315 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/660c3df4-d271-4909-af91-a473e76f48ed/index-dir/the-real-index differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/index.txt b/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/index.txt new file mode 100644 index 000000000..d719fff40 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/2/CacheStorage/index.txt differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/59b6767e93a85a33_0 b/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/59b6767e93a85a33_0 new file mode 100644 index 000000000..928ba71f6 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/59b6767e93a85a33_0 differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/a1fc5a00aa54504c_0 b/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/a1fc5a00aa54504c_0 new file mode 100644 index 000000000..51d164726 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/a1fc5a00aa54504c_0 differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/da95c0f23032e34b_0 b/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/da95c0f23032e34b_0 new file mode 100644 index 000000000..3bef1fae7 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/da95c0f23032e34b_0 differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/index b/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/index differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/index-dir/the-real-index b/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/index-dir/the-real-index new file mode 100644 index 000000000..b9bc27883 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/cf302339-9242-4767-9e05-6cb028bb8603/index-dir/the-real-index differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/index.txt b/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/index.txt new file mode 100644 index 000000000..46f29dba3 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/3/CacheStorage/index.txt differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/59b6767e93a85a33_0 b/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/59b6767e93a85a33_0 new file mode 100644 index 000000000..3a93eaf73 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/59b6767e93a85a33_0 differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/a1fc5a00aa54504c_0 b/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/a1fc5a00aa54504c_0 new file mode 100644 index 000000000..a60315366 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/a1fc5a00aa54504c_0 differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/da95c0f23032e34b_0 b/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/da95c0f23032e34b_0 new file mode 100644 index 000000000..d61c4851f Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/da95c0f23032e34b_0 differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/index b/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/index differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/index-dir/the-real-index b/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/index-dir/the-real-index new file mode 100644 index 000000000..1cba44e58 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/825fe6b3-2227-4b2a-ad37-4a2bcd89e9e1/index-dir/the-real-index differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/index.txt b/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/index.txt new file mode 100644 index 000000000..e7bcb8ef9 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/4/CacheStorage/index.txt differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/QuotaManager b/Extension/artifacts/panel-host/user3/WebStorage/QuotaManager new file mode 100644 index 000000000..5ce4e2a84 Binary files /dev/null and b/Extension/artifacts/panel-host/user3/WebStorage/QuotaManager differ diff --git a/Extension/artifacts/panel-host/user3/WebStorage/QuotaManager-journal b/Extension/artifacts/panel-host/user3/WebStorage/QuotaManager-journal new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/languagepacks.json b/Extension/artifacts/panel-host/user3/languagepacks.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/panel-host/user3/languagepacks.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/agenthost.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/agenthost.log new file mode 100644 index 000000000..55576b83f --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061655/agenthost.log @@ -0,0 +1,32 @@ +2026-09-10 06:16:57.216 [info] Agent Host process started successfully +2026-09-10 06:16:57.232 [info] AgentService initialized +2026-09-10 06:16:57.236 [info] Registering agent provider: copilotcli +2026-09-10 06:16:57.238 [info] Registering agent provider: claude +2026-09-10 06:16:57.250 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:16:57.257 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:16:57.268 [info] [Claude] Models refreshed (merged). Count: 0, +2026-09-10 06:16:57.291 [info] [CommandAutoApprover] Tree-sitter initialized (bash=available, powershell=available) +2026-09-10 06:16:57.291 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:16:57.295 [info] [ProtocolServer] Initialize: clientId=f2f357aa-6775-4368-bd52-0a2e3f520d18, protocolVersions=[1.0.0, 0.9.0, 0.8.0, 0.7.0, 0.6.0, 0.5.2, 0.5.1] +2026-09-10 06:16:57.329 [info] [AgentService] showExternalSessions changed 'none' -> 'recent'; queueing session list reconciliation +2026-09-10 06:16:57.356 [info] [Copilot] Listing chats to migrate... +2026-09-10 06:16:57.357 [info] [Copilot] Starting CopilotClient... +2026-09-10 06:16:57.358 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-10 06:16:57.360 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-10 06:16:57.415 [info] [Claude] SDK not downloaded yet; deferring the migratable chat list +2026-09-10 06:16:57.600 [info] [WebSocketProtocol] Server listening on socket \\.\pipe\vscode-agent-host-990ca36cc25db4bd1cbf6360b162c82d9db989f5e4cc80e45bcd50b358682742-7k7VDWJny2ehoxSppGomRQ +2026-09-10 06:16:58.136 [info] [Claude] Auth token unchanged +2026-09-10 06:16:58.200 [info] [Copilot] CopilotClient started successfully +2026-09-10 06:16:58.203 [info] [Copilot] Listed 0 SDK session(s) for chats to migrate +2026-09-10 06:16:58.203 [info] [Copilot] Found 0 legacy sessions +2026-09-10 06:16:58.208 [info] [Copilot] Listing discoverable chats... +2026-09-10 06:16:58.210 [info] [Copilot] Listed 0 SDK session(s) for discoverable chats +2026-09-10 06:16:58.210 [info] [AgentService] pruned 0 stale external session row(s) older than 30 days +2026-09-10 06:16:58.211 [info] [Copilot] Chat discovery: 0 SDK session(s) -> 0 external, 0 adoptable legacy extension-host, 0 suppressed adoptable legacy extension-host, 0 suppressed archived legacy extension-host, 0 already known to Agent Host, 0 without a working directory, 0 with unsupported or missing client name, 0 outside the import window, 0 without repository metadata, 0 failed to classify (adopt legacy extension-host chats: false) +2026-09-10 06:16:58.211 [info] [Claude] SDK not downloaded yet; deferring chat discovery +2026-09-10 06:16:58.370 [info] [Copilot] Restarting CopilotClient (CAPI proxy configuration changed (proxy (none) -> http://127.0.0.1:7890)) +2026-09-10 06:17:31.362 [info] [ProtocolServer] Client disconnected: f2f357aa-6775-4368-bd52-0a2e3f520d18, subscriptions=1 +2026-09-10 06:17:31.365 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:17:31.365 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:17:31.372 [info] AgentService: shutting down all providers... +2026-09-10 06:17:31.373 [info] [Copilot] Shutting down... diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/editSessions.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/editSessions.log new file mode 100644 index 000000000..63c823188 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061655/editSessions.log @@ -0,0 +1 @@ +2026-09-10 06:16:58.329 [info] Prompting to enable cloud changes, has application previously launched from Continue On flow: false diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/main.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/main.log new file mode 100644 index 000000000..90197774c --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061655/main.log @@ -0,0 +1,13 @@ +2026-09-10 06:16:56.044 [info] StorageMainService: creating application shared storage +2026-09-10 06:16:56.044 [info] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +2026-09-10 06:16:56.044 [info] [shared storage] Initializing fallback application storage (path: in-memory) +2026-09-10 06:16:56.044 [error] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +2026-09-10 06:16:56.052 [info] [shared storage] Fallback application storage initialized with 3 items +2026-09-10 06:16:56.841 [info] update#disable - updates are disabled by user preference +2026-09-10 06:16:56.845 [info] update#setState disabled +2026-09-10 06:16:56.864 [info] AgentHostProcessManager: agent host started +2026-09-10 06:16:57.260 [error] [AgentHost:stderr] (node:26900) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +2026-09-10 06:17:31.386 [info] Extension host with pid 30312 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/mcpGateway.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/mcpGateway.log new file mode 100644 index 000000000..6a2275ee0 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061655/mcpGateway.log @@ -0,0 +1 @@ +2026-09-10 06:16:56.048 [info] [McpGatewayService] Initialized diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/network-shared.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/network-shared.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/remoteTunnelService.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/remoteTunnelService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/sharedprocess.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/sharedprocess.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/telemetry.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/telemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/terminal.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/terminal.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/tunnelHostService.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/tunnelHostService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/userDataSync.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/userDataSync.log new file mode 100644 index 000000000..897771dd1 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061655/userDataSync.log @@ -0,0 +1,2 @@ +2026-09-10 06:16:57.474 [info] [AutoSync] Using settings sync service https://vscode-sync.trafficmanager.net/ +2026-09-10 06:16:57.474 [info] [AutoSync] Disabled. diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/extHostTelemetry.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/extHostTelemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/exthost.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/exthost.log new file mode 100644 index 000000000..98506887c --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/exthost.log @@ -0,0 +1,36 @@ +2026-09-10 06:16:57.770 [info] Extension host with pid 30312 started +2026-09-10 06:16:57.770 [info] Skipping acquiring lock for i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\user3\User\workspaceStorage\0b269310783ed16777b49488ef7af89e. +2026-09-10 06:16:57.878 [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onLanguage' +2026-09-10 06:16:57.901 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github' +2026-09-10 06:16:57.978 [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.git +2026-09-10 06:16:58.061 [info] ExtensionService#_doActivateExtension vscode.git, startup: true, activationEvent: '*' +2026-09-10 06:16:58.112 [info] ExtensionService#_doActivateExtension vscode.github, startup: true, activationEvent: '*' +2026-09-10 06:16:58.159 [info] ExtensionService#_doActivateExtension hornet.hornet-cpp, startup: true, activationEvent: 'workspaceContains:**/CMakeLists.txt,**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}' +2026-09-10 06:16:58.469 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.openRepositoryInParentFolders', provide the URI of a resource or 'null' for any resource. +2026-09-10 06:16:58.469 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.showProgress', provide the URI of a resource or 'null' for any resource. +2026-09-10 06:16:58.492 [info] Eager extensions activated +2026-09-10 06:16:58.509 [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 06:16:58.512 [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 06:17:01.068 [warning] hornet.hornet-cpp created a webview without a content security policy: https://aka.ms/vscode-webview-missing-csp +2026-09-10 06:17:31.304 [info] Extension host terminating: received terminate message from renderer +2026-09-10 06:17:31.347 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14046:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 06:17:31.382 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14046:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 06:17:31.385 [info] Extension host with pid 30312 exiting with code 0 diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/output_logging_20260910T061657/1-Hornet CC++.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/output_logging_20260910T061657/1-Hornet CC++.log new file mode 100644 index 000000000..4820580a5 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/output_logging_20260910T061657/1-Hornet CC++.log @@ -0,0 +1,187 @@ +Hornet C/C++ 0.1.5 (i:\BackFile\code\hornet-cpptools\Extension) +[2026-09-10T13:16:58.215Z] [project3] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:16:58.243Z] [project3] [Compiler] No compilation database: inferred browsing commands for 2 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:16:58.243Z] [project3] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:16:58.297Z] [project3] [Compiler] I[06:16:58.296] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:16:58.297] Features: windows+grpc +I[06:16:58.297] PID: 10604 +I[06:16:58.297] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3 +I[06:16:58.297] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:16:58.297] argv[1]: --background-index +I[06:16:58.297] argv[2]: --enable-config=0 +I[06:16:58.297] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\.vscode\hornet\compile-db\fallback +I[06:16:58.297] argv[4]: -j=10 +[2026-09-10T13:16:58.300Z] [project3] [Compiler] I[06:16:58.297] Starting LSP over stdin/stdout +I[06:16:58.297] <-- initialize(0) +[2026-09-10T13:16:58.319Z] [project3] [Compiler] I[06:16:58.319] --> reply:initialize(0) 21 ms +[2026-09-10T13:16:58.320Z] [project3] [Compiler] Compiler ready +[2026-09-10T13:16:58.328Z] [project3] [Compiler] I[06:16:58.320] <-- initialized +[2026-09-10T13:16:58.329Z] [project3] [Compiler] I[06:16:58.329] <-- textDocument/didOpen +[2026-09-10T13:16:58.329Z] [project3] [Compiler] I[06:16:58.329] <-- textDocument/documentSymbol(1) +[2026-09-10T13:16:58.330Z] [project3] [Compiler] I[06:16:58.330] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\.vscode\hornet\compile-db\fallback\compile_commands.json +[2026-09-10T13:16:58.330Z] [project3] [Compiler] I[06:16:58.330] --> window/workDoneProgress/create(0) +I[06:16:58.330] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3\\a.cpp" +I[06:16:58.330] Enqueueing 2 commands for indexing +[2026-09-10T13:16:58.331Z] [project3] [Compiler] I[06:16:58.331] <-- reply(0) +I[06:16:58.331] --> $/progress +[2026-09-10T13:16:58.331Z] [project3] [Compiler] I[06:16:58.331] --> $/progress +[2026-09-10T13:16:58.339Z] [project3] [Compiler] I[06:16:58.339] --> $/progress +I[06:16:58.339] --> $/progress +I[06:16:58.339] --> $/progress +I[06:16:58.339] --> $/progress +[2026-09-10T13:16:58.349Z] [project3] [Compiler] I[06:16:58.349] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\a.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T13:16:58.349Z] [project3] [Compiler] I[06:16:58.349] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\b.cpp (2 symbols, 3 refs, 1 files) +[2026-09-10T13:16:58.357Z] [project3] [Compiler] I[06:16:58.355] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\a.cpp version 0 in 0.01 seconds +[2026-09-10T13:16:58.359Z] [project3] [Compiler] I[06:16:58.359] --> $/progress +I[06:16:58.359] --> $/progress +[2026-09-10T13:16:58.385Z] [project3] [Compiler] I[06:16:58.380] --> textDocument/publishDiagnostics +I[06:16:58.380] --> reply:textDocument/documentSymbol(1) 50 ms +[2026-09-10T13:16:58.388Z] [project3] [Compiler] I[06:16:58.388] <-- textDocument/documentSymbol(2) +[2026-09-10T13:16:58.389Z] [project3] [Compiler] I[06:16:58.389] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:16:58.548Z] [project3] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:16:58.551Z] [project3] [Compiler] I[06:16:58.551] <-- shutdown(3) +I[06:16:58.551] --> reply:shutdown(3) 0 ms +[2026-09-10T13:16:58.558Z] [project3] [Compiler] I[06:16:58.552] <-- exit +I[06:16:58.552] LSP finished, exiting with status 0 +[2026-09-10T13:16:58.569Z] [project3] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:16:58.569Z] [project3] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:16:58.595Z] [project3] [Compiler] Index build: Error: Index build interrupted by a language-service restart. +[2026-09-10T13:16:58.620Z] [project3] [Compiler] I[06:16:58.619] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:16:58.620] Features: windows+grpc +I[06:16:58.620] PID: 17936 +I[06:16:58.620] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3 +I[06:16:58.620] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:16:58.620] argv[1]: --background-index +I[06:16:58.620] argv[2]: --enable-config=0 +I[06:16:58.620] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\.vscode\hornet\compile-db\fallback +I[06:16:58.620] argv[4]: -j=10 +[2026-09-10T13:16:58.620Z] [project3] [Compiler] I[06:16:58.620] Starting LSP over stdin/stdout +I[06:16:58.620] <-- initialize(0) +[2026-09-10T13:16:58.640Z] [project3] [Compiler] I[06:16:58.640] --> reply:initialize(0) 19 ms +[2026-09-10T13:16:58.641Z] [project3] [Compiler] Compiler ready +[2026-09-10T13:16:58.644Z] [project3] [Compiler] I[06:16:58.641] <-- initialized +[2026-09-10T13:16:58.645Z] [project3] [Compiler] I[06:16:58.645] <-- textDocument/didOpen +[2026-09-10T13:16:58.645Z] [project3] [Compiler] I[06:16:58.645] <-- textDocument/documentSymbol(1) +[2026-09-10T13:16:58.646Z] [project3] [Compiler] I[06:16:58.646] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:16:58.646] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3\\a.cpp" +I[06:16:58.646] --> window/workDoneProgress/create(0) +I[06:16:58.646] Enqueueing 3 commands for indexing +[2026-09-10T13:16:58.646Z] [project3] [Compiler] I[06:16:58.646] <-- reply(0) +I[06:16:58.646] --> $/progress +I[06:16:58.646] --> $/progress +[2026-09-10T13:16:58.653Z] [project3] [Compiler] I[06:16:58.653] --> $/progress +I[06:16:58.653] --> $/progress +[2026-09-10T13:16:58.653Z] [project3] [Compiler] I[06:16:58.653] --> $/progress +[2026-09-10T13:16:58.664Z] [project3] [Compiler] I[06:16:58.664] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\new.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T13:16:58.671Z] [project3] [Compiler] I[06:16:58.671] --> $/progress +[2026-09-10T13:16:58.673Z] [project3] [Compiler] I[06:16:58.673] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\a.cpp version 0 in 0.01 seconds +[2026-09-10T13:16:58.696Z] [project3] [Compiler] I[06:16:58.696] --> textDocument/publishDiagnostics +I[06:16:58.696] --> reply:textDocument/documentSymbol(1) 51 ms +[2026-09-10T13:16:58.698Z] [project3] [Compiler] I[06:16:58.698] <-- textDocument/documentSymbol(2) +I[06:16:58.698] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:16:58.702Z] [project3] [Compiler] I[06:16:58.702] <-- workspace/didChangeWatchedFiles +[2026-09-10T13:16:58.702Z] [project3] [Compiler] I[06:16:58.702] <-- workspace/didChangeWatchedFiles +[2026-09-10T13:17:00.240Z] [project3] [Compiler] Index ready: 3 source files (cached for next startup) +[2026-09-10T13:17:00.251Z] [project3] [Compiler] I[06:17:00.252] <-- workspace/symbol(3) +[2026-09-10T13:17:00.252Z] [project3] [Compiler] I[06:17:00.252] --> reply:workspace/symbol(3) 0 ms +[2026-09-10T13:17:00.278Z] [project3] [Compiler] I[06:17:00.278] <-- textDocument/didChange +[2026-09-10T13:17:00.333Z] [project3] [Compiler] I[06:17:00.333] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\a.cpp version 1 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3\\a.cpp" +[2026-09-10T13:17:00.351Z] [project3] [Compiler] I[06:17:00.351] <-- textDocument/documentSymbol(4) +[2026-09-10T13:17:00.351Z] [project3] [Compiler] I[06:17:00.351] --> reply:textDocument/documentSymbol(4) 0 ms +[2026-09-10T13:17:00.395Z] [project3] [Compiler] I[06:17:00.395] <-- textDocument/prepareCallHierarchy(5) +[2026-09-10T13:17:00.395Z] [project3] [Compiler] I[06:17:00.395] --> reply:textDocument/prepareCallHierarchy(5) 0 ms +[2026-09-10T13:17:00.634Z] [project3] [Compiler] I[06:17:00.634] <-- textDocument/didOpen +[2026-09-10T13:17:00.634Z] [project3] [Compiler] I[06:17:00.634] <-- textDocument/didOpen +I[06:17:00.634] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\new.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3\\new.cpp" +[2026-09-10T13:17:00.635Z] [project3] [Compiler] I[06:17:00.635] <-- textDocument/documentSymbol(6) +I[06:17:00.635] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\b.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3\\b.cpp" +[2026-09-10T13:17:00.635Z] [project3] [Compiler] I[06:17:00.635] <-- textDocument/documentSymbol(7) +[2026-09-10T13:17:00.646Z] [project3] [Compiler] I[06:17:00.646] <-- textDocument/inlayHint(8) +[2026-09-10T13:17:00.648Z] [project3] [Compiler] I[06:17:00.646] --> reply:textDocument/inlayHint(8) 0 ms +[2026-09-10T13:17:00.662Z] [project3] [Compiler] I[06:17:00.659] Built preamble of size 266884 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\new.cpp version 0 in 0.01 seconds +I[06:17:00.660] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\b.cpp version 0 in 0.01 seconds +[2026-09-10T13:17:00.683Z] [project3] [Compiler] I[06:17:00.683] --> textDocument/publishDiagnostics +I[06:17:00.683] --> textDocument/publishDiagnostics +I[06:17:00.683] --> reply:textDocument/documentSymbol(6) 48 ms +I[06:17:00.683] --> reply:textDocument/documentSymbol(7) 48 ms +[2026-09-10T13:17:00.686Z] [project3] [Compiler] I[06:17:00.686] <-- textDocument/foldingRange(9) +[2026-09-10T13:17:00.690Z] [project3] [Compiler] I[06:17:00.687] --> reply:textDocument/foldingRange(9) 0 ms +[2026-09-10T13:17:00.691Z] [project3] [Compiler] I[06:17:00.691] <-- textDocument/documentSymbol(10) +I[06:17:00.691] --> reply:textDocument/documentSymbol(10) 0 ms +[2026-09-10T13:17:00.692Z] [project3] [Compiler] I[06:17:00.692] <-- textDocument/documentSymbol(11) +I[06:17:00.692] --> reply:textDocument/documentSymbol(11) 0 ms +[2026-09-10T13:17:00.692Z] [project3] [Compiler] I[06:17:00.692] <-- textDocument/references(12) +I[06:17:00.692] --> reply:textDocument/references(12) 0 ms +[2026-09-10T13:17:00.694Z] [project3] [Compiler] I[06:17:00.693] <-- callHierarchy/outgoingCalls(13) +I[06:17:00.693] --> reply:callHierarchy/outgoingCalls(13) 0 ms +[2026-09-10T13:17:00.696Z] [project3] [Compiler] I[06:17:00.695] <-- callHierarchy/incomingCalls(14) +I[06:17:00.695] --> reply:callHierarchy/incomingCalls(14) 0 ms +[2026-09-10T13:17:00.698Z] [project3] [Compiler] I[06:17:00.699] <-- textDocument/documentSymbol(15) +[2026-09-10T13:17:00.699Z] [project3] [Compiler] I[06:17:00.699] --> reply:textDocument/documentSymbol(15) 0 ms +[2026-09-10T13:17:00.699Z] [project3] [Compiler] I[06:17:00.699] <-- textDocument/references(16) +[2026-09-10T13:17:00.699Z] [project3] [Compiler] I[06:17:00.699] --> reply:textDocument/references(16) 0 ms +[2026-09-10T13:17:00.700Z] [project3] [Compiler] I[06:17:00.700] <-- callHierarchy/incomingCalls(17) +[2026-09-10T13:17:00.700Z] [project3] [Compiler] I[06:17:00.700] --> reply:callHierarchy/incomingCalls(17) 0 ms +[2026-09-10T13:17:00.703Z] [project3] [Compiler] I[06:17:00.703] <-- textDocument/documentSymbol(18) +[2026-09-10T13:17:00.703Z] [project3] [Compiler] I[06:17:00.703] --> reply:textDocument/documentSymbol(18) 0 ms +[2026-09-10T13:17:00.704Z] [project3] [Compiler] I[06:17:00.704] <-- callHierarchy/outgoingCalls(19) +[2026-09-10T13:17:00.704Z] [project3] [Compiler] I[06:17:00.704] --> reply:callHierarchy/outgoingCalls(19) 0 ms +[2026-09-10T13:17:00.748Z] [project3] [Compiler] I[06:17:00.748] <-- shutdown(20) +I[06:17:00.748] --> reply:shutdown(20) 0 ms +[2026-09-10T13:17:00.748Z] [project3] [Compiler] I[06:17:00.748] <-- exit +I[06:17:00.748] LSP finished, exiting with status 0 +[2026-09-10T13:17:00.777Z] [project3] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:17:00.779Z] [project3] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:17:00.866Z] [project3] [Compiler] I[06:17:00.865] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:17:00.866] Features: windows+grpc +I[06:17:00.866] PID: 17616 +I[06:17:00.866] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3 +I[06:17:00.866] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:17:00.866] argv[1]: --background-index +I[06:17:00.866] argv[2]: --enable-config=0 +I[06:17:00.866] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\.vscode\hornet\compile-db\fallback +I[06:17:00.866] argv[4]: -j=10 +[2026-09-10T13:17:00.866Z] [project3] [Compiler] I[06:17:00.866] Starting LSP over stdin/stdout +I[06:17:00.866] <-- initialize(0) +[2026-09-10T13:17:00.885Z] [project3] [Compiler] I[06:17:00.885] --> reply:initialize(0) 18 ms +[2026-09-10T13:17:00.886Z] [project3] [Compiler] Compiler ready +[2026-09-10T13:17:00.891Z] [project3] [Compiler] I[06:17:00.886] <-- initialized +[2026-09-10T13:17:00.895Z] [project3] [Compiler] I[06:17:00.892] <-- textDocument/didOpen +I[06:17:00.893] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:17:00.893] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\a.cpp version 1 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project3\\a.cpp" +I[06:17:00.893] --> window/workDoneProgress/create(0) +I[06:17:00.893] Enqueueing 3 commands for indexing +[2026-09-10T13:17:00.895Z] [project3] [Compiler] I[06:17:00.895] <-- textDocument/documentSymbol(1) +[2026-09-10T13:17:00.895Z] [project3] [Compiler] I[06:17:00.895] <-- reply(0) +I[06:17:00.895] --> $/progress +I[06:17:00.895] --> $/progress +[2026-09-10T13:17:00.901Z] [project3] [Compiler] I[06:17:00.901] --> $/progress +I[06:17:00.901] --> $/progress +[2026-09-10T13:17:00.918Z] [project3] [Compiler] I[06:17:00.918] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project3\a.cpp version 1 in 0.01 seconds +[2026-09-10T13:17:00.938Z] [project3] [Compiler] I[06:17:00.938] --> textDocument/publishDiagnostics +I[06:17:00.938] --> reply:textDocument/documentSymbol(1) 43 ms +[2026-09-10T13:17:01.048Z] [project3] [Compiler] I[06:17:01.048] <-- textDocument/documentSymbol(2) +[2026-09-10T13:17:01.049Z] [project3] [Compiler] I[06:17:01.048] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:17:01.118Z] [project3] [Compiler] I[06:17:01.118] <-- textDocument/inlayHint(3) +[2026-09-10T13:17:01.118Z] [project3] [Compiler] I[06:17:01.118] --> reply:textDocument/inlayHint(3) 0 ms +[2026-09-10T13:17:01.207Z] [project3] [Compiler] I[06:17:01.207] <-- textDocument/inlayHint(4) +[2026-09-10T13:17:01.207Z] [project3] [Compiler] I[06:17:01.207] --> reply:textDocument/inlayHint(4) 0 ms +[2026-09-10T13:17:01.416Z] [project3] [Compiler] I[06:17:01.416] <-- textDocument/foldingRange(5) +[2026-09-10T13:17:01.417Z] [project3] [Compiler] I[06:17:01.417] --> reply:textDocument/foldingRange(5) 0 ms +I[06:17:01.417] <-- textDocument/foldingRange(6) +[2026-09-10T13:17:01.418Z] [project3] [Compiler] I[06:17:01.418] --> reply:textDocument/foldingRange(6) 0 ms +[2026-09-10T13:17:01.513Z] [project3] [Compiler] I[06:17:01.513] <-- textDocument/semanticTokens/full(7) +[2026-09-10T13:17:01.513Z] [project3] [Compiler] I[06:17:01.513] --> reply:textDocument/semanticTokens/full(7) 0 ms +[2026-09-10T13:17:02.459Z] [project3] [Compiler] Index ready: 3 source files (cached for next startup) diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/vscode.git/Git.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/vscode.git/Git.log new file mode 100644 index 000000000..4fec0b979 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/vscode.git/Git.log @@ -0,0 +1,18 @@ +2026-09-10 06:16:58.203 [info] [main] Log level: Info +2026-09-10 06:16:58.203 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 06:16:58.203 [info] [main] Validating found git in: "C:\Program Files (x86)\Git\cmd\git.exe" +2026-09-10 06:16:58.203 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 06:16:58.203 [info] [main] Validating found git in: "C:\Users\LiXueqiang\AppData\Local\Programs\Git\cmd\git.exe" +2026-09-10 06:16:58.305 [info] [main] Validating found git in: "D:\Software\Git\cmd\git.exe" +2026-09-10 06:16:58.374 [info] [askpassManager] Creating content-addressed askpass scripts at i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\user3\User\globalStorage\vscode.git\askpass\70789581cae28aa7 +2026-09-10 06:16:58.466 [info] [askpassManager] Successfully created content-addressed askpass scripts +2026-09-10 06:16:58.486 [info] [main] Using git "2.53.0.windows.1" from "D:\Software\Git\cmd\git.exe" +2026-09-10 06:16:58.486 [info] [Model][doInitialScan] Initial repository scan started +2026-09-10 06:16:58.596 [info] > git rev-parse --show-toplevel [95ms] +2026-09-10 06:16:58.676 [info] > git rev-parse --show-toplevel [75ms] +2026-09-10 06:16:58.679 [info] [Model][doInitialScan] Initial repository scan completed - repositories (0), closed repositories (0), parent repositories (1), unsafe repositories (0) +2026-09-10 06:16:59.382 [info] > git rev-parse --show-toplevel [63ms] +2026-09-10 06:16:59.713 [info] > git rev-parse --show-toplevel [69ms] +2026-09-10 06:16:59.839 [info] > git rev-parse --show-toplevel [72ms] +2026-09-10 06:17:00.409 [info] > git rev-parse --show-toplevel [58ms] +2026-09-10 06:17:01.701 [info] > git rev-parse --show-toplevel [68ms] diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/vscode.github-authentication/GitHub Authentication.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/vscode.github-authentication/GitHub Authentication.log new file mode 100644 index 000000000..a18525c20 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/vscode.github-authentication/GitHub Authentication.log @@ -0,0 +1,219 @@ +2026-09-10 06:16:58.028 [info] Reading sessions from keychain... +2026-09-10 06:16:58.028 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.028 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.028 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.028 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.028 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.028 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.028 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.028 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.029 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.029 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.128 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.128 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.142 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.142 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.142 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.142 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.143 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.143 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.143 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.143 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.143 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.143 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.143 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.143 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.144 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.144 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.144 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.144 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.144 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.144 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.144 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.144 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.144 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.145 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.145 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.145 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.183 [info] Getting sessions for repo... +2026-09-10 06:16:58.183 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.184 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.184 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.184 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.184 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.184 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.184 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.184 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.184 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.184 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.184 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.185 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.185 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.185 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.185 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.185 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.185 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.185 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.185 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.185 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.185 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.186 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.186 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.186 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.186 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.193 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.193 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.194 [info] Getting sessions for repo... +2026-09-10 06:16:58.194 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.194 [info] Getting sessions for repo... +2026-09-10 06:16:58.194 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.194 [info] Getting sessions for repo... +2026-09-10 06:16:58.194 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.194 [info] Getting sessions for repo... +2026-09-10 06:16:58.194 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.194 [info] Getting sessions for repo... +2026-09-10 06:16:58.194 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.194 [info] Getting sessions for repo... +2026-09-10 06:16:58.194 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.195 [info] Getting sessions for repo... +2026-09-10 06:16:58.195 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.195 [info] Getting sessions for repo... +2026-09-10 06:16:58.195 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.195 [info] Getting sessions for repo... +2026-09-10 06:16:58.195 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.195 [info] Getting sessions for repo... +2026-09-10 06:16:58.195 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.195 [info] Getting sessions for repo... +2026-09-10 06:16:58.195 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.196 [info] Getting sessions for repo... +2026-09-10 06:16:58.196 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.206 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.206 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.206 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.206 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.206 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.206 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.207 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.207 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.207 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.207 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.208 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.208 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.208 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.208 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.208 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.208 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.208 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.208 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.208 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.208 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.209 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.209 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.209 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.209 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.220 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.220 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.220 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.220 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.220 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.220 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.220 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.220 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.221 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.221 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.221 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.221 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.221 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.221 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.221 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.221 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.221 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.222 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.222 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.222 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.222 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.222 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.222 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.222 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.222 [info] Getting sessions for read:user,user:email... +2026-09-10 06:16:58.222 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:16:58.229 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.230 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.230 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.230 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.230 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.230 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.230 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.230 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.230 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.230 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.230 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.230 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.231 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.231 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.231 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.231 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.231 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.231 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.231 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.231 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.231 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.231 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.232 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.232 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.232 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.232 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.238 [info] Getting sessions for repo... +2026-09-10 06:16:58.238 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.238 [info] Getting sessions for repo... +2026-09-10 06:16:58.238 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.238 [info] Getting sessions for repo... +2026-09-10 06:16:58.238 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.239 [info] Getting sessions for repo... +2026-09-10 06:16:58.239 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.239 [info] Getting sessions for repo... +2026-09-10 06:16:58.239 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.240 [info] Getting sessions for repo... +2026-09-10 06:16:58.240 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.240 [info] Getting sessions for repo... +2026-09-10 06:16:58.240 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.241 [info] Getting sessions for repo... +2026-09-10 06:16:58.241 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.241 [info] Getting sessions for repo... +2026-09-10 06:16:58.241 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.241 [info] Getting sessions for repo... +2026-09-10 06:16:58.241 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.241 [info] Getting sessions for repo... +2026-09-10 06:16:58.241 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.242 [info] Getting sessions for repo... +2026-09-10 06:16:58.242 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.242 [info] Getting sessions for repo... +2026-09-10 06:16:58.242 [info] Got 0 sessions for repo... +2026-09-10 06:16:58.273 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.273 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.274 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.274 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.274 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.274 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.274 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.274 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.275 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.275 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.276 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.276 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.276 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.276 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.276 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.276 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.276 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.276 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.276 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.276 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.277 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.277 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.277 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.277 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:58.277 [info] Getting sessions for all scopes... +2026-09-10 06:16:58.277 [info] Got 0 sessions for all scopes... +2026-09-10 06:16:59.794 [info] Getting sessions for all scopes... +2026-09-10 06:16:59.794 [info] Got 0 sessions for all scopes... diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/vscode.github/GitHub.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/vscode.github/GitHub.log new file mode 100644 index 000000000..1e32bfdb2 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/exthost/vscode.github/GitHub.log @@ -0,0 +1 @@ +2026-09-10 06:16:58.202 [info] Log level: Info diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/network.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/network.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/notebook.rendering.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/notebook.rendering.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/output_20260910T061657/agentSessionsOutput.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/output_20260910T061657/agentSessionsOutput.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/output_20260910T061657/tasks.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/output_20260910T061657/tasks.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/renderer.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/renderer.log new file mode 100644 index 000000000..050dd182b --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/renderer.log @@ -0,0 +1,69 @@ +2026-09-10 06:16:56.861 [info] [AgentHost:renderer] Acquiring MessagePort to agent host... +2026-09-10 06:16:57.035 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:16:57.226 [info] [AgentHost:renderer] MessagePort acquired, creating client... +2026-09-10 06:16:57.264 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/N2Y5Mjk4MjItNDY3MC00NjdlLTk3ZTktODFkYjIzNDg2YzM2" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:16:57.336 [info] [AgentHost:renderer] Protocol connection established; clientId=f2f357aa-6775-4368-bd52-0a2e3f520d18 +2026-09-10 06:16:57.338 [info] Started local extension host with pid 30312. +2026-09-10 06:16:57.611 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-10 06:16:57.631 [info] Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +2026-09-10 06:16:58.139 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.143 [info] [AgentHost] Clearing authentication for resource: https://api.github.com +2026-09-10 06:16:58.189 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.191 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.192 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.193 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.194 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.195 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.196 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.198 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.199 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.200 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.201 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.201 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.205 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.216 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.217 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.218 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.219 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.220 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.220 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.221 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.222 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.223 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.224 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.225 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.225 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.226 [info] [AgentHost] Clearing authentication for resource: https://api.github.com/repos +2026-09-10 06:16:58.238 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.240 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.242 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.244 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.245 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.247 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.248 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.249 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.253 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.254 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.255 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.256 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.258 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:16:58.259 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/N2Y5Mjk4MjItNDY3MC00NjdlLTk3ZTktODFkYjIzNDg2YzM2" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:16:58.298 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.302 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.303 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.304 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.306 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.308 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.309 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.310 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.310 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.311 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.312 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.313 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.315 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:16:58.316 [info] Settings Sync: Account status changed from uninitialized to unavailable +2026-09-10 06:17:00.541 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/N2Y5Mjk4MjItNDY3MC00NjdlLTk3ZTktODFkYjIzNDg2YzM2" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:17:02.620 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-10 06:17:31.302 [error] Error: Timed out: panel screenshot + at waitFor (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:16:15) + at async exports.run (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:46:13) diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/textModelChanges.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/textModelChanges.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/views.log b/Extension/artifacts/panel-host/user3/logs/20260910T061655/window1/views.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/agenthost.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/agenthost.log new file mode 100644 index 000000000..16579024e --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061826/agenthost.log @@ -0,0 +1,28 @@ +2026-09-10 06:18:27.452 [info] Agent Host process started successfully +2026-09-10 06:18:27.477 [info] AgentService initialized +2026-09-10 06:18:27.484 [info] Registering agent provider: copilotcli +2026-09-10 06:18:27.487 [info] Registering agent provider: claude +2026-09-10 06:18:27.505 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:18:27.517 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:18:27.527 [info] [Claude] Models refreshed (merged). Count: 0, +2026-09-10 06:18:27.545 [info] [Claude] SDK not downloaded yet; deferring the migratable chat list +2026-09-10 06:18:27.550 [info] [CommandAutoApprover] Tree-sitter initialized (bash=available, powershell=available) +2026-09-10 06:18:27.587 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:18:27.609 [info] [ProtocolServer] Initialize: clientId=ef05cfb1-6b4c-49e8-a6ad-929054893c6b, protocolVersions=[1.0.0, 0.9.0, 0.8.0, 0.7.0, 0.6.0, 0.5.2, 0.5.1] +2026-09-10 06:18:27.906 [info] [WebSocketProtocol] Server listening on socket \\.\pipe\vscode-agent-host-990ca36cc25db4bd1cbf6360b162c82d9db989f5e4cc80e45bcd50b358682742-sHn-i8YSgSGNiaL3iTjVBQ +2026-09-10 06:18:28.432 [info] [AgentService] pruned 0 stale external session row(s) older than 30 days +2026-09-10 06:18:28.433 [info] [Copilot] Listing discoverable chats... +2026-09-10 06:18:28.434 [info] [Copilot] Starting CopilotClient... +2026-09-10 06:18:28.434 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-10 06:18:28.437 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-10 06:18:28.495 [info] [Claude] SDK not downloaded yet; deferring chat discovery +2026-09-10 06:18:28.529 [info] [Claude] Auth token unchanged +2026-09-10 06:18:29.310 [info] [Copilot] CopilotClient started successfully +2026-09-10 06:18:29.311 [info] [Copilot] Restarting CopilotClient (CAPI proxy configuration changed (proxy (none) -> http://127.0.0.1:7890)) +2026-09-10 06:18:29.313 [info] [Copilot] Listed 0 SDK session(s) for discoverable chats +2026-09-10 06:18:29.313 [info] [Copilot] Chat discovery: 0 SDK session(s) -> 0 external, 0 adoptable legacy extension-host, 0 suppressed adoptable legacy extension-host, 0 suppressed archived legacy extension-host, 0 already known to Agent Host, 0 without a working directory, 0 with unsupported or missing client name, 0 outside the import window, 0 without repository metadata, 0 failed to classify (adopt legacy extension-host chats: false) +2026-09-10 06:19:02.857 [info] [ProtocolServer] Client disconnected: ef05cfb1-6b4c-49e8-a6ad-929054893c6b, subscriptions=1 +2026-09-10 06:19:02.858 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:19:02.859 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:19:02.862 [info] AgentService: shutting down all providers... +2026-09-10 06:19:02.862 [info] [Copilot] Shutting down... diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/editSessions.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/editSessions.log new file mode 100644 index 000000000..27fa50ae9 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061826/editSessions.log @@ -0,0 +1 @@ +2026-09-10 06:18:28.732 [info] Prompting to enable cloud changes, has application previously launched from Continue On flow: false diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/main.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/main.log new file mode 100644 index 000000000..bdee50086 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061826/main.log @@ -0,0 +1,13 @@ +2026-09-10 06:18:26.593 [info] StorageMainService: creating application shared storage +2026-09-10 06:18:26.593 [info] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +2026-09-10 06:18:26.593 [info] [shared storage] Initializing fallback application storage (path: in-memory) +2026-09-10 06:18:26.593 [error] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +2026-09-10 06:18:26.609 [info] [shared storage] Fallback application storage initialized with 3 items +2026-09-10 06:18:27.003 [info] update#disable - updates are disabled by user preference +2026-09-10 06:18:27.006 [info] update#setState disabled +2026-09-10 06:18:27.028 [info] AgentHostProcessManager: agent host started +2026-09-10 06:18:27.545 [error] [AgentHost:stderr] (node:19976) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +2026-09-10 06:19:02.863 [info] Extension host with pid 13948 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/mcpGateway.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/mcpGateway.log new file mode 100644 index 000000000..42d8685df --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061826/mcpGateway.log @@ -0,0 +1 @@ +2026-09-10 06:18:26.601 [info] [McpGatewayService] Initialized diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/network-shared.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/network-shared.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/remoteTunnelService.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/remoteTunnelService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/sharedprocess.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/sharedprocess.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/telemetry.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/telemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/terminal.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/terminal.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/tunnelHostService.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/tunnelHostService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/userDataSync.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/userDataSync.log new file mode 100644 index 000000000..b9d541363 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061826/userDataSync.log @@ -0,0 +1,2 @@ +2026-09-10 06:18:27.759 [info] [AutoSync] Using settings sync service https://vscode-sync.trafficmanager.net/ +2026-09-10 06:18:27.759 [info] [AutoSync] Disabled. diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/extHostTelemetry.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/extHostTelemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/exthost.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/exthost.log new file mode 100644 index 000000000..c2bc3f4dc --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/exthost.log @@ -0,0 +1,26 @@ +2026-09-10 06:18:28.154 [info] Extension host with pid 13948 started +2026-09-10 06:18:28.154 [info] Skipping acquiring lock for i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\user3\User\workspaceStorage\ec5ff3e6fcc42d488509dab1f45c107c. +2026-09-10 06:18:28.220 [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onLanguage' +2026-09-10 06:18:28.253 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github' +2026-09-10 06:18:28.361 [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.git +2026-09-10 06:18:28.370 [info] ExtensionService#_doActivateExtension vscode.git, startup: true, activationEvent: '*' +2026-09-10 06:18:28.427 [info] ExtensionService#_doActivateExtension vscode.github, startup: true, activationEvent: '*' +2026-09-10 06:18:28.539 [info] ExtensionService#_doActivateExtension hornet.hornet-cpp, startup: true, activationEvent: 'workspaceContains:**/CMakeLists.txt,**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}' +2026-09-10 06:18:28.759 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.openRepositoryInParentFolders', provide the URI of a resource or 'null' for any resource. +2026-09-10 06:18:28.759 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.showProgress', provide the URI of a resource or 'null' for any resource. +2026-09-10 06:18:28.787 [info] Eager extensions activated +2026-09-10 06:18:28.836 [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 06:18:28.841 [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 06:18:32.665 [warning] hornet.hornet-cpp created a webview without a content security policy: https://aka.ms/vscode-webview-missing-csp +2026-09-10 06:19:02.820 [info] Extension host terminating: received terminate message from renderer +2026-09-10 06:19:02.844 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14046:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12030:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 06:19:02.860 [info] Extension host with pid 13948 exiting with code 0 diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/output_logging_20260910T061828/1-Hornet CC++.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/output_logging_20260910T061828/1-Hornet CC++.log new file mode 100644 index 000000000..c226fd96f --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/output_logging_20260910T061828/1-Hornet CC++.log @@ -0,0 +1,231 @@ +Hornet C/C++ 0.1.5 (i:\BackFile\code\hornet-cpptools\Extension) +[2026-09-10T13:18:28.588Z] [project4] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:18:28.616Z] [project4] [Compiler] No compilation database: inferred browsing commands for 2 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:18:28.617Z] [project4] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:18:28.682Z] [project4] [Compiler] I[06:18:28.680] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:18:28.681] Features: windows+grpc +I[06:18:28.681] PID: 26788 +I[06:18:28.681] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4 +I[06:18:28.681] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:18:28.681] argv[1]: --background-index +I[06:18:28.681] argv[2]: --enable-config=0 +I[06:18:28.681] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\.vscode\hornet\compile-db\fallback +I[06:18:28.681] argv[4]: -j=10 +[2026-09-10T13:18:28.682Z] [project4] [Compiler] I[06:18:28.681] Starting LSP over stdin/stdout +I[06:18:28.682] <-- initialize(0) +[2026-09-10T13:18:28.705Z] [project4] [Compiler] I[06:18:28.705] --> reply:initialize(0) 23 ms +[2026-09-10T13:18:28.707Z] [project4] [Compiler] Compiler ready +[2026-09-10T13:18:28.712Z] [project4] [Compiler] I[06:18:28.707] <-- initialized +[2026-09-10T13:18:28.713Z] [project4] [Compiler] I[06:18:28.713] <-- textDocument/didOpen +[2026-09-10T13:18:28.714Z] [project4] [Compiler] I[06:18:28.714] <-- textDocument/documentSymbol(1) +[2026-09-10T13:18:28.714Z] [project4] [Compiler] I[06:18:28.714] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\.vscode\hornet\compile-db\fallback\compile_commands.json +[2026-09-10T13:18:28.715Z] [project4] [Compiler] I[06:18:28.714] --> window/workDoneProgress/create(0) +I[06:18:28.714] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\a.cpp" +I[06:18:28.714] Enqueueing 2 commands for indexing +[2026-09-10T13:18:28.717Z] [project4] [Compiler] I[06:18:28.716] <-- reply(0) +I[06:18:28.716] --> $/progress +I[06:18:28.716] --> $/progress +[2026-09-10T13:18:28.725Z] [project4] [Compiler] I[06:18:28.725] --> $/progress +I[06:18:28.725] --> $/progress +I[06:18:28.725] --> $/progress +I[06:18:28.725] --> $/progress +[2026-09-10T13:18:28.737Z] [project4] [Compiler] I[06:18:28.737] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\a.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T13:18:28.741Z] [project4] [Compiler] I[06:18:28.741] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\b.cpp (2 symbols, 3 refs, 1 files) +[2026-09-10T13:18:28.745Z] [project4] [Compiler] I[06:18:28.743] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\a.cpp version 0 in 0.01 seconds +[2026-09-10T13:18:28.748Z] [project4] [Compiler] I[06:18:28.746] --> $/progress +[2026-09-10T13:18:28.750Z] [project4] [Compiler] I[06:18:28.750] --> $/progress +[2026-09-10T13:18:28.795Z] [project4] [Compiler] I[06:18:28.769] --> textDocument/publishDiagnostics +I[06:18:28.769] --> reply:textDocument/documentSymbol(1) 55 ms +[2026-09-10T13:18:28.810Z] [project4] [Compiler] I[06:18:28.810] <-- textDocument/documentSymbol(2) +I[06:18:28.810] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:18:28.820Z] [project4] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:18:28.823Z] [project4] [Compiler] I[06:18:28.823] <-- shutdown(3) +I[06:18:28.823] --> reply:shutdown(3) 0 ms +[2026-09-10T13:18:28.831Z] [project4] [Compiler] I[06:18:28.823] <-- exit +I[06:18:28.823] LSP finished, exiting with status 0 +[2026-09-10T13:18:28.866Z] [project4] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:18:28.867Z] [project4] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:18:28.919Z] [project4] [Compiler] Index build: Error: Index build interrupted by a language-service restart. +[2026-09-10T13:18:28.935Z] [project4] [Compiler] I[06:18:28.934] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:18:28.935] Features: windows+grpc +I[06:18:28.935] PID: 23340 +I[06:18:28.935] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4 +I[06:18:28.935] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:18:28.935] argv[1]: --background-index +I[06:18:28.935] argv[2]: --enable-config=0 +I[06:18:28.935] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\.vscode\hornet\compile-db\fallback +I[06:18:28.935] argv[4]: -j=10 +[2026-09-10T13:18:28.935Z] [project4] [Compiler] I[06:18:28.935] Starting LSP over stdin/stdout +[2026-09-10T13:18:28.935Z] [project4] [Compiler] I[06:18:28.935] <-- initialize(0) +[2026-09-10T13:18:28.962Z] [project4] [Compiler] I[06:18:28.962] --> reply:initialize(0) 26 ms +[2026-09-10T13:18:28.963Z] [project4] [Compiler] Compiler ready +[2026-09-10T13:18:28.968Z] [project4] [Compiler] I[06:18:28.963] <-- initialized +[2026-09-10T13:18:28.968Z] [project4] [Compiler] I[06:18:28.968] <-- textDocument/didOpen +[2026-09-10T13:18:28.968Z] [project4] [Compiler] I[06:18:28.968] <-- textDocument/documentSymbol(1) +[2026-09-10T13:18:28.969Z] [project4] [Compiler] I[06:18:28.969] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:18:28.969] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\a.cpp" +[2026-09-10T13:18:28.969Z] [project4] [Compiler] I[06:18:28.969] --> window/workDoneProgress/create(0) +I[06:18:28.969] Enqueueing 3 commands for indexing +[2026-09-10T13:18:28.970Z] [project4] [Compiler] I[06:18:28.970] <-- reply(0) +I[06:18:28.970] --> $/progress +I[06:18:28.970] --> $/progress +[2026-09-10T13:18:28.978Z] [project4] [Compiler] I[06:18:28.977] --> $/progress +I[06:18:28.977] --> $/progress +I[06:18:28.977] --> $/progress +[2026-09-10T13:18:28.988Z] [project4] [Compiler] I[06:18:28.988] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\new.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T13:18:28.996Z] [project4] [Compiler] I[06:18:28.995] --> $/progress +[2026-09-10T13:18:28.997Z] [project4] [Compiler] I[06:18:28.997] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\a.cpp version 0 in 0.01 seconds +[2026-09-10T13:18:29.011Z] [project4] [Compiler] I[06:18:29.010] <-- workspace/didChangeWatchedFiles +[2026-09-10T13:18:29.011Z] [project4] [Compiler] I[06:18:29.011] <-- workspace/didChangeWatchedFiles +[2026-09-10T13:18:29.025Z] [project4] [Compiler] I[06:18:29.024] --> textDocument/publishDiagnostics +I[06:18:29.025] --> reply:textDocument/documentSymbol(1) 56 ms +[2026-09-10T13:18:29.026Z] [project4] [Compiler] I[06:18:29.026] <-- textDocument/documentSymbol(2) +[2026-09-10T13:18:29.027Z] [project4] [Compiler] I[06:18:29.027] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:18:30.569Z] [project4] [Compiler] Index ready: 3 source files (cached for next startup) +[2026-09-10T13:18:30.575Z] [project4] [Compiler] I[06:18:30.575] <-- workspace/symbol(3) +[2026-09-10T13:18:30.576Z] [project4] [Compiler] I[06:18:30.576] --> reply:workspace/symbol(3) 0 ms +[2026-09-10T13:18:30.582Z] [project4] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:18:30.584Z] [project4] [Compiler] I[06:18:30.584] <-- shutdown(4) +I[06:18:30.584] --> reply:shutdown(4) 0 ms +[2026-09-10T13:18:30.591Z] [project4] [Compiler] I[06:18:30.584] <-- exit +I[06:18:30.584] LSP finished, exiting with status 0 +[2026-09-10T13:18:30.601Z] [project4] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:18:30.602Z] [project4] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:18:30.658Z] [project4] [Compiler] I[06:18:30.656] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:18:30.658] Features: windows+grpc +I[06:18:30.658] PID: 15128 +I[06:18:30.658] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4 +I[06:18:30.658] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:18:30.658] argv[1]: --background-index +I[06:18:30.658] argv[2]: --enable-config=0 +I[06:18:30.658] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\.vscode\hornet\compile-db\fallback +I[06:18:30.658] argv[4]: -j=10 +[2026-09-10T13:18:30.658Z] [project4] [Compiler] I[06:18:30.658] Starting LSP over stdin/stdout +I[06:18:30.658] <-- initialize(0) +[2026-09-10T13:18:30.682Z] [project4] [Compiler] I[06:18:30.682] --> reply:initialize(0) 23 ms +[2026-09-10T13:18:30.683Z] [project4] [Compiler] Compiler ready +[2026-09-10T13:18:30.686Z] [project4] [Compiler] I[06:18:30.683] <-- initialized +[2026-09-10T13:18:30.687Z] [project4] [Compiler] I[06:18:30.687] <-- textDocument/didOpen +[2026-09-10T13:18:30.687Z] [project4] [Compiler] I[06:18:30.687] <-- textDocument/documentSymbol(1) +[2026-09-10T13:18:30.688Z] [project4] [Compiler] I[06:18:30.688] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\.vscode\hornet\compile-db\fallback\compile_commands.json +[2026-09-10T13:18:30.688Z] [project4] [Compiler] I[06:18:30.688] --> window/workDoneProgress/create(0) +I[06:18:30.688] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\a.cpp" +I[06:18:30.688] Enqueueing 3 commands for indexing +[2026-09-10T13:18:30.688Z] [project4] [Compiler] I[06:18:30.688] <-- reply(0) +I[06:18:30.688] --> $/progress +I[06:18:30.688] --> $/progress +[2026-09-10T13:18:30.697Z] [project4] [Compiler] I[06:18:30.696] --> $/progress +I[06:18:30.696] --> $/progress +[2026-09-10T13:18:30.717Z] [project4] [Compiler] I[06:18:30.717] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\a.cpp version 0 in 0.01 seconds +[2026-09-10T13:18:30.741Z] [project4] [Compiler] I[06:18:30.741] --> textDocument/publishDiagnostics +[2026-09-10T13:18:30.742Z] [project4] [Compiler] I[06:18:30.741] --> reply:textDocument/documentSymbol(1) 53 ms +[2026-09-10T13:18:30.743Z] [project4] [Compiler] I[06:18:30.743] <-- textDocument/documentSymbol(2) +[2026-09-10T13:18:30.743Z] [project4] [Compiler] I[06:18:30.743] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:18:32.283Z] [project4] [Compiler] Index ready: 3 source files (cached for next startup) +[2026-09-10T13:18:32.297Z] [project4] [Compiler] I[06:18:32.297] <-- textDocument/didChange +[2026-09-10T13:18:32.332Z] [project4] [Compiler] I[06:18:32.332] <-- textDocument/documentSymbol(3) +[2026-09-10T13:18:32.332Z] [project4] [Compiler] I[06:18:32.332] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\a.cpp version 1 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\a.cpp" +[2026-09-10T13:18:32.341Z] [project4] [Compiler] I[06:18:32.341] --> reply:textDocument/documentSymbol(3) 8 ms +[2026-09-10T13:18:32.352Z] [project4] [Compiler] I[06:18:32.352] <-- textDocument/prepareCallHierarchy(4) +[2026-09-10T13:18:32.352Z] [project4] [Compiler] I[06:18:32.352] --> reply:textDocument/prepareCallHierarchy(4) 0 ms +[2026-09-10T13:18:32.450Z] [project4] [Compiler] I[06:18:32.450] <-- textDocument/didOpen +[2026-09-10T13:18:32.450Z] [project4] [Compiler] I[06:18:32.450] <-- textDocument/didOpen +I[06:18:32.450] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\b.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\b.cpp" +[2026-09-10T13:18:32.451Z] [project4] [Compiler] I[06:18:32.450] <-- textDocument/documentSymbol(5) +[2026-09-10T13:18:32.451Z] [project4] [Compiler] I[06:18:32.451] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\new.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\new.cpp" +I[06:18:32.451] <-- textDocument/documentSymbol(6) +[2026-09-10T13:18:32.462Z] [project4] [Compiler] I[06:18:32.462] <-- textDocument/inlayHint(7) +[2026-09-10T13:18:32.462Z] [project4] [Compiler] I[06:18:32.462] --> reply:textDocument/inlayHint(7) 0 ms +[2026-09-10T13:18:32.473Z] [project4] [Compiler] I[06:18:32.473] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\b.cpp version 0 in 0.01 seconds +[2026-09-10T13:18:32.478Z] [project4] [Compiler] I[06:18:32.478] Built preamble of size 266884 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\new.cpp version 0 in 0.01 seconds +[2026-09-10T13:18:32.501Z] [project4] [Compiler] I[06:18:32.500] --> textDocument/publishDiagnostics +I[06:18:32.501] --> reply:textDocument/documentSymbol(5) 50 ms +[2026-09-10T13:18:32.505Z] [project4] [Compiler] I[06:18:32.505] --> textDocument/publishDiagnostics +I[06:18:32.505] --> reply:textDocument/documentSymbol(6) 54 ms +[2026-09-10T13:18:32.507Z] [project4] [Compiler] I[06:18:32.507] <-- textDocument/documentSymbol(8) +[2026-09-10T13:18:32.508Z] [project4] [Compiler] I[06:18:32.508] <-- textDocument/documentSymbol(9) +I[06:18:32.508] --> reply:textDocument/documentSymbol(8) 0 ms +I[06:18:32.508] --> reply:textDocument/documentSymbol(9) 0 ms +[2026-09-10T13:18:32.508Z] [project4] [Compiler] I[06:18:32.508] <-- textDocument/references(10) +[2026-09-10T13:18:32.508Z] [project4] [Compiler] I[06:18:32.508] <-- callHierarchy/outgoingCalls(11) +I[06:18:32.508] --> reply:textDocument/references(10) 0 ms +[2026-09-10T13:18:32.508Z] [project4] [Compiler] I[06:18:32.508] --> reply:callHierarchy/outgoingCalls(11) 0 ms +[2026-09-10T13:18:32.509Z] [project4] [Compiler] I[06:18:32.509] <-- callHierarchy/incomingCalls(12) +[2026-09-10T13:18:32.509Z] [project4] [Compiler] I[06:18:32.509] --> reply:callHierarchy/incomingCalls(12) 0 ms +[2026-09-10T13:18:32.511Z] [project4] [Compiler] I[06:18:32.511] <-- textDocument/documentSymbol(13) +[2026-09-10T13:18:32.511Z] [project4] [Compiler] I[06:18:32.511] --> reply:textDocument/documentSymbol(13) 0 ms +[2026-09-10T13:18:32.511Z] [project4] [Compiler] I[06:18:32.511] <-- textDocument/references(14) +[2026-09-10T13:18:32.511Z] [project4] [Compiler] I[06:18:32.511] --> reply:textDocument/references(14) 0 ms +[2026-09-10T13:18:32.512Z] [project4] [Compiler] I[06:18:32.512] <-- callHierarchy/incomingCalls(15) +[2026-09-10T13:18:32.512Z] [project4] [Compiler] I[06:18:32.512] --> reply:callHierarchy/incomingCalls(15) 0 ms +[2026-09-10T13:18:32.515Z] [project4] [Compiler] I[06:18:32.515] <-- textDocument/documentSymbol(16) +[2026-09-10T13:18:32.515Z] [project4] [Compiler] I[06:18:32.515] --> reply:textDocument/documentSymbol(16) 0 ms +[2026-09-10T13:18:32.516Z] [project4] [Compiler] I[06:18:32.516] <-- callHierarchy/outgoingCalls(17) +[2026-09-10T13:18:32.516Z] [project4] [Compiler] I[06:18:32.516] --> reply:callHierarchy/outgoingCalls(17) 0 ms +[2026-09-10T13:18:32.640Z] [project4] [Compiler] I[06:18:32.640] <-- textDocument/foldingRange(18) +[2026-09-10T13:18:32.640Z] [project4] [Compiler] I[06:18:32.640] --> reply:textDocument/foldingRange(18) 0 ms +[2026-09-10T13:18:32.643Z] [project4] [Compiler] I[06:18:32.643] <-- textDocument/foldingRange(19) +[2026-09-10T13:18:32.643Z] [project4] [Compiler] I[06:18:32.643] --> reply:textDocument/foldingRange(19) 0 ms +[2026-09-10T13:18:32.701Z] [project4] [Compiler] I[06:18:32.701] <-- textDocument/inlayHint(20) +[2026-09-10T13:18:32.701Z] [project4] [Compiler] I[06:18:32.701] --> reply:textDocument/inlayHint(20) 0 ms +[2026-09-10T13:18:32.772Z] [project4] [Compiler] I[06:18:32.772] <-- textDocument/semanticTokens/full(21) +[2026-09-10T13:18:32.773Z] [project4] [Compiler] I[06:18:32.772] --> reply:textDocument/semanticTokens/full(21) 0 ms +[2026-09-10T13:18:32.790Z] [project4] [Compiler] I[06:18:32.789] <-- shutdown(22) +I[06:18:32.789] --> reply:shutdown(22) 0 ms +[2026-09-10T13:18:32.798Z] [project4] [Compiler] I[06:18:32.790] <-- exit +I[06:18:32.790] LSP finished, exiting with status 0 +[2026-09-10T13:18:32.812Z] [project4] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:18:32.813Z] [project4] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:18:32.879Z] [project4] [Compiler] I[06:18:32.878] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:18:32.879] Features: windows+grpc +I[06:18:32.879] PID: 9080 +I[06:18:32.879] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4 +I[06:18:32.879] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:18:32.879] argv[1]: --background-index +I[06:18:32.879] argv[2]: --enable-config=0 +I[06:18:32.879] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\.vscode\hornet\compile-db\fallback +I[06:18:32.879] argv[4]: -j=10 +I[06:18:32.879] Starting LSP over stdin/stdout +[2026-09-10T13:18:32.879Z] [project4] [Compiler] I[06:18:32.879] <-- initialize(0) +[2026-09-10T13:18:32.901Z] [project4] [Compiler] I[06:18:32.901] --> reply:initialize(0) 21 ms +[2026-09-10T13:18:32.902Z] [project4] [Compiler] Compiler ready +[2026-09-10T13:18:32.905Z] [project4] [Compiler] I[06:18:32.902] <-- initialized +[2026-09-10T13:18:32.905Z] [project4] [Compiler] I[06:18:32.905] <-- textDocument/didOpen +[2026-09-10T13:18:32.907Z] [project4] [Compiler] I[06:18:32.906] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:18:32.906] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\a.cpp version 1 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project4\\a.cpp" +I[06:18:32.906] --> window/workDoneProgress/create(0) +I[06:18:32.906] Enqueueing 3 commands for indexing +[2026-09-10T13:18:32.907Z] [project4] [Compiler] I[06:18:32.907] <-- textDocument/documentSymbol(1) +[2026-09-10T13:18:32.907Z] [project4] [Compiler] I[06:18:32.907] <-- reply(0) +[2026-09-10T13:18:32.907Z] [project4] [Compiler] I[06:18:32.907] --> $/progress +I[06:18:32.907] --> $/progress +[2026-09-10T13:18:32.916Z] [project4] [Compiler] I[06:18:32.915] --> $/progress +I[06:18:32.916] --> $/progress +[2026-09-10T13:18:32.918Z] [project4] [Compiler] I[06:18:32.918] <-- textDocument/documentSymbol(2) +[2026-09-10T13:18:32.926Z] [project4] [Compiler] I[06:18:32.926] <-- textDocument/inlayHint(3) +[2026-09-10T13:18:32.935Z] [project4] [Compiler] I[06:18:32.934] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project4\a.cpp version 1 in 0.01 seconds +[2026-09-10T13:18:32.960Z] [project4] [Compiler] I[06:18:32.960] --> textDocument/publishDiagnostics +I[06:18:32.960] --> reply:textDocument/documentSymbol(1) 53 ms +I[06:18:32.960] --> reply:textDocument/documentSymbol(2) 42 ms +I[06:18:32.960] --> reply:textDocument/inlayHint(3) 34 ms +[2026-09-10T13:18:33.220Z] [project4] [Compiler] I[06:18:33.220] <-- textDocument/foldingRange(4) +[2026-09-10T13:18:33.220Z] [project4] [Compiler] I[06:18:33.220] <-- textDocument/foldingRange(5) +[2026-09-10T13:18:33.220Z] [project4] [Compiler] I[06:18:33.220] --> reply:textDocument/foldingRange(4) 0 ms +[2026-09-10T13:18:33.220Z] [project4] [Compiler] I[06:18:33.220] --> reply:textDocument/foldingRange(5) 0 ms +[2026-09-10T13:18:33.381Z] [project4] [Compiler] I[06:18:33.381] <-- textDocument/semanticTokens/full(6) +[2026-09-10T13:18:33.381Z] [project4] [Compiler] I[06:18:33.381] --> reply:textDocument/semanticTokens/full(6) 0 ms +[2026-09-10T13:18:34.495Z] [project4] [Compiler] Index ready: 3 source files (cached for next startup) diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/vscode.git/Git.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/vscode.git/Git.log new file mode 100644 index 000000000..c0013a3c2 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/vscode.git/Git.log @@ -0,0 +1,18 @@ +2026-09-10 06:18:28.529 [info] [main] Log level: Info +2026-09-10 06:18:28.530 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 06:18:28.530 [info] [main] Validating found git in: "C:\Program Files (x86)\Git\cmd\git.exe" +2026-09-10 06:18:28.530 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 06:18:28.530 [info] [main] Validating found git in: "C:\Users\LiXueqiang\AppData\Local\Programs\Git\cmd\git.exe" +2026-09-10 06:18:28.677 [info] [main] Validating found git in: "D:\Software\Git\cmd\git.exe" +2026-09-10 06:18:28.782 [info] [main] Using git "2.53.0.windows.1" from "D:\Software\Git\cmd\git.exe" +2026-09-10 06:18:28.782 [info] [Model][doInitialScan] Initial repository scan started +2026-09-10 06:18:28.918 [info] > git rev-parse --show-toplevel [123ms] +2026-09-10 06:18:29.004 [info] > git rev-parse --show-toplevel [78ms] +2026-09-10 06:18:29.100 [info] > git rev-parse --show-toplevel [91ms] +2026-09-10 06:18:29.103 [info] [Model][doInitialScan] Initial repository scan completed - repositories (0), closed repositories (0), parent repositories (1), unsafe repositories (0) +2026-09-10 06:18:29.723 [info] > git rev-parse --show-toplevel [78ms] +2026-09-10 06:18:29.822 [info] > git rev-parse --show-toplevel [67ms] +2026-09-10 06:18:29.971 [info] > git rev-parse --show-toplevel [79ms] +2026-09-10 06:18:31.443 [info] > git rev-parse --show-toplevel [69ms] +2026-09-10 06:18:32.406 [info] > git rev-parse --show-toplevel [75ms] +2026-09-10 06:18:33.630 [info] > git rev-parse --show-toplevel [73ms] diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/vscode.github-authentication/GitHub Authentication.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/vscode.github-authentication/GitHub Authentication.log new file mode 100644 index 000000000..a539fd72d --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/vscode.github-authentication/GitHub Authentication.log @@ -0,0 +1,27 @@ +2026-09-10 06:18:28.370 [info] Reading sessions from keychain... +2026-09-10 06:18:28.370 [info] Getting sessions for all scopes... +2026-09-10 06:18:28.370 [info] Got 0 sessions for all scopes... +2026-09-10 06:18:28.370 [info] Getting sessions for all scopes... +2026-09-10 06:18:28.370 [info] Got 0 sessions for all scopes... +2026-09-10 06:18:28.370 [info] Getting sessions for all scopes... +2026-09-10 06:18:28.370 [info] Got 0 sessions for all scopes... +2026-09-10 06:18:28.370 [info] Getting sessions for all scopes... +2026-09-10 06:18:28.370 [info] Got 0 sessions for all scopes... +2026-09-10 06:18:28.506 [info] Getting sessions for read:user,user:email... +2026-09-10 06:18:28.506 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:18:28.521 [info] Getting sessions for all scopes... +2026-09-10 06:18:28.521 [info] Got 0 sessions for all scopes... +2026-09-10 06:18:28.566 [info] Getting sessions for repo... +2026-09-10 06:18:28.566 [info] Got 0 sessions for repo... +2026-09-10 06:18:28.575 [info] Getting sessions for all scopes... +2026-09-10 06:18:28.575 [info] Got 0 sessions for all scopes... +2026-09-10 06:18:28.594 [info] Getting sessions for read:user,user:email... +2026-09-10 06:18:28.594 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:18:28.602 [info] Getting sessions for all scopes... +2026-09-10 06:18:28.602 [info] Got 0 sessions for all scopes... +2026-09-10 06:18:28.604 [info] Getting sessions for repo... +2026-09-10 06:18:28.604 [info] Got 0 sessions for repo... +2026-09-10 06:18:28.605 [info] Getting sessions for all scopes... +2026-09-10 06:18:28.605 [info] Got 0 sessions for all scopes... +2026-09-10 06:18:29.928 [info] Getting sessions for all scopes... +2026-09-10 06:18:29.928 [info] Got 0 sessions for all scopes... diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/vscode.github/GitHub.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/vscode.github/GitHub.log new file mode 100644 index 000000000..0144d6a19 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/exthost/vscode.github/GitHub.log @@ -0,0 +1 @@ +2026-09-10 06:18:28.529 [info] Log level: Info diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/network.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/network.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/notebook.rendering.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/notebook.rendering.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/output_20260910T061827/agentSessionsOutput.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/output_20260910T061827/agentSessionsOutput.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/output_20260910T061827/tasks.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/output_20260910T061827/tasks.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/renderer.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/renderer.log new file mode 100644 index 000000000..9ab389f49 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/renderer.log @@ -0,0 +1,21 @@ +2026-09-10 06:18:27.023 [info] [AgentHost:renderer] Acquiring MessagePort to agent host... +2026-09-10 06:18:27.225 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:18:27.517 [info] [AgentHost:renderer] MessagePort acquired, creating client... +2026-09-10 06:18:27.537 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NzM4NGIzMWYtNDlhNi00MmVjLTkwOGUtNzAzYjE0MmM1MGQw" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:18:27.648 [info] [AgentHost:renderer] Protocol connection established; clientId=ef05cfb1-6b4c-49e8-a6ad-929054893c6b +2026-09-10 06:18:27.652 [info] Started local extension host with pid 13948. +2026-09-10 06:18:27.781 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-10 06:18:27.836 [info] Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +2026-09-10 06:18:28.528 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:18:28.543 [info] [AgentHost] Clearing authentication for resource: https://api.github.com +2026-09-10 06:18:28.584 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:18:28.594 [info] [AgentHost] Clearing authentication for resource: https://api.github.com/repos +2026-09-10 06:18:28.609 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:18:28.619 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:18:28.638 [info] Settings Sync: Account status changed from uninitialized to unavailable +2026-09-10 06:18:28.660 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NzM4NGIzMWYtNDlhNi00MmVjLTkwOGUtNzAzYjE0MmM1MGQw" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:18:32.470 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NzM4NGIzMWYtNDlhNi00MmVjLTkwOGUtNzAzYjE0MmM1MGQw" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:18:32.774 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-10 06:19:02.818 [error] Error: Timed out: panel screenshot + at waitFor (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:16:15) + at async exports.run (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:48:13) diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/textModelChanges.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/textModelChanges.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/views.log b/Extension/artifacts/panel-host/user3/logs/20260910T061826/window1/views.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/agenthost.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/agenthost.log new file mode 100644 index 000000000..894b6d543 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061957/agenthost.log @@ -0,0 +1,28 @@ +2026-09-10 06:19:58.064 [info] Agent Host process started successfully +2026-09-10 06:19:58.080 [info] AgentService initialized +2026-09-10 06:19:58.084 [info] Registering agent provider: copilotcli +2026-09-10 06:19:58.086 [info] Registering agent provider: claude +2026-09-10 06:19:58.098 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:19:58.105 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:19:58.118 [info] [Claude] Models refreshed (merged). Count: 0, +2026-09-10 06:19:58.139 [info] [Claude] SDK not downloaded yet; deferring the migratable chat list +2026-09-10 06:19:58.141 [info] [CommandAutoApprover] Tree-sitter initialized (bash=available, powershell=available) +2026-09-10 06:19:58.144 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:19:58.145 [info] [ProtocolServer] Initialize: clientId=d3402dc1-013f-4b91-a29b-b1e3eaa52a08, protocolVersions=[1.0.0, 0.9.0, 0.8.0, 0.7.0, 0.6.0, 0.5.2, 0.5.1] +2026-09-10 06:19:58.431 [info] [WebSocketProtocol] Server listening on socket \\.\pipe\vscode-agent-host-990ca36cc25db4bd1cbf6360b162c82d9db989f5e4cc80e45bcd50b358682742-5cjIBLaKs0UgAjXwbJi0kA +2026-09-10 06:19:58.874 [info] [AgentService] pruned 0 stale external session row(s) older than 30 days +2026-09-10 06:19:58.874 [info] [Copilot] Listing discoverable chats... +2026-09-10 06:19:58.875 [info] [Copilot] Starting CopilotClient... +2026-09-10 06:19:58.875 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-10 06:19:58.878 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-10 06:19:58.924 [info] [Claude] SDK not downloaded yet; deferring chat discovery +2026-09-10 06:19:59.017 [info] [Claude] Auth token unchanged +2026-09-10 06:19:59.762 [info] [Copilot] CopilotClient started successfully +2026-09-10 06:19:59.763 [info] [Copilot] Restarting CopilotClient (CAPI proxy configuration changed (proxy (none) -> http://127.0.0.1:7890)) +2026-09-10 06:19:59.766 [info] [Copilot] Listed 0 SDK session(s) for discoverable chats +2026-09-10 06:19:59.766 [info] [Copilot] Chat discovery: 0 SDK session(s) -> 0 external, 0 adoptable legacy extension-host, 0 suppressed adoptable legacy extension-host, 0 suppressed archived legacy extension-host, 0 already known to Agent Host, 0 without a working directory, 0 with unsupported or missing client name, 0 outside the import window, 0 without repository metadata, 0 failed to classify (adopt legacy extension-host chats: false) +2026-09-10 06:20:34.237 [info] [ProtocolServer] Client disconnected: d3402dc1-013f-4b91-a29b-b1e3eaa52a08, subscriptions=1 +2026-09-10 06:20:34.244 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:20:34.244 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:20:34.249 [info] AgentService: shutting down all providers... +2026-09-10 06:20:34.250 [info] [Copilot] Shutting down... diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/editSessions.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/editSessions.log new file mode 100644 index 000000000..ed3101386 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061957/editSessions.log @@ -0,0 +1 @@ +2026-09-10 06:19:59.052 [info] Prompting to enable cloud changes, has application previously launched from Continue On flow: false diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/main.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/main.log new file mode 100644 index 000000000..0da7c4831 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061957/main.log @@ -0,0 +1,13 @@ +2026-09-10 06:19:57.266 [info] StorageMainService: creating application shared storage +2026-09-10 06:19:57.266 [info] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +2026-09-10 06:19:57.266 [info] [shared storage] Initializing fallback application storage (path: in-memory) +2026-09-10 06:19:57.266 [error] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +2026-09-10 06:19:57.276 [info] [shared storage] Fallback application storage initialized with 3 items +2026-09-10 06:19:57.655 [info] update#disable - updates are disabled by user preference +2026-09-10 06:19:57.657 [info] update#setState disabled +2026-09-10 06:19:57.680 [info] AgentHostProcessManager: agent host started +2026-09-10 06:19:58.107 [error] [AgentHost:stderr] (node:10628) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +2026-09-10 06:20:34.259 [info] Extension host with pid 4536 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/mcpGateway.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/mcpGateway.log new file mode 100644 index 000000000..ca337de2e --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061957/mcpGateway.log @@ -0,0 +1 @@ +2026-09-10 06:19:57.268 [info] [McpGatewayService] Initialized diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/network-shared.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/network-shared.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/remoteTunnelService.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/remoteTunnelService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/sharedprocess.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/sharedprocess.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/telemetry.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/telemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/terminal.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/terminal.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/tunnelHostService.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/tunnelHostService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/userDataSync.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/userDataSync.log new file mode 100644 index 000000000..9204b8103 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061957/userDataSync.log @@ -0,0 +1,2 @@ +2026-09-10 06:19:58.267 [info] [AutoSync] Using settings sync service https://vscode-sync.trafficmanager.net/ +2026-09-10 06:19:58.267 [info] [AutoSync] Disabled. diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/extHostTelemetry.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/extHostTelemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/exthost.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/exthost.log new file mode 100644 index 000000000..0b8fdbe70 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/exthost.log @@ -0,0 +1,27 @@ +2026-09-10 06:19:58.586 [info] Extension host with pid 4536 started +2026-09-10 06:19:58.586 [info] Skipping acquiring lock for i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\user3\User\workspaceStorage\361e8b56ace503a637641b8787368e88. +2026-09-10 06:19:58.632 [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onLanguage' +2026-09-10 06:19:58.664 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github' +2026-09-10 06:19:58.794 [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.git +2026-09-10 06:19:58.845 [info] ExtensionService#_doActivateExtension vscode.git, startup: true, activationEvent: '*' +2026-09-10 06:19:58.895 [info] ExtensionService#_doActivateExtension vscode.github, startup: true, activationEvent: '*' +2026-09-10 06:19:59.017 [info] ExtensionService#_doActivateExtension hornet.hornet-cpp, startup: true, activationEvent: 'workspaceContains:**/CMakeLists.txt,**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}' +2026-09-10 06:19:59.066 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.openRepositoryInParentFolders', provide the URI of a resource or 'null' for any resource. +2026-09-10 06:19:59.066 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.showProgress', provide the URI of a resource or 'null' for any resource. +2026-09-10 06:19:59.218 [info] Eager extensions activated +2026-09-10 06:19:59.221 [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 06:19:59.224 [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 06:20:04.010 [warning] hornet.hornet-cpp created a webview without a content security policy: https://aka.ms/vscode-webview-missing-csp +2026-09-10 06:20:34.193 [info] Extension host terminating: received terminate message from renderer +2026-09-10 06:20:34.223 [error] Unable to refresh tree view hornet-cpp.callGraph: Canceled +2026-09-10 06:20:34.232 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14048:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12032:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 06:20:34.255 [info] Extension host with pid 4536 exiting with code 0 diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/output_logging_20260910T061958/1-Hornet CC++.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/output_logging_20260910T061958/1-Hornet CC++.log new file mode 100644 index 000000000..65e3d4f42 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/output_logging_20260910T061958/1-Hornet CC++.log @@ -0,0 +1,186 @@ +Hornet C/C++ 0.1.5 (i:\BackFile\code\hornet-cpptools\Extension) +[2026-09-10T13:19:59.112Z] [project5] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:19:59.131Z] [project5] [Compiler] No compilation database: inferred browsing commands for 2 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:19:59.132Z] [project5] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:19:59.191Z] [project5] [Compiler] I[06:19:59.191] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:19:59.192] Features: windows+grpc +I[06:19:59.192] PID: 30268 +I[06:19:59.192] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5 +I[06:19:59.192] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:19:59.192] argv[1]: --background-index +I[06:19:59.192] argv[2]: --enable-config=0 +I[06:19:59.192] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\.vscode\hornet\compile-db\fallback +I[06:19:59.192] argv[4]: -j=10 +[2026-09-10T13:19:59.192Z] [project5] [Compiler] I[06:19:59.192] Starting LSP over stdin/stdout +I[06:19:59.192] <-- initialize(0) +[2026-09-10T13:19:59.212Z] [project5] [Compiler] I[06:19:59.213] --> reply:initialize(0) 20 ms +[2026-09-10T13:19:59.213Z] [project5] [Compiler] Compiler ready +[2026-09-10T13:19:59.255Z] [project5] [Compiler] I[06:19:59.214] <-- initialized +[2026-09-10T13:19:59.257Z] [project5] [Compiler] I[06:19:59.258] <-- textDocument/didOpen +[2026-09-10T13:19:59.258Z] [project5] [Compiler] I[06:19:59.259] <-- textDocument/documentSymbol(1) +I[06:19:59.259] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:19:59.259] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5\\a.cpp" +I[06:19:59.259] --> window/workDoneProgress/create(0) +I[06:19:59.259] Enqueueing 2 commands for indexing +[2026-09-10T13:19:59.259Z] [project5] [Compiler] I[06:19:59.260] <-- reply(0) +I[06:19:59.260] --> $/progress +[2026-09-10T13:19:59.259Z] [project5] [Compiler] I[06:19:59.260] --> $/progress +[2026-09-10T13:19:59.267Z] [project5] [Compiler] I[06:19:59.268] --> $/progress +I[06:19:59.268] --> $/progress +[2026-09-10T13:19:59.268Z] [project5] [Compiler] I[06:19:59.268] --> $/progress +I[06:19:59.268] --> $/progress +[2026-09-10T13:19:59.285Z] [project5] [Compiler] I[06:19:59.286] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\a.cpp version 0 in 0.01 seconds +[2026-09-10T13:19:59.310Z] [project5] [Compiler] I[06:19:59.311] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\b.cpp (2 symbols, 3 refs, 1 files) +[2026-09-10T13:19:59.314Z] [project5] [Compiler] I[06:19:59.315] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\a.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T13:19:59.321Z] [project5] [Compiler] I[06:19:59.321] --> $/progress +[2026-09-10T13:19:59.324Z] [project5] [Compiler] I[06:19:59.324] --> $/progress +[2026-09-10T13:19:59.343Z] [project5] [Compiler] I[06:19:59.344] --> textDocument/publishDiagnostics +I[06:19:59.344] --> reply:textDocument/documentSymbol(1) 85 ms +[2026-09-10T13:19:59.346Z] [project5] [Compiler] I[06:19:59.347] <-- textDocument/documentSymbol(2) +[2026-09-10T13:19:59.347Z] [project5] [Compiler] I[06:19:59.347] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:19:59.483Z] [project5] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:19:59.486Z] [project5] [Compiler] I[06:19:59.487] <-- shutdown(3) +I[06:19:59.487] --> reply:shutdown(3) 0 ms +[2026-09-10T13:19:59.487Z] [project5] [Compiler] I[06:19:59.488] <-- exit +I[06:19:59.488] LSP finished, exiting with status 0 +[2026-09-10T13:19:59.505Z] [project5] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:19:59.506Z] [project5] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:19:59.563Z] [project5] [Compiler] Index build: Error: Index build interrupted by a language-service restart. +[2026-09-10T13:19:59.569Z] [project5] [Compiler] I[06:19:59.569] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:19:59.570] Features: windows+grpc +I[06:19:59.570] PID: 3728 +I[06:19:59.570] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5 +I[06:19:59.570] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:19:59.570] argv[1]: --background-index +I[06:19:59.570] argv[2]: --enable-config=0 +I[06:19:59.570] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\.vscode\hornet\compile-db\fallback +I[06:19:59.570] argv[4]: -j=10 +[2026-09-10T13:19:59.569Z] [project5] [Compiler] I[06:19:59.570] Starting LSP over stdin/stdout +[2026-09-10T13:19:59.569Z] [project5] [Compiler] I[06:19:59.570] <-- initialize(0) +[2026-09-10T13:19:59.589Z] [project5] [Compiler] I[06:19:59.591] --> reply:initialize(0) 20 ms +[2026-09-10T13:19:59.590Z] [project5] [Compiler] Compiler ready +[2026-09-10T13:19:59.593Z] [project5] [Compiler] I[06:19:59.591] <-- initialized +[2026-09-10T13:19:59.595Z] [project5] [Compiler] I[06:19:59.596] <-- textDocument/didOpen +[2026-09-10T13:19:59.595Z] [project5] [Compiler] I[06:19:59.596] <-- textDocument/documentSymbol(1) +[2026-09-10T13:19:59.596Z] [project5] [Compiler] I[06:19:59.597] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\.vscode\hornet\compile-db\fallback\compile_commands.json +[2026-09-10T13:19:59.596Z] [project5] [Compiler] I[06:19:59.597] --> window/workDoneProgress/create(0) +I[06:19:59.597] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5\\a.cpp" +[2026-09-10T13:19:59.596Z] [project5] [Compiler] I[06:19:59.597] Enqueueing 3 commands for indexing +[2026-09-10T13:19:59.596Z] [project5] [Compiler] I[06:19:59.598] <-- reply(0) +I[06:19:59.598] --> $/progress +I[06:19:59.598] --> $/progress +[2026-09-10T13:19:59.610Z] [project5] [Compiler] I[06:19:59.610] --> $/progress +I[06:19:59.610] --> $/progress +I[06:19:59.610] --> $/progress +[2026-09-10T13:19:59.633Z] [project5] [Compiler] I[06:19:59.634] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\new.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T13:19:59.640Z] [project5] [Compiler] I[06:19:59.641] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\a.cpp version 0 in 0.01 seconds +[2026-09-10T13:19:59.641Z] [project5] [Compiler] I[06:19:59.642] --> $/progress +[2026-09-10T13:19:59.643Z] [project5] [Compiler] I[06:19:59.644] <-- workspace/didChangeWatchedFiles +[2026-09-10T13:19:59.658Z] [project5] [Compiler] I[06:19:59.660] <-- workspace/didChangeWatchedFiles +[2026-09-10T13:19:59.665Z] [project5] [Compiler] I[06:19:59.666] --> textDocument/publishDiagnostics +[2026-09-10T13:19:59.665Z] [project5] [Compiler] I[06:19:59.666] --> reply:textDocument/documentSymbol(1) 70 ms +[2026-09-10T13:19:59.667Z] [project5] [Compiler] I[06:19:59.668] <-- textDocument/documentSymbol(2) +[2026-09-10T13:19:59.667Z] [project5] [Compiler] I[06:19:59.668] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:20:01.203Z] [project5] [Compiler] Index ready: 3 source files (cached for next startup) +[2026-09-10T13:20:01.236Z] [project5] [Compiler] I[06:20:01.238] <-- workspace/symbol(3) +[2026-09-10T13:20:01.237Z] [project5] [Compiler] I[06:20:01.238] --> reply:workspace/symbol(3) 0 ms +[2026-09-10T13:20:01.293Z] [project5] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:20:01.304Z] [project5] [Compiler] I[06:20:01.304] <-- shutdown(4) +I[06:20:01.305] --> reply:shutdown(4) 0 ms +[2026-09-10T13:20:01.314Z] [project5] [Compiler] I[06:20:01.305] <-- exit +I[06:20:01.305] LSP finished, exiting with status 0 +[2026-09-10T13:20:01.334Z] [project5] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:20:01.336Z] [project5] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:20:01.440Z] [project5] [Compiler] I[06:20:01.440] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:20:01.441] Features: windows+grpc +I[06:20:01.441] PID: 23136 +I[06:20:01.441] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5 +I[06:20:01.441] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:20:01.441] argv[1]: --background-index +I[06:20:01.441] argv[2]: --enable-config=0 +I[06:20:01.441] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\.vscode\hornet\compile-db\fallback +I[06:20:01.441] argv[4]: -j=10 +I[06:20:01.441] Starting LSP over stdin/stdout +[2026-09-10T13:20:01.440Z] [project5] [Compiler] I[06:20:01.441] <-- initialize(0) +[2026-09-10T13:20:01.464Z] [project5] [Compiler] I[06:20:01.465] --> reply:initialize(0) 23 ms +[2026-09-10T13:20:01.464Z] [project5] [Compiler] Compiler ready +[2026-09-10T13:20:01.473Z] [project5] [Compiler] I[06:20:01.466] <-- initialized +[2026-09-10T13:20:01.474Z] [project5] [Compiler] I[06:20:01.475] <-- textDocument/didOpen +[2026-09-10T13:20:01.475Z] [project5] [Compiler] I[06:20:01.475] <-- textDocument/documentSymbol(1) +[2026-09-10T13:20:01.475Z] [project5] [Compiler] I[06:20:01.476] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:20:01.476] --> window/workDoneProgress/create(0) +I[06:20:01.476] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5\\a.cpp" +I[06:20:01.476] Enqueueing 3 commands for indexing +[2026-09-10T13:20:01.476Z] [project5] [Compiler] I[06:20:01.477] <-- reply(0) +I[06:20:01.477] --> $/progress +I[06:20:01.477] --> $/progress +[2026-09-10T13:20:01.484Z] [project5] [Compiler] I[06:20:01.484] --> $/progress +I[06:20:01.485] --> $/progress +[2026-09-10T13:20:01.499Z] [project5] [Compiler] I[06:20:01.500] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\a.cpp version 0 in 0.01 seconds +[2026-09-10T13:20:01.523Z] [project5] [Compiler] I[06:20:01.524] --> textDocument/publishDiagnostics +I[06:20:01.524] --> reply:textDocument/documentSymbol(1) 48 ms +[2026-09-10T13:20:01.524Z] [project5] [Compiler] I[06:20:01.526] <-- textDocument/documentSymbol(2) +[2026-09-10T13:20:01.525Z] [project5] [Compiler] I[06:20:01.526] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:20:03.071Z] [project5] [Compiler] Index ready: 3 source files (cached for next startup) +[2026-09-10T13:20:03.086Z] [project5] [Compiler] I[06:20:03.087] <-- textDocument/didChange +[2026-09-10T13:20:03.151Z] [project5] [Compiler] I[06:20:03.150] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\a.cpp version 1 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5\\a.cpp" +[2026-09-10T13:20:03.159Z] [project5] [Compiler] I[06:20:03.161] <-- textDocument/documentSymbol(3) +I[06:20:03.161] --> reply:textDocument/documentSymbol(3) 0 ms +[2026-09-10T13:20:03.196Z] [project5] [Compiler] I[06:20:03.197] <-- textDocument/prepareCallHierarchy(4) +[2026-09-10T13:20:03.196Z] [project5] [Compiler] I[06:20:03.197] --> reply:textDocument/prepareCallHierarchy(4) 0 ms +[2026-09-10T13:20:03.414Z] [project5] [Compiler] I[06:20:03.414] <-- textDocument/didOpen +I[06:20:03.415] <-- textDocument/didOpen +[2026-09-10T13:20:03.414Z] [project5] [Compiler] I[06:20:03.415] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\b.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5\\b.cpp" +[2026-09-10T13:20:03.416Z] [project5] [Compiler] I[06:20:03.415] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\new.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project5\\new.cpp" +[2026-09-10T13:20:03.417Z] [project5] [Compiler] I[06:20:03.417] <-- textDocument/documentSymbol(5) +I[06:20:03.418] <-- textDocument/documentSymbol(6) +[2026-09-10T13:20:03.446Z] [project5] [Compiler] I[06:20:03.447] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\b.cpp version 0 in 0.01 seconds +I[06:20:03.447] Built preamble of size 266884 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project5\new.cpp version 0 in 0.02 seconds +[2026-09-10T13:20:03.471Z] [project5] [Compiler] I[06:20:03.472] --> textDocument/publishDiagnostics +I[06:20:03.472] --> textDocument/publishDiagnostics +I[06:20:03.472] --> reply:textDocument/documentSymbol(5) 54 ms +I[06:20:03.472] --> reply:textDocument/documentSymbol(6) 54 ms +[2026-09-10T13:20:03.478Z] [project5] [Compiler] I[06:20:03.479] <-- textDocument/documentSymbol(7) +I[06:20:03.479] --> reply:textDocument/documentSymbol(7) 0 ms +[2026-09-10T13:20:03.478Z] [project5] [Compiler] I[06:20:03.480] <-- textDocument/documentSymbol(8) +I[06:20:03.480] --> reply:textDocument/documentSymbol(8) 0 ms +[2026-09-10T13:20:03.480Z] [project5] [Compiler] I[06:20:03.481] <-- textDocument/references(9) +I[06:20:03.481] --> reply:textDocument/references(9) 0 ms +[2026-09-10T13:20:03.480Z] [project5] [Compiler] I[06:20:03.481] <-- callHierarchy/outgoingCalls(10) +[2026-09-10T13:20:03.480Z] [project5] [Compiler] I[06:20:03.481] --> reply:callHierarchy/outgoingCalls(10) 0 ms +[2026-09-10T13:20:03.482Z] [project5] [Compiler] I[06:20:03.483] <-- callHierarchy/incomingCalls(11) +[2026-09-10T13:20:03.482Z] [project5] [Compiler] I[06:20:03.483] --> reply:callHierarchy/incomingCalls(11) 0 ms +[2026-09-10T13:20:03.485Z] [project5] [Compiler] I[06:20:03.486] <-- textDocument/documentSymbol(12) +[2026-09-10T13:20:03.485Z] [project5] [Compiler] I[06:20:03.486] --> reply:textDocument/documentSymbol(12) 0 ms +[2026-09-10T13:20:03.485Z] [project5] [Compiler] I[06:20:03.487] <-- textDocument/references(13) +[2026-09-10T13:20:03.486Z] [project5] [Compiler] I[06:20:03.487] --> reply:textDocument/references(13) 0 ms +[2026-09-10T13:20:03.486Z] [project5] [Compiler] I[06:20:03.487] <-- callHierarchy/incomingCalls(14) +[2026-09-10T13:20:03.486Z] [project5] [Compiler] I[06:20:03.487] --> reply:callHierarchy/incomingCalls(14) 0 ms +[2026-09-10T13:20:03.488Z] [project5] [Compiler] I[06:20:03.490] <-- textDocument/documentSymbol(15) +I[06:20:03.490] --> reply:textDocument/documentSymbol(15) 0 ms +[2026-09-10T13:20:03.489Z] [project5] [Compiler] I[06:20:03.490] <-- callHierarchy/outgoingCalls(16) +[2026-09-10T13:20:03.490Z] [project5] [Compiler] I[06:20:03.491] --> reply:callHierarchy/outgoingCalls(16) 0 ms +[2026-09-10T13:20:03.612Z] [project5] [Compiler] I[06:20:03.613] <-- textDocument/inlayHint(17) +I[06:20:03.613] --> reply:textDocument/inlayHint(17) 0 ms +[2026-09-10T13:20:03.626Z] [project5] [Compiler] I[06:20:03.627] <-- textDocument/foldingRange(18) +[2026-09-10T13:20:03.628Z] [project5] [Compiler] I[06:20:03.628] --> reply:textDocument/foldingRange(18) 0 ms +[2026-09-10T13:20:03.629Z] [project5] [Compiler] I[06:20:03.630] <-- textDocument/foldingRange(19) +I[06:20:03.630] --> reply:textDocument/foldingRange(19) 0 ms +[2026-09-10T13:20:03.641Z] [project5] [Compiler] I[06:20:03.643] <-- textDocument/semanticTokens/full(20) +I[06:20:03.643] --> reply:textDocument/semanticTokens/full(20) 0 ms +[2026-09-10T13:20:04.037Z] [project5] [Compiler] I[06:20:04.038] <-- textDocument/inlayHint(21) +I[06:20:04.038] --> reply:textDocument/inlayHint(21) 0 ms +[2026-09-10T13:20:04.123Z] [project5] [Compiler] I[06:20:04.124] <-- textDocument/inlayHint(22) +I[06:20:04.124] --> reply:textDocument/inlayHint(22) 0 ms diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/vscode.git/Git.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/vscode.git/Git.log new file mode 100644 index 000000000..295fbb123 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/vscode.git/Git.log @@ -0,0 +1,17 @@ +2026-09-10 06:19:58.997 [info] [main] Log level: Info +2026-09-10 06:19:58.997 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 06:19:58.997 [info] [main] Validating found git in: "C:\Program Files (x86)\Git\cmd\git.exe" +2026-09-10 06:19:58.997 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 06:19:58.997 [info] [main] Validating found git in: "C:\Users\LiXueqiang\AppData\Local\Programs\Git\cmd\git.exe" +2026-09-10 06:19:58.997 [info] [main] Validating found git in: "D:\Software\Git\cmd\git.exe" +2026-09-10 06:19:59.084 [info] [main] Using git "2.53.0.windows.1" from "D:\Software\Git\cmd\git.exe" +2026-09-10 06:19:59.084 [info] [Model][doInitialScan] Initial repository scan started +2026-09-10 06:19:59.183 [info] > git rev-parse --show-toplevel [78ms] +2026-09-10 06:19:59.271 [info] > git rev-parse --show-toplevel [82ms] +2026-09-10 06:19:59.273 [info] [Model][doInitialScan] Initial repository scan completed - repositories (0), closed repositories (0), parent repositories (1), unsafe repositories (0) +2026-09-10 06:19:59.387 [info] > git rev-parse --show-toplevel [108ms] +2026-09-10 06:20:00.357 [info] > git rev-parse --show-toplevel [66ms] +2026-09-10 06:20:00.427 [info] > git rev-parse --show-toplevel [66ms] +2026-09-10 06:20:00.608 [info] > git rev-parse --show-toplevel [66ms] +2026-09-10 06:20:02.243 [info] > git rev-parse --show-toplevel [63ms] +2026-09-10 06:20:03.236 [info] > git rev-parse --show-toplevel [76ms] diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/vscode.github-authentication/GitHub Authentication.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/vscode.github-authentication/GitHub Authentication.log new file mode 100644 index 000000000..47119b177 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/vscode.github-authentication/GitHub Authentication.log @@ -0,0 +1,27 @@ +2026-09-10 06:19:58.786 [info] Reading sessions from keychain... +2026-09-10 06:19:58.786 [info] Getting sessions for all scopes... +2026-09-10 06:19:58.798 [info] Got 0 sessions for all scopes... +2026-09-10 06:19:58.798 [info] Getting sessions for all scopes... +2026-09-10 06:19:58.798 [info] Got 0 sessions for all scopes... +2026-09-10 06:19:58.798 [info] Getting sessions for all scopes... +2026-09-10 06:19:58.798 [info] Got 0 sessions for all scopes... +2026-09-10 06:19:58.810 [info] Getting sessions for all scopes... +2026-09-10 06:19:58.810 [info] Got 0 sessions for all scopes... +2026-09-10 06:19:58.915 [info] Getting sessions for read:user,user:email... +2026-09-10 06:19:58.915 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:19:58.991 [info] Getting sessions for all scopes... +2026-09-10 06:19:58.991 [info] Got 0 sessions for all scopes... +2026-09-10 06:19:59.054 [info] Getting sessions for repo... +2026-09-10 06:19:59.054 [info] Got 0 sessions for repo... +2026-09-10 06:19:59.061 [info] Getting sessions for all scopes... +2026-09-10 06:19:59.061 [info] Got 0 sessions for all scopes... +2026-09-10 06:19:59.097 [info] Getting sessions for read:user,user:email... +2026-09-10 06:19:59.097 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:19:59.165 [info] Getting sessions for all scopes... +2026-09-10 06:19:59.165 [info] Got 0 sessions for all scopes... +2026-09-10 06:19:59.172 [info] Getting sessions for repo... +2026-09-10 06:19:59.172 [info] Got 0 sessions for repo... +2026-09-10 06:19:59.176 [info] Getting sessions for all scopes... +2026-09-10 06:19:59.176 [info] Got 0 sessions for all scopes... +2026-09-10 06:20:00.708 [info] Getting sessions for all scopes... +2026-09-10 06:20:00.708 [info] Got 0 sessions for all scopes... diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/vscode.github/GitHub.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/vscode.github/GitHub.log new file mode 100644 index 000000000..543ab9e57 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/exthost/vscode.github/GitHub.log @@ -0,0 +1 @@ +2026-09-10 06:19:59.008 [info] Log level: Info diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/network.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/network.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/notebook.rendering.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/notebook.rendering.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/output_20260910T061958/agentSessionsOutput.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/output_20260910T061958/agentSessionsOutput.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/output_20260910T061958/tasks.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/output_20260910T061958/tasks.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/renderer.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/renderer.log new file mode 100644 index 000000000..ed9bda8c8 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/renderer.log @@ -0,0 +1,21 @@ +2026-09-10 06:19:57.675 [info] [AgentHost:renderer] Acquiring MessagePort to agent host... +2026-09-10 06:19:57.862 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:19:58.071 [info] [AgentHost:renderer] MessagePort acquired, creating client... +2026-09-10 06:19:58.086 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NWZiM2Q4MTQtNjhiYS00ZGNlLTk1NzctODRiYmM1YjBjZDY5" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:19:58.167 [info] [AgentHost:renderer] Protocol connection established; clientId=d3402dc1-013f-4b91-a29b-b1e3eaa52a08 +2026-09-10 06:19:58.187 [info] Started local extension host with pid 4536. +2026-09-10 06:19:58.235 [info] Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +2026-09-10 06:19:58.684 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-10 06:19:58.993 [info] Settings Sync: Account status changed from uninitialized to unavailable +2026-09-10 06:19:59.008 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NWZiM2Q4MTQtNjhiYS00ZGNlLTk1NzctODRiYmM1YjBjZDY5" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:19:59.017 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:19:59.025 [info] [AgentHost] Clearing authentication for resource: https://api.github.com +2026-09-10 06:19:59.063 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:19:59.088 [info] [AgentHost] Clearing authentication for resource: https://api.github.com/repos +2026-09-10 06:19:59.172 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:19:59.178 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:20:03.600 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NWZiM2Q4MTQtNjhiYS00ZGNlLTk1NzctODRiYmM1YjBjZDY5" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:20:04.015 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-10 06:20:34.193 [error] Error: Timed out: panel screenshot + at waitFor (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:16:15) + at async exports.run (i:\BackFile\code\hornet-cpptools\Extension\test\hornet\index.vscode.cjs:48:13) diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/textModelChanges.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/textModelChanges.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/views.log b/Extension/artifacts/panel-host/user3/logs/20260910T061957/window1/views.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/agenthost.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/agenthost.log new file mode 100644 index 000000000..d6c9463f3 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T062205/agenthost.log @@ -0,0 +1,28 @@ +2026-09-10 06:22:07.476 [info] Agent Host process started successfully +2026-09-10 06:22:07.502 [info] AgentService initialized +2026-09-10 06:22:07.513 [info] Registering agent provider: copilotcli +2026-09-10 06:22:07.517 [info] Registering agent provider: claude +2026-09-10 06:22:07.538 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:22:07.557 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:22:07.567 [info] [Claude] Models refreshed (merged). Count: 0, +2026-09-10 06:22:07.597 [info] [Claude] SDK not downloaded yet; deferring the migratable chat list +2026-09-10 06:22:07.604 [info] [CommandAutoApprover] Tree-sitter initialized (bash=available, powershell=available) +2026-09-10 06:22:07.681 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:22:07.682 [info] [ProtocolServer] Initialize: clientId=14fe13b1-25bf-4f81-8116-77c4ce21bcd9, protocolVersions=[1.0.0, 0.9.0, 0.8.0, 0.7.0, 0.6.0, 0.5.2, 0.5.1] +2026-09-10 06:22:08.045 [info] [WebSocketProtocol] Server listening on socket \\.\pipe\vscode-agent-host-990ca36cc25db4bd1cbf6360b162c82d9db989f5e4cc80e45bcd50b358682742-1pQLy156ZVlylkcXJrCBTA +2026-09-10 06:22:08.938 [info] [Claude] Auth token unchanged +2026-09-10 06:22:09.290 [info] [AgentService] pruned 0 stale external session row(s) older than 30 days +2026-09-10 06:22:09.291 [info] [Copilot] Listing discoverable chats... +2026-09-10 06:22:09.291 [info] [Copilot] Starting CopilotClient... +2026-09-10 06:22:09.292 [info] [Copilot] Resolved CAPI proxy and forwarded HTTP_PROXY/HTTPS_PROXY to Copilot SDK +2026-09-10 06:22:09.292 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-10 06:22:09.296 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\88e44fa0e0\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-10 06:22:09.404 [info] [Claude] SDK not downloaded yet; deferring chat discovery +2026-09-10 06:22:10.971 [info] [Copilot] CopilotClient started successfully +2026-09-10 06:22:10.975 [info] [Copilot] Listed 0 SDK session(s) for discoverable chats +2026-09-10 06:22:10.975 [info] [Copilot] Chat discovery: 0 SDK session(s) -> 0 external, 0 adoptable legacy extension-host, 0 suppressed adoptable legacy extension-host, 0 suppressed archived legacy extension-host, 0 already known to Agent Host, 0 without a working directory, 0 with unsupported or missing client name, 0 outside the import window, 0 without repository metadata, 0 failed to classify (adopt legacy extension-host chats: false) +2026-09-10 06:22:16.693 [info] [ProtocolServer] Client disconnected: 14fe13b1-25bf-4f81-8116-77c4ce21bcd9, subscriptions=1 +2026-09-10 06:22:16.696 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:22:16.696 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 06:22:16.700 [info] AgentService: shutting down all providers... +2026-09-10 06:22:16.700 [info] [Copilot] Shutting down... diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/editSessions.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/editSessions.log new file mode 100644 index 000000000..1550f5921 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T062205/editSessions.log @@ -0,0 +1 @@ +2026-09-10 06:22:10.975 [info] Prompting to enable cloud changes, has application previously launched from Continue On flow: false diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/main.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/main.log new file mode 100644 index 000000000..b2a34ff55 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T062205/main.log @@ -0,0 +1,13 @@ +2026-09-10 06:22:06.113 [info] StorageMainService: creating application shared storage +2026-09-10 06:22:06.113 [info] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +2026-09-10 06:22:06.113 [info] [shared storage] Initializing fallback application storage (path: in-memory) +2026-09-10 06:22:06.113 [error] Error: Error mutex already exists + at $s.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/main.js:561:27488) +2026-09-10 06:22:06.134 [info] [shared storage] Fallback application storage initialized with 3 items +2026-09-10 06:22:06.770 [info] update#disable - updates are disabled by user preference +2026-09-10 06:22:06.773 [info] update#setState disabled +2026-09-10 06:22:06.814 [info] AgentHostProcessManager: agent host started +2026-09-10 06:22:07.555 [error] [AgentHost:stderr] (node:10800) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +2026-09-10 06:22:16.712 [info] Extension host with pid 28800 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/mcpGateway.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/mcpGateway.log new file mode 100644 index 000000000..894ce40af --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T062205/mcpGateway.log @@ -0,0 +1 @@ +2026-09-10 06:22:06.119 [info] [McpGatewayService] Initialized diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/network-shared.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/network-shared.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/remoteTunnelService.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/remoteTunnelService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/sharedprocess.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/sharedprocess.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/telemetry.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/telemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/terminal.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/terminal.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/tunnelHostService.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/tunnelHostService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/userDataSync.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/userDataSync.log new file mode 100644 index 000000000..d7627433b --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T062205/userDataSync.log @@ -0,0 +1,2 @@ +2026-09-10 06:22:07.937 [info] [AutoSync] Using settings sync service https://vscode-sync.trafficmanager.net/ +2026-09-10 06:22:07.937 [info] [AutoSync] Disabled. diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/extHostTelemetry.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/extHostTelemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/exthost.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/exthost.log new file mode 100644 index 000000000..79aea8cdd --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/exthost.log @@ -0,0 +1,37 @@ +2026-09-10 06:22:08.446 [info] Extension host with pid 28800 started +2026-09-10 06:22:08.447 [info] Skipping acquiring lock for i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\user3\User\workspaceStorage\adb8f8f8206fefe28670869c53f33f9d. +2026-09-10 06:22:08.508 [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onLanguage' +2026-09-10 06:22:08.586 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github' +2026-09-10 06:22:08.817 [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.git +2026-09-10 06:22:08.958 [info] ExtensionService#_doActivateExtension vscode.git, startup: true, activationEvent: '*' +2026-09-10 06:22:09.081 [info] ExtensionService#_doActivateExtension vscode.github, startup: true, activationEvent: '*' +2026-09-10 06:22:09.169 [info] ExtensionService#_doActivateExtension hornet.hornet-cpp, startup: true, activationEvent: 'workspaceContains:**/CMakeLists.txt,**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}' +2026-09-10 06:22:09.590 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.openRepositoryInParentFolders', provide the URI of a resource or 'null' for any resource. +2026-09-10 06:22:09.590 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.showProgress', provide the URI of a resource or 'null' for any resource. +2026-09-10 06:22:09.645 [info] Eager extensions activated +2026-09-10 06:22:09.803 [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 06:22:09.809 [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 06:22:14.434 [warning] hornet.hornet-cpp created a webview without a content security policy: https://aka.ms/vscode-webview-missing-csp +2026-09-10 06:22:16.657 [info] Extension host terminating: received terminate message from renderer +2026-09-10 06:22:16.678 [error] Unable to refresh tree view hornet-cpp.callGraph: Canceled +2026-09-10 06:22:16.681 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14048:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12032:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 06:22:16.682 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/88e44fa0e0/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14048:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12032:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 06:22:16.711 [info] Extension host with pid 28800 exiting with code 0 diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/output_logging_20260910T062208/1-Hornet CC++.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/output_logging_20260910T062208/1-Hornet CC++.log new file mode 100644 index 000000000..073b378f4 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/output_logging_20260910T062208/1-Hornet CC++.log @@ -0,0 +1,182 @@ +Hornet C/C++ 0.1.5 (i:\BackFile\code\hornet-cpptools\Extension) +[2026-09-10T13:22:09.254Z] [project6] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:22:09.294Z] [project6] [Compiler] No compilation database: inferred browsing commands for 2 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:22:09.295Z] [project6] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:22:09.422Z] [project6] [Compiler] I[06:22:09.421] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:22:09.423] Features: windows+grpc +I[06:22:09.423] PID: 11148 +I[06:22:09.423] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6 +I[06:22:09.423] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:22:09.423] argv[1]: --background-index +I[06:22:09.423] argv[2]: --enable-config=0 +I[06:22:09.423] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\.vscode\hornet\compile-db\fallback +I[06:22:09.423] argv[4]: -j=10 +[2026-09-10T13:22:09.425Z] [project6] [Compiler] I[06:22:09.423] Starting LSP over stdin/stdout +I[06:22:09.424] <-- initialize(0) +[2026-09-10T13:22:09.472Z] [project6] [Compiler] I[06:22:09.472] --> reply:initialize(0) 48 ms +[2026-09-10T13:22:09.474Z] [project6] [Compiler] Compiler ready +[2026-09-10T13:22:09.486Z] [project6] [Compiler] I[06:22:09.475] <-- initialized +[2026-09-10T13:22:09.488Z] [project6] [Compiler] I[06:22:09.488] <-- textDocument/didOpen +[2026-09-10T13:22:09.489Z] [project6] [Compiler] I[06:22:09.490] <-- textDocument/documentSymbol(1) +[2026-09-10T13:22:09.490Z] [project6] [Compiler] I[06:22:09.491] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\.vscode\hornet\compile-db\fallback\compile_commands.json +[2026-09-10T13:22:09.490Z] [project6] [Compiler] I[06:22:09.491] --> window/workDoneProgress/create(0) +I[06:22:09.491] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6\\a.cpp" +I[06:22:09.491] Enqueueing 2 commands for indexing +[2026-09-10T13:22:09.493Z] [project6] [Compiler] I[06:22:09.494] <-- reply(0) +I[06:22:09.494] --> $/progress +I[06:22:09.494] --> $/progress +[2026-09-10T13:22:09.512Z] [project6] [Compiler] I[06:22:09.512] --> $/progress +I[06:22:09.513] --> $/progress +I[06:22:09.513] --> $/progress +I[06:22:09.513] --> $/progress +[2026-09-10T13:22:09.536Z] [project6] [Compiler] I[06:22:09.537] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\b.cpp (2 symbols, 3 refs, 1 files) +[2026-09-10T13:22:09.538Z] [project6] [Compiler] I[06:22:09.539] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\a.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T13:22:09.553Z] [project6] [Compiler] I[06:22:09.553] --> $/progress +I[06:22:09.553] --> $/progress +[2026-09-10T13:22:09.557Z] [project6] [Compiler] I[06:22:09.558] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\a.cpp version 0 in 0.02 seconds +[2026-09-10T13:22:09.661Z] [project6] [Compiler] I[06:22:09.611] --> textDocument/publishDiagnostics +I[06:22:09.611] --> reply:textDocument/documentSymbol(1) 120 ms +[2026-09-10T13:22:09.668Z] [project6] [Compiler] I[06:22:09.668] <-- textDocument/documentSymbol(2) +[2026-09-10T13:22:09.668Z] [project6] [Compiler] I[06:22:09.668] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:22:09.682Z] [project6] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:22:09.689Z] [project6] [Compiler] I[06:22:09.690] <-- shutdown(3) +I[06:22:09.690] --> reply:shutdown(3) 0 ms +[2026-09-10T13:22:09.703Z] [project6] [Compiler] I[06:22:09.690] <-- exit +I[06:22:09.691] LSP finished, exiting with status 0 +[2026-09-10T13:22:09.733Z] [project6] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:22:09.735Z] [project6] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:22:09.800Z] [project6] [Compiler] Index build: Error: Index build interrupted by a language-service restart. +[2026-09-10T13:22:09.876Z] [project6] [Compiler] I[06:22:09.868] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:22:09.870] Features: windows+grpc +I[06:22:09.870] PID: 29688 +I[06:22:09.870] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6 +I[06:22:09.870] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:22:09.870] argv[1]: --background-index +I[06:22:09.870] argv[2]: --enable-config=0 +I[06:22:09.870] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\.vscode\hornet\compile-db\fallback +I[06:22:09.870] argv[4]: -j=10 +I[06:22:09.870] Starting LSP over stdin/stdout +I[06:22:09.871] <-- initialize(0) +[2026-09-10T13:22:09.928Z] [project6] [Compiler] I[06:22:09.929] --> reply:initialize(0) 58 ms +[2026-09-10T13:22:09.929Z] [project6] [Compiler] Compiler ready +[2026-09-10T13:22:09.937Z] [project6] [Compiler] I[06:22:09.930] <-- initialized +[2026-09-10T13:22:09.939Z] [project6] [Compiler] I[06:22:09.940] <-- textDocument/didOpen +[2026-09-10T13:22:09.940Z] [project6] [Compiler] I[06:22:09.940] <-- textDocument/documentSymbol(1) +[2026-09-10T13:22:09.941Z] [project6] [Compiler] I[06:22:09.942] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:22:09.942] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6\\a.cpp" +[2026-09-10T13:22:09.941Z] [project6] [Compiler] I[06:22:09.942] --> window/workDoneProgress/create(0) +I[06:22:09.942] Enqueueing 3 commands for indexing +[2026-09-10T13:22:09.943Z] [project6] [Compiler] I[06:22:09.943] <-- reply(0) +I[06:22:09.943] --> $/progress +I[06:22:09.943] --> $/progress +[2026-09-10T13:22:09.964Z] [project6] [Compiler] I[06:22:09.965] --> $/progress +I[06:22:09.965] --> $/progress +[2026-09-10T13:22:09.965Z] [project6] [Compiler] I[06:22:09.965] --> $/progress +[2026-09-10T13:22:10.001Z] [project6] [Compiler] I[06:22:10.002] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\new.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T13:22:10.018Z] [project6] [Compiler] I[06:22:10.018] --> $/progress +[2026-09-10T13:22:10.020Z] [project6] [Compiler] I[06:22:10.021] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\a.cpp version 0 in 0.03 seconds +[2026-09-10T13:22:10.084Z] [project6] [Compiler] I[06:22:10.078] --> textDocument/publishDiagnostics +I[06:22:10.078] --> reply:textDocument/documentSymbol(1) 137 ms +[2026-09-10T13:22:10.107Z] [project6] [Compiler] I[06:22:10.107] <-- textDocument/documentSymbol(2) +[2026-09-10T13:22:10.107Z] [project6] [Compiler] I[06:22:10.108] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:22:11.615Z] [project6] [Compiler] Index ready: 3 source files (cached for next startup) +[2026-09-10T13:22:11.644Z] [project6] [Compiler] I[06:22:11.645] <-- workspace/symbol(3) +[2026-09-10T13:22:11.645Z] [project6] [Compiler] I[06:22:11.645] --> reply:workspace/symbol(3) 0 ms +[2026-09-10T13:22:11.678Z] [project6] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T13:22:11.690Z] [project6] [Compiler] I[06:22:11.690] <-- shutdown(4) +I[06:22:11.690] --> reply:shutdown(4) 0 ms +[2026-09-10T13:22:11.694Z] [project6] [Compiler] I[06:22:11.694] <-- exit +I[06:22:11.694] LSP finished, exiting with status 0 +[2026-09-10T13:22:11.727Z] [project6] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T13:22:11.729Z] [project6] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T13:22:11.851Z] [project6] [Compiler] I[06:22:11.845] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[06:22:11.846] Features: windows+grpc +I[06:22:11.846] PID: 13164 +I[06:22:11.846] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6 +I[06:22:11.846] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[06:22:11.846] argv[1]: --background-index +I[06:22:11.846] argv[2]: --enable-config=0 +I[06:22:11.846] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\.vscode\hornet\compile-db\fallback +I[06:22:11.846] argv[4]: -j=10 +I[06:22:11.846] Starting LSP over stdin/stdout +I[06:22:11.846] <-- initialize(0) +[2026-09-10T13:22:11.878Z] [project6] [Compiler] I[06:22:11.879] --> reply:initialize(0) 32 ms +[2026-09-10T13:22:11.879Z] [project6] [Compiler] Compiler ready +[2026-09-10T13:22:11.888Z] [project6] [Compiler] I[06:22:11.880] <-- initialized +[2026-09-10T13:22:11.892Z] [project6] [Compiler] I[06:22:11.892] <-- textDocument/didOpen +[2026-09-10T13:22:11.892Z] [project6] [Compiler] I[06:22:11.892] <-- textDocument/documentSymbol(1) +[2026-09-10T13:22:11.892Z] [project6] [Compiler] I[06:22:11.893] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\.vscode\hornet\compile-db\fallback\compile_commands.json +I[06:22:11.893] --> window/workDoneProgress/create(0) +I[06:22:11.893] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6\\a.cpp" +I[06:22:11.893] Enqueueing 3 commands for indexing +[2026-09-10T13:22:11.893Z] [project6] [Compiler] I[06:22:11.894] <-- reply(0) +I[06:22:11.894] --> $/progress +I[06:22:11.894] --> $/progress +[2026-09-10T13:22:11.910Z] [project6] [Compiler] I[06:22:11.907] --> $/progress +I[06:22:11.907] --> $/progress +[2026-09-10T13:22:11.935Z] [project6] [Compiler] I[06:22:11.936] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\a.cpp version 0 in 0.02 seconds +[2026-09-10T13:22:11.977Z] [project6] [Compiler] I[06:22:11.977] --> textDocument/publishDiagnostics +I[06:22:11.978] --> reply:textDocument/documentSymbol(1) 85 ms +[2026-09-10T13:22:11.980Z] [project6] [Compiler] I[06:22:11.981] <-- textDocument/documentSymbol(2) +[2026-09-10T13:22:11.980Z] [project6] [Compiler] I[06:22:11.981] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T13:22:13.503Z] [project6] [Compiler] Index ready: 3 source files (cached for next startup) +[2026-09-10T13:22:13.527Z] [project6] [Compiler] I[06:22:13.527] <-- textDocument/didChange +[2026-09-10T13:22:13.581Z] [project6] [Compiler] I[06:22:13.582] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\a.cpp version 1 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6\\a.cpp" +[2026-09-10T13:22:13.624Z] [project6] [Compiler] I[06:22:13.624] <-- textDocument/documentSymbol(3) +I[06:22:13.624] --> reply:textDocument/documentSymbol(3) 0 ms +[2026-09-10T13:22:13.660Z] [project6] [Compiler] I[06:22:13.661] <-- textDocument/prepareCallHierarchy(4) +[2026-09-10T13:22:13.660Z] [project6] [Compiler] I[06:22:13.661] --> reply:textDocument/prepareCallHierarchy(4) 0 ms +[2026-09-10T13:22:13.906Z] [project6] [Compiler] I[06:22:13.907] <-- textDocument/didOpen +[2026-09-10T13:22:13.906Z] [project6] [Compiler] I[06:22:13.907] <-- textDocument/didOpen +I[06:22:13.907] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\b.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6\\b.cpp" +[2026-09-10T13:22:13.907Z] [project6] [Compiler] I[06:22:13.907] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\new.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\panel-host\\project6\\new.cpp" +[2026-09-10T13:22:13.907Z] [project6] [Compiler] I[06:22:13.908] <-- textDocument/documentSymbol(5) +[2026-09-10T13:22:13.907Z] [project6] [Compiler] I[06:22:13.908] <-- textDocument/documentSymbol(6) +[2026-09-10T13:22:13.937Z] [project6] [Compiler] I[06:22:13.937] Built preamble of size 266880 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\b.cpp version 0 in 0.02 seconds +I[06:22:13.937] Built preamble of size 266884 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\panel-host\project6\new.cpp version 0 in 0.02 seconds +[2026-09-10T13:22:13.943Z] [project6] [Compiler] I[06:22:13.944] <-- textDocument/inlayHint(7) +[2026-09-10T13:22:13.944Z] [project6] [Compiler] I[06:22:13.944] --> reply:textDocument/inlayHint(7) 0 ms +[2026-09-10T13:22:13.972Z] [project6] [Compiler] I[06:22:13.973] <-- textDocument/foldingRange(8) +[2026-09-10T13:22:13.973Z] [project6] [Compiler] I[06:22:13.973] --> reply:textDocument/foldingRange(8) 0 ms +[2026-09-10T13:22:13.978Z] [project6] [Compiler] I[06:22:13.978] --> textDocument/publishDiagnostics +I[06:22:13.978] --> reply:textDocument/documentSymbol(5) 70 ms +I[06:22:13.978] --> textDocument/publishDiagnostics +I[06:22:13.978] --> reply:textDocument/documentSymbol(6) 70 ms +[2026-09-10T13:22:13.985Z] [project6] [Compiler] I[06:22:13.985] <-- textDocument/documentSymbol(9) +[2026-09-10T13:22:13.985Z] [project6] [Compiler] I[06:22:13.986] --> reply:textDocument/documentSymbol(9) 0 ms +I[06:22:13.986] <-- textDocument/documentSymbol(10) +[2026-09-10T13:22:13.986Z] [project6] [Compiler] I[06:22:13.986] --> reply:textDocument/documentSymbol(10) 0 ms +[2026-09-10T13:22:13.986Z] [project6] [Compiler] I[06:22:13.987] <-- textDocument/references(11) +[2026-09-10T13:22:13.987Z] [project6] [Compiler] I[06:22:13.987] --> reply:textDocument/references(11) 0 ms +[2026-09-10T13:22:13.987Z] [project6] [Compiler] I[06:22:13.988] <-- callHierarchy/outgoingCalls(12) +[2026-09-10T13:22:13.989Z] [project6] [Compiler] I[06:22:13.988] --> reply:callHierarchy/outgoingCalls(12) 0 ms +[2026-09-10T13:22:13.990Z] [project6] [Compiler] I[06:22:13.990] <-- callHierarchy/incomingCalls(13) +I[06:22:13.991] --> reply:callHierarchy/incomingCalls(13) 0 ms +[2026-09-10T13:22:13.994Z] [project6] [Compiler] I[06:22:13.995] <-- textDocument/documentSymbol(14) +[2026-09-10T13:22:13.995Z] [project6] [Compiler] I[06:22:13.995] --> reply:textDocument/documentSymbol(14) 0 ms +[2026-09-10T13:22:13.996Z] [project6] [Compiler] I[06:22:13.997] <-- textDocument/references(15) +[2026-09-10T13:22:13.996Z] [project6] [Compiler] I[06:22:13.997] --> reply:textDocument/references(15) 0 ms +[2026-09-10T13:22:13.997Z] [project6] [Compiler] I[06:22:13.998] <-- callHierarchy/incomingCalls(16) +[2026-09-10T13:22:13.997Z] [project6] [Compiler] I[06:22:13.998] --> reply:callHierarchy/incomingCalls(16) 0 ms +[2026-09-10T13:22:14.002Z] [project6] [Compiler] I[06:22:14.003] <-- textDocument/documentSymbol(17) +[2026-09-10T13:22:14.002Z] [project6] [Compiler] I[06:22:14.003] --> reply:textDocument/documentSymbol(17) 0 ms +[2026-09-10T13:22:14.003Z] [project6] [Compiler] I[06:22:14.004] <-- callHierarchy/outgoingCalls(18) +[2026-09-10T13:22:14.003Z] [project6] [Compiler] I[06:22:14.004] --> reply:callHierarchy/outgoingCalls(18) 0 ms +[2026-09-10T13:22:14.413Z] [project6] [Compiler] I[06:22:14.414] <-- textDocument/foldingRange(19) +[2026-09-10T13:22:14.414Z] [project6] [Compiler] I[06:22:14.414] --> reply:textDocument/foldingRange(19) 0 ms +I[06:22:14.414] <-- textDocument/semanticTokens/full(20) +[2026-09-10T13:22:14.414Z] [project6] [Compiler] I[06:22:14.415] --> reply:textDocument/semanticTokens/full(20) 0 ms +[2026-09-10T13:22:14.568Z] [project6] [Compiler] I[06:22:14.569] <-- textDocument/inlayHint(21) +[2026-09-10T13:22:14.568Z] [project6] [Compiler] I[06:22:14.569] --> reply:textDocument/inlayHint(21) 0 ms diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/vscode.git/Git.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/vscode.git/Git.log new file mode 100644 index 000000000..3fc716f33 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/vscode.git/Git.log @@ -0,0 +1,19 @@ +2026-09-10 06:22:09.240 [info] [main] Log level: Info +2026-09-10 06:22:09.240 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 06:22:09.240 [info] [main] Validating found git in: "C:\Program Files (x86)\Git\cmd\git.exe" +2026-09-10 06:22:09.240 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 06:22:09.240 [info] [main] Validating found git in: "C:\Users\LiXueqiang\AppData\Local\Programs\Git\cmd\git.exe" +2026-09-10 06:22:09.436 [info] [main] Validating found git in: "D:\Software\Git\cmd\git.exe" +2026-09-10 06:22:09.636 [info] [main] Using git "2.53.0.windows.1" from "D:\Software\Git\cmd\git.exe" +2026-09-10 06:22:09.636 [info] [Model][doInitialScan] Initial repository scan started +2026-09-10 06:22:09.845 [info] > git rev-parse --show-toplevel [184ms] +2026-09-10 06:22:10.091 [info] > git rev-parse --show-toplevel [204ms] +2026-09-10 06:22:10.096 [info] [Model][doInitialScan] Initial repository scan completed - repositories (0), closed repositories (0), parent repositories (1), unsafe repositories (0) +2026-09-10 06:22:10.262 [info] > git rev-parse --show-toplevel [155ms] +2026-09-10 06:22:10.673 [info] > git rev-parse --show-toplevel [129ms] +2026-09-10 06:22:10.810 [info] > git rev-parse --show-toplevel [128ms] +2026-09-10 06:22:10.952 [info] > git rev-parse --show-toplevel [129ms] +2026-09-10 06:22:11.644 [info] > git rev-parse --show-toplevel [103ms] +2026-09-10 06:22:11.953 [info] > git rev-parse --show-toplevel [111ms] +2026-09-10 06:22:12.698 [info] > git rev-parse --show-toplevel [115ms] +2026-09-10 06:22:13.702 [info] > git rev-parse --show-toplevel [79ms] diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/vscode.github-authentication/GitHub Authentication.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/vscode.github-authentication/GitHub Authentication.log new file mode 100644 index 000000000..25a05dd12 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/vscode.github-authentication/GitHub Authentication.log @@ -0,0 +1,27 @@ +2026-09-10 06:22:08.808 [info] Reading sessions from keychain... +2026-09-10 06:22:08.808 [info] Getting sessions for all scopes... +2026-09-10 06:22:08.814 [info] Got 0 sessions for all scopes... +2026-09-10 06:22:08.814 [info] Getting sessions for all scopes... +2026-09-10 06:22:08.814 [info] Got 0 sessions for all scopes... +2026-09-10 06:22:08.815 [info] Getting sessions for all scopes... +2026-09-10 06:22:08.815 [info] Got 0 sessions for all scopes... +2026-09-10 06:22:08.815 [info] Getting sessions for read:user,user:email... +2026-09-10 06:22:08.815 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:22:08.882 [info] Getting sessions for all scopes... +2026-09-10 06:22:08.882 [info] Got 0 sessions for all scopes... +2026-09-10 06:22:08.884 [info] Getting sessions for all scopes... +2026-09-10 06:22:08.884 [info] Got 0 sessions for all scopes... +2026-09-10 06:22:09.124 [info] Getting sessions for repo... +2026-09-10 06:22:09.124 [info] Got 0 sessions for repo... +2026-09-10 06:22:09.166 [info] Getting sessions for all scopes... +2026-09-10 06:22:09.166 [info] Got 0 sessions for all scopes... +2026-09-10 06:22:09.224 [info] Getting sessions for read:user,user:email... +2026-09-10 06:22:09.225 [info] Got 0 sessions for read:user,user:email... +2026-09-10 06:22:09.250 [info] Getting sessions for all scopes... +2026-09-10 06:22:09.250 [info] Got 0 sessions for all scopes... +2026-09-10 06:22:09.264 [info] Getting sessions for repo... +2026-09-10 06:22:09.264 [info] Got 0 sessions for repo... +2026-09-10 06:22:09.278 [info] Getting sessions for all scopes... +2026-09-10 06:22:09.278 [info] Got 0 sessions for all scopes... +2026-09-10 06:22:12.176 [info] Getting sessions for all scopes... +2026-09-10 06:22:12.176 [info] Got 0 sessions for all scopes... diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/vscode.github/GitHub.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/vscode.github/GitHub.log new file mode 100644 index 000000000..3d38ca064 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/exthost/vscode.github/GitHub.log @@ -0,0 +1 @@ +2026-09-10 06:22:09.239 [info] Log level: Info diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/network.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/network.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/notebook.rendering.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/notebook.rendering.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/output_20260910T062207/agentSessionsOutput.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/output_20260910T062207/agentSessionsOutput.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/output_20260910T062207/tasks.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/output_20260910T062207/tasks.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/renderer.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/renderer.log new file mode 100644 index 000000000..6ac3d5276 --- /dev/null +++ b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/renderer.log @@ -0,0 +1,18 @@ +2026-09-10 06:22:06.805 [info] [AgentHost:renderer] Acquiring MessagePort to agent host... +2026-09-10 06:22:07.137 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:22:07.494 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/ZjZjYjc0NDMtMDFhMy00ZGNjLTgzMDItY2E3ZGZiNmYwNDU5" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:22:07.538 [info] [AgentHost:renderer] MessagePort acquired, creating client... +2026-09-10 06:22:07.703 [info] [AgentHost:renderer] Protocol connection established; clientId=14fe13b1-25bf-4f81-8116-77c4ce21bcd9 +2026-09-10 06:22:07.731 [info] Started local extension host with pid 28800. +2026-09-10 06:22:07.832 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-10 06:22:07.880 [info] Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +2026-09-10 06:22:08.937 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:22:09.075 [info] [AgentHost] Clearing authentication for resource: https://api.github.com +2026-09-10 06:22:09.169 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:22:09.180 [info] [AgentHost] Clearing authentication for resource: https://api.github.com/repos +2026-09-10 06:22:09.258 [info] [AgentHost] No token resolved for resource: https://api.github.com +2026-09-10 06:22:09.281 [info] [AgentHost] No token resolved for resource: https://api.github.com/repos +2026-09-10 06:22:09.509 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/ZjZjYjc0NDMtMDFhMy00ZGNjLTgzMDItY2E3ZGZiNmYwNDU5" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 06:22:10.577 [info] Settings Sync: Account status changed from uninitialized to unavailable +2026-09-10 06:22:12.817 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-10 06:22:13.930 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/ZjZjYjc0NDMtMDFhMy00ZGNjLTgzMDItY2E3ZGZiNmYwNDU5" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/textModelChanges.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/textModelChanges.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/views.log b/Extension/artifacts/panel-host/user3/logs/20260910T062205/window1/views.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/panel-host/user3/machineid b/Extension/artifacts/panel-host/user3/machineid new file mode 100644 index 000000000..48bd3933d --- /dev/null +++ b/Extension/artifacts/panel-host/user3/machineid @@ -0,0 +1 @@ +aa67ad1a-a755-4ca2-85ce-6066c8337585 \ No newline at end of file diff --git a/Extension/artifacts/panel-host/vscode-bottom-panel.png b/Extension/artifacts/panel-host/vscode-bottom-panel.png new file mode 100644 index 000000000..c67cbf568 Binary files /dev/null and b/Extension/artifacts/panel-host/vscode-bottom-panel.png differ diff --git a/Extension/artifacts/panel-host/vscode-panel-before.png b/Extension/artifacts/panel-host/vscode-panel-before.png new file mode 100644 index 000000000..ec5edd0f5 Binary files /dev/null and b/Extension/artifacts/panel-host/vscode-panel-before.png differ diff --git a/Extension/artifacts/panel-tests.log b/Extension/artifacts/panel-tests.log new file mode 100644 index 000000000..e06a8cf10 Binary files /dev/null and b/Extension/artifacts/panel-tests.log differ diff --git a/Extension/artifacts/progress-host/extensions/extensions.json b/Extension/artifacts/progress-host/extensions/extensions.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/Extension/artifacts/progress-host/extensions/extensions.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Extension/artifacts/progress-host/index-status-history.json b/Extension/artifacts/progress-host/index-status-history.json new file mode 100644 index 000000000..77afe41f6 --- /dev/null +++ b/Extension/artifacts/progress-host/index-status-history.json @@ -0,0 +1,8 @@ +[ + " Hornet: Hybrid ", + " Hornet: Starting index", + " Hornet: Starting", + " Hornet: Finalizing index", + " Hornet: Finalizing index · 1s", + " Hornet: Index ready" +] \ No newline at end of file diff --git a/Extension/artifacts/progress-host/project/.vscode/hornet/compile-db/compile_commands.json b/Extension/artifacts/progress-host/project/.vscode/hornet/compile-db/compile_commands.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/Extension/artifacts/progress-host/project/.vscode/hornet/compile-db/compile_commands.json @@ -0,0 +1 @@ +[] diff --git a/Extension/artifacts/progress-host/project/.vscode/hornet/compile-db/fallback/compile_commands.json b/Extension/artifacts/progress-host/project/.vscode/hornet/compile-db/fallback/compile_commands.json new file mode 100644 index 000000000..330f8f666 --- /dev/null +++ b/Extension/artifacts/progress-host/project/.vscode/hornet/compile-db/fallback/compile_commands.json @@ -0,0 +1,32 @@ +[ + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project\\a.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project\\a.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project\\b.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project\\b.cpp" + ] + }, + { + "directory": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project", + "file": "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project\\new.cpp", + "arguments": [ + "clang++", + "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project", + "-c", + "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project\\new.cpp" + ] + } +] \ No newline at end of file diff --git a/Extension/artifacts/progress-host/project/.vscode/hornet/compile-db/sources.json b/Extension/artifacts/progress-host/project/.vscode/hornet/compile-db/sources.json new file mode 100644 index 000000000..10312c091 --- /dev/null +++ b/Extension/artifacts/progress-host/project/.vscode/hornet/compile-db/sources.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "sources": [], + "provenance": {} +} diff --git a/Extension/artifacts/progress-host/project/a.cpp b/Extension/artifacts/progress-host/project/a.cpp new file mode 100644 index 000000000..d8f8e3c75 --- /dev/null +++ b/Extension/artifacts/progress-host/project/a.cpp @@ -0,0 +1 @@ +int seed() { return 1; } diff --git a/Extension/artifacts/progress-host/project/b.cpp b/Extension/artifacts/progress-host/project/b.cpp new file mode 100644 index 000000000..c7f5dbaeb --- /dev/null +++ b/Extension/artifacts/progress-host/project/b.cpp @@ -0,0 +1 @@ +int seed(); int main() { return seed(); } diff --git a/Extension/artifacts/progress-host/project/index-host-result.json b/Extension/artifacts/progress-host/project/index-host-result.json new file mode 100644 index 000000000..84263a001 --- /dev/null +++ b/Extension/artifacts/progress-host/project/index-host-result.json @@ -0,0 +1,9 @@ +{ + "passed": true, + "version": "0.1.8", + "shards": [ + ".vscode\\hornet\\compile-db\\fallback\\.cache\\clangd\\index\\a.cpp.7F9CC9691765F4A5.idx", + ".vscode\\hornet\\compile-db\\fallback\\.cache\\clangd\\index\\b.cpp.7DCAA86E2823435B.idx", + ".vscode\\hornet\\compile-db\\fallback\\.cache\\clangd\\index\\new.cpp.71B14386779099D8.idx" + ] +} \ No newline at end of file diff --git a/Extension/artifacts/progress-host/project/new.cpp b/Extension/artifacts/progress-host/project/new.cpp new file mode 100644 index 000000000..dab1f2e4a --- /dev/null +++ b/Extension/artifacts/progress-host/project/new.cpp @@ -0,0 +1 @@ +int addedThroughManualBuild() { return 3; } diff --git a/Extension/artifacts/progress-host/project/panel-captured.json b/Extension/artifacts/progress-host/project/panel-captured.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/progress-host/project/panel-captured.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/progress-host/project/panel-ready.json b/Extension/artifacts/progress-host/project/panel-ready.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/progress-host/project/panel-ready.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/progress-host/stderr.log b/Extension/artifacts/progress-host/stderr.log new file mode 100644 index 000000000..56ba5ff59 --- /dev/null +++ b/Extension/artifacts/progress-host/stderr.log @@ -0,0 +1,17 @@ + +DevTools listening on ws://127.0.0.1:9337/devtools/browser/0bc48d0a-2b36-4e24-81e4-89df5b690e99 +Warning: 'remote-debugging-port' is not in the list of known options, but still passed to Electron/Chromium. +Warning: 'remote-debugging-address' is not in the list of known options, but still passed to Electron/Chromium. +[main 2026-09-10T14:51:51.068Z] Error: Error mutex already exists + at Ks.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/out/main.js:561:27488) +[main 2026-09-10T14:51:52.308Z] [AgentHost:stderr] (node:29796) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +(node:14368) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) +(node:18204) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) +Unknown channel: agentHostClientByokLm +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy diff --git a/Extension/artifacts/progress-host/stdout.log b/Extension/artifacts/progress-host/stdout.log new file mode 100644 index 000000000..1d11141ae --- /dev/null +++ b/Extension/artifacts/progress-host/stdout.log @@ -0,0 +1,91 @@ + +[main 2026-09-10T14:51:50.984Z] StorageMainService: creating application shared storage +[main 2026-09-10T14:51:51.064Z] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +[main 2026-09-10T14:51:51.066Z] [shared storage] Initializing fallback application storage (path: in-memory) +[main 2026-09-10T14:51:51.091Z] [shared storage] Fallback application storage initialized with 3 items +[main 2026-09-10T14:51:51.867Z] update#setState idle +[RemoteAgentHost] Reconciling: desired=[], current=[] +[AgentHost:renderer] Acquiring MessagePort to agent host... +[main 2026-09-10T14:51:51.891Z] AgentHostProcessManager: agent host started +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] MessagePort acquired, creating client... +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NDY5ZTA2MjktOTljNy00NmFkLWIzOGItMTFiOGI2ZWE1ZDRm" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +Started local extension host with pid 18204. +Started initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/progress-host/extensions +[AgentHost:renderer] Protocol connection established; clientId=98d17c13-03a1-4c07-a464-883beeacd2ff +Completed initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/progress-host/extensions +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NDY5ZTA2MjktOTljNy00NmFkLWIzOGItMTFiOGI2ZWE1ZDRm" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +Settings Sync: Account status changed from uninitialized to unavailable +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NDY5ZTA2MjktOTljNy00NmFkLWIzOGItMTFiOGI2ZWE1ZDRm" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +[main 2026-09-10T14:51:58.538Z] Extension host with pid 18204 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/progress-host/user/Cache/Cache_Data/data_0 b/Extension/artifacts/progress-host/user/Cache/Cache_Data/data_0 new file mode 100644 index 000000000..73852b00b Binary files /dev/null and b/Extension/artifacts/progress-host/user/Cache/Cache_Data/data_0 differ diff --git a/Extension/artifacts/progress-host/user/Cache/Cache_Data/data_1 b/Extension/artifacts/progress-host/user/Cache/Cache_Data/data_1 new file mode 100644 index 000000000..6f070aa28 Binary files /dev/null and b/Extension/artifacts/progress-host/user/Cache/Cache_Data/data_1 differ diff --git a/Extension/artifacts/progress-host/user/Cache/Cache_Data/data_2 b/Extension/artifacts/progress-host/user/Cache/Cache_Data/data_2 new file mode 100644 index 000000000..c7e2eb9ad Binary files /dev/null and b/Extension/artifacts/progress-host/user/Cache/Cache_Data/data_2 differ diff --git a/Extension/artifacts/progress-host/user/Cache/Cache_Data/data_3 b/Extension/artifacts/progress-host/user/Cache/Cache_Data/data_3 new file mode 100644 index 000000000..4830ab60c Binary files /dev/null and b/Extension/artifacts/progress-host/user/Cache/Cache_Data/data_3 differ diff --git a/Extension/artifacts/progress-host/user/Cache/Cache_Data/index b/Extension/artifacts/progress-host/user/Cache/Cache_Data/index new file mode 100644 index 000000000..5cc9545bb Binary files /dev/null and b/Extension/artifacts/progress-host/user/Cache/Cache_Data/index differ diff --git a/Extension/artifacts/progress-host/user/Cache/No_Vary_Search/journal.baj b/Extension/artifacts/progress-host/user/Cache/No_Vary_Search/journal.baj new file mode 100644 index 000000000..54fe66eb5 --- /dev/null +++ b/Extension/artifacts/progress-host/user/Cache/No_Vary_Search/journal.baj @@ -0,0 +1 @@ +$F~ \ No newline at end of file diff --git a/Extension/artifacts/progress-host/user/Cache/No_Vary_Search/snapshot.baf b/Extension/artifacts/progress-host/user/Cache/No_Vary_Search/snapshot.baf new file mode 100644 index 000000000..8912405f3 Binary files /dev/null and b/Extension/artifacts/progress-host/user/Cache/No_Vary_Search/snapshot.baf differ diff --git a/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/4efb9530d0742f90_0 b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/4efb9530d0742f90_0 new file mode 100644 index 000000000..db95b5168 Binary files /dev/null and b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/4efb9530d0742f90_0 differ diff --git a/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/5f95d82e27f6bdbc_0 b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/5f95d82e27f6bdbc_0 new file mode 100644 index 000000000..67078ce22 Binary files /dev/null and b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/5f95d82e27f6bdbc_0 differ diff --git a/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/6b9db0e41b6dfbd0_0 b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/6b9db0e41b6dfbd0_0 new file mode 100644 index 000000000..7a260931c Binary files /dev/null and b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/6b9db0e41b6dfbd0_0 differ diff --git a/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/789f3bfbf18b0f6c_0 b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/789f3bfbf18b0f6c_0 new file mode 100644 index 000000000..d16729eda Binary files /dev/null and b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/789f3bfbf18b0f6c_0 differ diff --git a/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/87e599bc03eb0398_0 b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/87e599bc03eb0398_0 new file mode 100644 index 000000000..bf8f1d1ec Binary files /dev/null and b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/87e599bc03eb0398_0 differ diff --git a/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/9c020f37c7ecccb0_0 b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/9c020f37c7ecccb0_0 new file mode 100644 index 000000000..0976c626c Binary files /dev/null and b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/9c020f37c7ecccb0_0 differ diff --git a/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/ad7aeb01e747c963_0 b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/ad7aeb01e747c963_0 new file mode 100644 index 000000000..6b6aa9ab8 Binary files /dev/null and b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/ad7aeb01e747c963_0 differ diff --git a/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/dd20a1424f73d4fa_0 b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/dd20a1424f73d4fa_0 new file mode 100644 index 000000000..0109bd1f7 Binary files /dev/null and b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/dd20a1424f73d4fa_0 differ diff --git a/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/index b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/index differ diff --git a/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/index-dir/the-real-index b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/index-dir/the-real-index new file mode 100644 index 000000000..a63d92b78 Binary files /dev/null and b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/index-dir/the-real-index differ diff --git a/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/wasm/index b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/wasm/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/wasm/index differ diff --git a/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/wasm/index-dir/the-real-index b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/wasm/index-dir/the-real-index new file mode 100644 index 000000000..74711f7a9 Binary files /dev/null and b/Extension/artifacts/progress-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/wasm/index-dir/the-real-index differ diff --git a/Extension/artifacts/progress-host/user/CachedProfilesData/__default__profile__/extensions.builtin.cache b/Extension/artifacts/progress-host/user/CachedProfilesData/__default__profile__/extensions.builtin.cache new file mode 100644 index 000000000..4f83b1898 --- /dev/null +++ b/Extension/artifacts/progress-host/user/CachedProfilesData/__default__profile__/extensions.builtin.cache @@ -0,0 +1 @@ +{"input":{"location":{"$mid":1,"fsPath":"d:\\Software\\Microsoft\\Visual Studio Code\\645f29cc31\\resources\\app\\extensions","_sep":1,"external":"file:///d%3A/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/extensions","path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions","scheme":"file"},"mtime":1789048189915,"profile":false,"type":0,"validate":true,"productVersion":"1.137.0","productDate":"2026-09-08T13:43:59-07:00","productCommit":"645f29cc3176500b4b5762ba887cf2a7f0ffdf2c","devMode":false,"language":"en","translations":{}},"result":[{"type":0,"identifier":{"id":"typescriptteam.jsts-chat-features"},"manifest":{"name":"jsts-chat-features","displayName":"JS/TS Chat Features","description":"Provides extensions to VS Family to improve the Copilot experience in JavaScript and TypeScript contexts","publisher":"TypeScriptTeam","author":"Microsoft Corp.","private":true,"version":"0.0.4","icon":"logo.png","license":"SEE LICENSE IN LICENSE.txt","engines":{"vscode":"^1.109.0"},"categories":["AI","Programming Languages"],"extensionKind":["workspace"],"contributes":{"chatSkills":[{"path":"./skills/typescript-setup/SKILL.md","when":"config.jsts-chat-features.skills.enabled"},{"path":"./skills/typescript-update/SKILL.md","when":"config.jsts-chat-features.skills.enabled"}],"configuration":{"title":"JS/TS Chat Features","type":"object","properties":{"jsts-chat-features.skills.enabled":{"type":"boolean","tags":["onExp"],"default":false,"description":"These skills provide helpful prompts and features to enhance your experience when using Copilot to work with JavaScript and TypeScript."}}}},"files":["LICENSE.txt","README.md","logo.png","skills/typescript-setup/SKILL.md","skills/typescript-update/SKILL.md","skills/typescript-update/4to5.md","skills/typescript-update/5to6.md","skills/typescript-update/6to7.md"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/TypeScriptTeam.jsts-chat-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[[2,"property `extensionKind` can be defined only if property `main` is also defined."]],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.bat"},"manifest":{"name":"bat","displayName":"Windows Bat Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Windows batch files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.52.0"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin mmims/language-batchfile grammars/batchfile.cson ./syntaxes/batchfile.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"bat","extensions":[".bat",".cmd"],"aliases":["Batch","bat"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"bat","scopeName":"source.batchfile","path":"./syntaxes/batchfile.tmLanguage.json"}],"snippets":[{"language":"bat","path":"./snippets/batchfile.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/bat","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.clojure"},"manifest":{"name":"clojure","displayName":"Clojure Language Basics","description":"Provides syntax highlighting and bracket matching in Clojure files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-clojure grammars/clojure.cson ./syntaxes/clojure.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"clojure","aliases":["Clojure","clojure"],"extensions":[".clj",".cljs",".cljc",".cljx",".clojure",".edn"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"clojure","scopeName":"source.clojure","path":"./syntaxes/clojure.tmLanguage.json"}],"configurationDefaults":{"[clojure]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/clojure","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.coffeescript"},"manifest":{"name":"coffeescript","displayName":"CoffeeScript Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in CoffeeScript files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-coffee-script grammars/coffeescript.cson ./syntaxes/coffeescript.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"coffeescript","extensions":[".coffee",".cson",".iced"],"aliases":["CoffeeScript","coffeescript","coffee"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"coffeescript","scopeName":"source.coffee","path":"./syntaxes/coffeescript.tmLanguage.json"}],"breakpoints":[{"language":"coffeescript"}],"snippets":[{"language":"coffeescript","path":"./snippets/coffeescript.code-snippets"}],"configurationDefaults":{"[coffeescript]":{"diffEditor.ignoreTrimWhitespace":false,"editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/coffeescript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.configuration-editing"},"manifest":{"name":"configuration-editing","displayName":"Configuration Editing","description":"Provides capabilities (advanced IntelliSense, auto-fixing) in configuration files like settings, launch, and extension recommendation files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.0.0"},"icon":"images/icon.png","activationEvents":["onProfile","onProfile:github","onLanguage:json","onLanguage:jsonc"],"enabledApiProposals":["profileContentHandlers"],"main":"./dist/configurationEditingMain","browser":"./dist/browser/configurationEditingMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"languages":[{"id":"jsonc","extensions":[".code-workspace","language-configuration.json","icon-theme.json","color-theme.json"],"filenames":["settings.json","launch.json","tasks.json","mcp.json","keybindings.json","extensions.json","argv.json","profiles.json","devcontainer.json",".devcontainer.json"]},{"id":"json","extensions":[".code-profile"]}],"jsonValidation":[{"fileMatch":"vscode://defaultsettings/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"%APP_SETTINGS_HOME%/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"vscode://defaultsettings/*.json","url":"vscode://schemas/settings/default"},{"fileMatch":"%APP_SETTINGS_HOME%/settings.json","url":"vscode://schemas/settings/user"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/settings.json","url":"vscode://schemas/settings/profile"},{"fileMatch":"%MACHINE_SETTINGS_HOME%/settings.json","url":"vscode://schemas/settings/machine"},{"fileMatch":"%APP_WORKSPACES_HOME%/*/workspace.json","url":"vscode://schemas/workspaceConfig"},{"fileMatch":"**/*.code-workspace","url":"vscode://schemas/workspaceConfig"},{"fileMatch":"**/argv.json","url":"vscode://schemas/argv"},{"fileMatch":"/.vscode/settings.json","url":"vscode://schemas/settings/folder"},{"fileMatch":"/.vscode/launch.json","url":"vscode://schemas/launch"},{"fileMatch":"/.vscode/tasks.json","url":"vscode://schemas/tasks"},{"fileMatch":"/.vscode/mcp.json","url":"vscode://schemas/mcp"},{"fileMatch":"%APP_SETTINGS_HOME%/tasks.json","url":"vscode://schemas/tasks"},{"fileMatch":"%APP_SETTINGS_HOME%/chatLanguageModels.json","url":"vscode://schemas/language-models"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/chatLanguageModels.json","url":"vscode://schemas/language-models"},{"fileMatch":"%APP_SETTINGS_HOME%/snippets/*.json","url":"vscode://schemas/snippets"},{"fileMatch":"%APP_SETTINGS_HOME%/prompts/*.toolsets.jsonc","url":"vscode://schemas/toolsets"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/snippets/.json","url":"vscode://schemas/snippets"},{"fileMatch":"%APP_SETTINGS_HOME%/sync/snippets/preview/*.json","url":"vscode://schemas/snippets"},{"fileMatch":"**/*.code-snippets","url":"vscode://schemas/global-snippets"},{"fileMatch":"/.vscode/extensions.json","url":"vscode://schemas/extensions"},{"fileMatch":"devcontainer.json","url":"https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json"},{"fileMatch":".devcontainer.json","url":"https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json"},{"fileMatch":"%APP_SETTINGS_HOME%/globalStorage/ms-vscode-remote.remote-containers/nameConfigs/*.json","url":"./schemas/attachContainer.schema.json"},{"fileMatch":"%APP_SETTINGS_HOME%/globalStorage/ms-vscode-remote.remote-containers/imageConfigs/*.json","url":"./schemas/attachContainer.schema.json"},{"fileMatch":"**/quality/*/product.json","url":"vscode://schemas/vscode-product"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["profileContentHandlers"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/configuration-editing","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"github.copilot-chat"},"manifest":{"name":"copilot-chat","displayName":"GitHub Copilot","description":"AI chat features powered by Copilot","version":"0.65.0","build":"1","completionsCoreVersion":"1.378.1799","internalLargeStorageAriaKey":"ec712b3202c5462fb6877acae7f1f9d7-c19ad55e-3e3c-4f99-984b-827f6d95bd9e-6917","ariaKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","buildType":"prod","publisher":"GitHub","homepage":"https://github.com/features/copilot?editor=vscode","license":"SEE LICENSE IN LICENSE.txt","repository":{"type":"git","url":"https://github.com/microsoft/vscode-copilot-chat"},"bugs":{"url":"https://github.com/microsoft/vscode/issues"},"qna":"https://github.com/github-community/community/discussions/categories/copilot","icon":"assets/copilot.png","pricing":"Trial","engines":{"vscode":"^1.137.0","npm":">=9.0.0","node":">=22.14.0"},"categories":["AI","Chat","Programming Languages","Machine Learning"],"keywords":["ai","openai","codex","pilot","snippets","documentation","autocomplete","intellisense","refactor","javascript","python","typescript","php","go","golang","ruby","c++","c#","java","kotlin","co-pilot"],"badges":[{"url":"https://img.shields.io/badge/GitHub%20Copilot-Subscription%20Required-orange","href":"https://github.com/github-copilot/signup?editor=vscode","description":"Sign up for GitHub Copilot"},{"url":"https://img.shields.io/github/stars/github/copilot-docs?style=social","href":"https://github.com/github/copilot-docs","description":"Star Copilot on GitHub"},{"url":"https://img.shields.io/youtube/channel/views/UC7c3Kb6jYCRj4JOHHZTxKsQ?style=social","href":"https://www.youtube.com/@GitHub/search?query=copilot","description":"Check out GitHub on Youtube"},{"url":"https://img.shields.io/twitter/follow/github?style=social","href":"https://twitter.com/github","description":"Follow GitHub on Twitter"}],"activationEvents":["onStartupFinished","onLanguageModelChat:copilot","onUri","onCommand:_github.copilot.chat.reportModelFeedbackSurvey","onFileSystem:ccreq","onFileSystem:ccsettings"],"main":"./dist/extension","l10n":"./l10n","enabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","chatDebug","chatHooks","extensionsAny","newSymbolNamesProvider","interactive","codeActionAI","activeComment","commentReveal","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","documentFiltersExclusive","embeddings","findTextInFiles","findTextInFiles2","languageModelToolSupportsModel","findFiles2","textSearchProvider","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","chatParticipantAdditions","defaultChatParticipant","contribSourceControlInputBoxMenu","authLearnMore","testObserver","aiTextSearchProvider","chatParticipantPrivate","chatProvider","contribDebugCreateConfiguration","chatReferenceDiagnostic","textSearchProvider2","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelPricing","inlineCompletionsAdditions","chatStatusItem","chatInputNotification","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","languageModelThinkingPart","chatSessionsProvider","devDeviceId","contribEditorContentMenu","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","environmentPower","terminalTitle","toolInvocationApproveCombination","chatSessionCustomizationProvider"],"contributes":{"languageModelTools":[{"name":"copilot_searchCodebase","toolReferenceName":"codebase","displayName":"Codebase","icon":"$(folder)","userDescription":"Find relevant file chunks, symbols, and other information via semantic search","modelDescription":"Run a natural language search for relevant code or documentation comments from the user's current workspace. Returns relevant code snippets from the user's current workspace if it is large, or the full contents of the workspace if it is small.","tags":["codesearch","vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to search the codebase for. Should contain all relevant context. Should ideally be text that might appear in the codebase, such as function names, variable names, or comments."}},"required":["query"]}},{"name":"execution_subagent","toolReferenceName":"executionSubagent","displayName":"Execution Subagent","icon":"$(play)","userDescription":"Launch an execution-focused subagent that runs one or more terminal commands to accomplish a task. This subagent is powered by Google's Gemini-3-Flash model. It is designed to select an efficient summary of the terminal outputs to return to the main agent context.","modelDescription":"Launch an iterative execution-focused subagent that performs an execution-based task.\nUSE THIS INSTEAD OF RUNNING INDIVIDUAL COMMANDS WITH run_in_terminal EXCEPT IN THE RARE CASES THAT YOU NEED THE FULL OUTPUT OF A COMMAND.\nHere are some examples of how it can be used:\n- Run tests and filter the output to summarize which tests failed and why.\n- Install all dependencies of a project.\nReturns: A list of commands that were run, along with relevant excerpts of each command's output.\nInput fields:\n- query: What to execute, and what to look for in the output. Can include exact commands to run, or a description of an execution task.\n- description: Short user-visible invocation message.\nNOTE: In the subagent query, make sure to specify any restrictions or guidelines on running commands provided by the user earlier in the conversation.\nFor example, if the user instructs the agent to not edit files in a particular directory, make sure to include that instruction in the subagent query when relevant.","when":"config.github.copilot.chat.executionSubagent.enabled","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"What to execute, and what to look for in the output. Can include exact commands to run, or a description of an execution task."},"description":{"type":"string","description":"User-visible invocation message shown while the subagent runs."}},"required":["query","description"]}},{"name":"search_subagent","toolReferenceName":"searchSubagent","displayName":"Search Subagent","icon":"$(search)","userDescription":"Launch an iterative search-focused subagent to find relevant code in your workspace.","modelDescription":"Launch a fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns (eg. \"src/components/**/*.tsx\"), search code for keywords (eg. \"API endpoints\"), or answer questions about the codebase (eg. \"how do API endpoints work?\").\nReturns: A list of relevant files/snippet locations in the workspace.\n\nInput fields:\n- query: Natural language description of what to search for.\n- description: Short user-visible invocation message. \n- details: 2-3 sentences detailing the objective of the search agent.","when":"config.github.copilot.chat.searchSubagent.enabled && config.github.copilot.chat.exploreAgent.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language description of what to search for."},"description":{"type":"string","description":"A short (3-5 word) description of the task."},"details":{"type":"string","description":"A more detailed description of the objective for the search subagent. This helps the sub-agent remain on task and understand its purpose."}},"required":["query","description","details"]}},{"name":"explore_subagent","toolReferenceName":"exploreSubagent","displayName":"Search Subagent","icon":"$(search)","userDescription":"Launch an iterative search-focused subagent to find relevant code in your workspace.","modelDescription":"Launch a fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns (eg. \"src/components/**/*.tsx\"), search code for keywords (eg. \"API endpoints\"), or answer questions about the codebase (eg. \"how do API endpoints work?\").\nReturns: A list of relevant files/snippet locations in the workspace.\n\nInput fields:\n- query: Natural language description of what to search for.\n- description: Short user-visible invocation message. \n- details: 2-3 sentences detailing the objective of the search agent.","when":"config.github.copilot.chat.searchSubagent.enabled && !config.github.copilot.chat.exploreAgent.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language description of what to search for."},"description":{"type":"string","description":"A short (3-5 word) description of the task."},"details":{"type":"string","description":"A more detailed description of the objective for the search subagent. This helps the sub-agent remain on task and understand its purpose."}},"required":["query","description","details"]}},{"name":"skill","toolReferenceName":"skill","displayName":"Skill","icon":"$(book)","userDescription":"Execute a skill by name. Skills provide specialized capabilities, domain knowledge, and refined workflows.","modelDescription":"Invoke a skill to handle a user's request with specialized instructions and workflows.\n\nSkills are domain-specific capabilities discovered from SKILL.md files. When a user's task matches an available skill, call this tool to load and apply it. If the user types a slash command (e.g. \"/deploy\", \"/test\"), treat it as a skill invocation.\n\nUsage:\n- Pass the skill name only (no arguments).\n- Examples: skill: \"docx\", skill: \"deploy\", skill: \"fix-ci-failures\"\n\nRules:\n- Available skills appear in system-reminder messages earlier in the conversation.\n- BLOCKING: When a matching skill exists, you MUST call this tool before producing any other output about the task.\n- Never reference a skill without calling this tool.\n- Do not call this tool for a skill that is already active in the current turn (indicated by a tag).\n- Do not use this tool for built-in commands such as /help or /clear.","when":"config.github.copilot.chat.skillTool.enabled","inputSchema":{"type":"object","properties":{"skill":{"type":"string","description":"The skill name. E.g., \"commit\", \"review-pr\", or \"pdf\""}},"required":["skill"]}},{"name":"copilot_searchWorkspaceSymbols","toolReferenceName":"symbols","displayName":"Workspace Symbols","icon":"$(symbol)","userDescription":"Search for workspace symbols using language services.","modelDescription":"Search the user's workspace for code symbols using language services. Use this tool when the user is looking for a specific symbol in their workspace.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"symbolName":{"type":"string","description":"The symbol to search for, such as a function name, class name, or variable name."}},"required":["symbolName"]}},{"name":"copilot_getVSCodeAPI","toolReferenceName":"vscodeAPI","displayName":"Get VS Code API References","icon":"$(references)","userDescription":"Use VS Code API references to answer questions about VS Code extension development.","modelDescription":"Get comprehensive VS Code API documentation and references for extension development. This tool provides authoritative documentation for VS Code's extensive API surface, including proposed APIs, contribution points, and best practices. Use this tool for understanding complex VS Code API interactions.\n\nWhen to use this tool:\n- User asks about specific VS Code APIs, interfaces, or extension capabilities\n- Need documentation for VS Code extension contribution points (commands, views, settings, etc.)\n- Questions about proposed APIs and their usage patterns\n- Understanding VS Code extension lifecycle, activation events, and packaging\n- Best practices for VS Code extension development architecture\n- API examples and code patterns for extension features\n- Troubleshooting extension-specific issues or API limitations\n\nWhen NOT to use this tool:\n- Creating simple standalone files or scripts unrelated to VS Code extensions\n- General programming questions not specific to VS Code extension development\n- Questions about using VS Code as an editor (user-facing features)\n- Non-extension related development tasks\n- File creation or editing that doesn't involve VS Code extension APIs\n\nCRITICAL usage guidelines:\n1. Always include specific API names, interfaces, or concepts in your query\n2. Mention the extension feature you're trying to implement\n3. Include context about proposed vs stable APIs when relevant\n4. Reference specific contribution points when asking about extension manifest\n5. Be specific about the VS Code version or API version when known\n\nScope: This tool is for EXTENSION DEVELOPMENT ONLY - building tools that extend VS Code itself, not for general file creation or non-extension programming tasks.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to search vscode documentation for. Should contain all relevant context."}},"required":["query"]},"tags":[]},{"name":"copilot_findFiles","toolReferenceName":"fileSearch","displayName":"Find Files","userDescription":"Find files by name using a glob pattern","modelDescription":"Search for files in the workspace by glob pattern. This only returns the paths of matching files. Use this tool when you know the exact filename pattern of the files you're searching for. Glob patterns match from the root of the workspace folder. Examples:\n- **/*.{js,ts} to match all js/ts files in the workspace.\n- src/** to match all files under the top-level src folder.\n- **/foo/**/*.js to match all js files under any foo folder in the workspace.\n\nIn a multi-root workspace, you can scope the search to a specific workspace folder by using the absolute path to the folder as the query, e.g. /path/to/folder/**/*.ts.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search for files with names or paths matching this glob pattern. Can also be an absolute path to a workspace folder to scope the search in a multi-root workspace."},"maxResults":{"type":"number","description":"The maximum number of results to return. Do not use this unless necessary, it can slow things down. By default, only some matches are returned. If you use this and don't see what you're looking for, you can try again with a more specific query or a larger maxResults."}},"required":["query"]}},{"name":"copilot_findTextInFiles","toolReferenceName":"textSearch","displayName":"Find Text In Files","userDescription":"Search for text in files by regular expression","modelDescription":"Do a fast text search in the workspace. Use this tool when you want to search with an exact string or regex. If you are not sure what words will appear in the workspace, prefer using regex patterns with alternation (|) or character classes to search for multiple potential words at once instead of making separate searches. For example, use 'function|method|procedure' to look for all of those words at once. Use includePattern to search within files matching a specific pattern, or in a specific file, using a relative path. Use 'includeIgnoredFiles' to include files normally ignored by .gitignore, other ignore files, and `files.exclude` and `search.exclude` settings. Warning: using this may cause the search to be slower, only set it when you want to search in ignored folders like node_modules or build outputs. Use this tool when you want to see an overview of a particular file, instead of using read_file many times to look for code within a file.\n\nIn a multi-root workspace, you can scope the search to a specific workspace folder by using the absolute path to the folder as the includePattern, e.g. /path/to/folder.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The pattern to search for in files in the workspace. Use regex with alternation (e.g., 'word1|word2|word3') or character classes to find multiple potential words in a single search. Be sure to set the isRegexp property properly to declare whether it's a regex or plain text pattern. Is case-insensitive."},"isRegexp":{"type":"boolean","description":"Whether the pattern is a regex."},"includePattern":{"type":"string","description":"Search files matching this glob pattern. Will be applied to the relative path of files within the workspace. To search recursively inside a folder, use a proper glob pattern like \"src/folder/**\". Do not use | in includePattern. Can also be an absolute path to a workspace folder to scope the search in a multi-root workspace."},"maxResults":{"type":"number","description":"The maximum number of results to return. Do not use this unless necessary, it can slow things down. By default, only some matches are returned. If you use this and don't see what you're looking for, you can try again with a more specific query or a larger maxResults."},"includeIgnoredFiles":{"type":"boolean","description":"Whether to include files that would normally be ignored according to .gitignore, other ignore files and `files.exclude` and `search.exclude` settings. Warning: using this may cause the search to be slower. Only set it when you want to search in ignored folders like node_modules or build outputs."}},"required":["query","isRegexp"]}},{"name":"copilot_applyPatch","displayName":"Apply Patch","toolReferenceName":"applyPatch","userDescription":"Edit text files in the workspace","modelDescription":"Edit text files. Do not use this tool to edit Jupyter notebooks. `apply_patch` allows you to execute a diff/patch against a text file, but the format of the diff specification is unique to this task, so pay careful attention to these instructions. To use the `apply_patch` command, you should pass a message of the following structure as \"input\":\n\n*** Begin Patch\n[YOUR_PATCH]\n*** End Patch\n\nWhere [YOUR_PATCH] is the actual content of your patch, specified in the following V4A diff format.\n\n*** [ACTION] File: [/absolute/path/to/file] -> ACTION can be one of Add, Update, or Delete.\nAn example of a message that you might pass as \"input\" to this function, in order to apply a patch, is shown below.\n\n*** Begin Patch\n*** Update File: /Users/someone/pygorithm/searching/binary_search.py\n@@class BaseClass\n@@ def search():\n- pass\n+ raise NotImplementedError()\n\n@@class Subclass\n@@ def search():\n- pass\n+ raise NotImplementedError()\n\n*** End Patch\nDo not use line numbers in this diff format.","inputSchema":{"type":"object","properties":{"input":{"type":"string","description":"The edit patch to apply."},"explanation":{"type":"string","description":"A short description of what the tool call is aiming to achieve."}},"required":["input","explanation"]}},{"name":"copilot_readFile","toolReferenceName":"readFile","legacyToolReferenceFullNames":["search/readFile"],"displayName":"Read File","userDescription":"Read the contents of a file","modelDescription":"Read the contents of a file.\n\nYou must specify the line range you're interested in. Line numbers are 1-indexed. If the file contents returned are insufficient for your task, you may call this tool again to retrieve more content. Prefer reading larger ranges over doing many small reads. Binary files use startLine/endLine as byte offsets.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"filePath":{"description":"The absolute path of the file to read.","type":"string"},"startLine":{"type":"number","description":"The line number to start reading from, 1-based."},"endLine":{"type":"number","description":"The inclusive line number to end reading at, 1-based."}},"required":["filePath","startLine","endLine"]}},{"name":"copilot_viewImage","toolReferenceName":"viewImage","displayName":"View Image","userDescription":"View the contents of an image file","when":"config.github.copilot.chat.tools.viewImage.enabled","modelDescription":"View the contents of an image file. Use this instead of read_file for supported image files such as png, jpg, jpeg, gif, and webp. The tool returns the image directly to multimodal models and does not take line ranges or offsets.","inputSchema":{"type":"object","properties":{"filePath":{"description":"The absolute path of the image file to view.","type":"string"}},"required":["filePath"]}},{"name":"copilot_listDirectory","toolReferenceName":"listDirectory","displayName":"List Dir","userDescription":"List the contents of a directory","modelDescription":"List the contents of a directory. Result will have the name of the child. If the name ends in /, it's a folder, otherwise a file","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"The absolute path to the directory to list."}},"required":["path"]}},{"name":"copilot_getErrors","displayName":"Get Problems","toolReferenceName":"problems","legacyToolReferenceFullNames":["problems"],"icon":"$(error)","userDescription":"Check errors for a particular file","modelDescription":"Get any compile or lint errors in a specific file or across all files. If the user mentions errors or problems in a file, they may be referring to these. Use the tool to see the same errors that the user is seeing. If the user asks you to analyze all errors, or does not specify a file, use this tool to gather errors for all files. Also use this tool after editing a file to validate the change.","tags":[],"inputSchema":{"type":"object","properties":{"filePaths":{"description":"The absolute paths to the files or folders to check for errors. Omit 'filePaths' when retrieving all errors.","type":"array","items":{"type":"string"}}}}},{"name":"copilot_readProjectStructure","displayName":"Project Structure","modelDescription":"Get a file tree representation of the workspace.","tags":[]},{"name":"copilot_getChangedFiles","displayName":"Git Changes","toolReferenceName":"changes","legacyToolReferenceFullNames":["changes"],"icon":"$(diff)","userDescription":"Get diffs of changed files","modelDescription":"Get git diffs of current file changes in a git repository. Don't forget that you can use run_in_terminal to run git commands in a terminal as well.","when":"config.github.copilot.chat.getChangedFilesTool.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"repositoryPath":{"type":"string","description":"The absolute path to the git repository to look for changes in. If not provided, the active git repository will be used."},"sourceControlState":{"type":"array","items":{"type":"string","enum":["staged","unstaged","merge-conflicts"]},"description":"The kinds of git state to filter by. Allowed values are: 'staged', 'unstaged', and 'merge-conflicts'. If not provided, all states will be included."}}}},{"name":"copilot_createNewWorkspace","displayName":"Create New Workspace","toolReferenceName":"newWorkspace","legacyToolReferenceFullNames":["new/newWorkspace"],"icon":"$(new-folder)","userDescription":"Scaffold a new workspace in VS Code","when":"config.github.copilot.chat.newWorkspaceCreation.enabled","modelDescription":"Get comprehensive setup steps to help the user create complete project structures in a VS Code workspace. This tool is designed for full project initialization and scaffolding, not for creating individual files.\n\nWhen to use this tool:\n- User wants to create a new complete project from scratch\n- Setting up entire project frameworks (TypeScript projects, React apps, Node.js servers, etc.)\n- Initializing Model Context Protocol (MCP) servers with full structure\n- Creating VS Code extensions with proper scaffolding\n- Setting up Next.js, Vite, or other framework-based projects\n- User asks for \"new project\", \"create a workspace\", \"set up a [framework] project\"\n- Need to establish complete development environment with dependencies, config files, and folder structure\n\nWhen NOT to use this tool:\n- Creating single files or small code snippets\n- Adding individual files to existing projects\n- Making modifications to existing codebases\n- User asks to \"create a file\" or \"add a component\"\n- Simple code examples or demonstrations\n- Debugging or fixing existing code\n\nThis tool provides complete project setup including:\n- Folder structure creation\n- Package.json and dependency management\n- Configuration files (tsconfig, eslint, etc.)\n- Initial boilerplate code\n- Development environment setup\n- Build and run instructions\n\nUse other file creation tools for individual files within existing projects.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to use to generate the new workspace. This should be a clear and concise description of the workspace the user wants to create."}},"required":["query"]},"tags":["enable_other_tool_install_extension"]},{"name":"copilot_installExtension","displayName":"Install Extension in VS Code","when":"!config.github.copilot.chat.installExtensionSkill.enabled","toolReferenceName":"installExtension","legacyToolReferenceFullNames":["new/installExtension"],"modelDescription":"Install an extension in VS Code. Use this tool to install an extension in Visual Studio Code as part of a new workspace creation process only.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the extension to install. This should be in the format .."},"name":{"type":"string","description":"The name of the extension to install. This should be a clear and concise description of the extension."}},"required":["id","name"]},"tags":[]},{"name":"copilot_runVscodeCommand","displayName":"Run VS Code Command","toolReferenceName":"runCommand","legacyToolReferenceFullNames":["new/runVscodeCommand"],"modelDescription":"Run a command in VS Code. Use this tool to run a command in Visual Studio Code as part of a new workspace creation process only.","inputSchema":{"type":"object","properties":{"commandId":{"type":"string","description":"The ID of the command to execute. This should be in the format ."},"name":{"type":"string","description":"The name of the command to execute. This should be a clear and concise description of the command."},"args":{"type":"array","description":"The arguments to pass to the command. This should be an array of strings.","items":{"type":"string"}},"skipCheck":{"type":"boolean","description":"If true, skip checking whether the command exists before executing it."}},"required":["commandId","name"]},"tags":[]},{"name":"copilot_createNewJupyterNotebook","displayName":"Create New Jupyter Notebook","icon":"$(notebook)","toolReferenceName":"createJupyterNotebook","legacyToolReferenceFullNames":["newJupyterNotebook"],"modelDescription":"Generates a new Jupyter Notebook (.ipynb) in VS Code. Jupyter Notebooks are interactive documents commonly used for data exploration, analysis, visualization, and combining code with narrative text. Prefer creating plain Python files or similar unless a user explicitly requests creating a new Jupyter Notebook or already has a Jupyter Notebook opened or exists in the workspace.","userDescription":"Create a new Jupyter Notebook","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to use to generate the jupyter notebook. This should be a clear and concise description of the notebook the user wants to create."}},"required":["query"]},"tags":[]},{"name":"copilot_insertEdit","toolReferenceName":"insertEdit","displayName":"Edit File","modelDescription":"Insert new code into an existing file in the workspace. Use this tool once per file that needs to be modified, even if there are multiple changes for a file. Generate the \"explanation\" property first.\nThe system is very smart and can understand how to apply your edits to the files, you just need to provide minimal hints.\nAvoid repeating existing code, instead use comments to represent regions of unchanged code. Be as concise as possible. For example:\n// ...existing code...\n{ changed code }\n// ...existing code...\n{ changed code }\n// ...existing code...\n\nHere is an example of how you should use format an edit to an existing Person class:\nclass Person {\n\t// ...existing code...\n\tage: number;\n\t// ...existing code...\n\tgetAge() {\n\treturn this.age;\n\t}\n}","tags":[],"inputSchema":{"type":"object","properties":{"explanation":{"type":"string","description":"A short explanation of the edit being made."},"filePath":{"type":"string","description":"An absolute path to the file to edit."},"code":{"type":"string","description":"The code change to apply to the file.\nThe system is very smart and can understand how to apply your edits to the files, you just need to provide minimal hints.\nAvoid repeating existing code, instead use comments to represent regions of unchanged code. Be as concise as possible. For example:\n// ...existing code...\n{ changed code }\n// ...existing code...\n{ changed code }\n// ...existing code...\n\nHere is an example of how you should use format an edit to an existing Person class:\nclass Person {\n\t// ...existing code...\n\tage: number;\n\t// ...existing code...\n\tgetAge() {\n\t\treturn this.age;\n\t}\n}"}},"required":["explanation","filePath","code"]}},{"name":"copilot_createFile","toolReferenceName":"createFile","legacyToolReferenceFullNames":["createFile"],"displayName":"Create File","userDescription":"Create new files","modelDescription":"This is a tool for creating a new file in the workspace. The file will be created with the specified content. The directory will be created if it does not already exist. Never use this tool to edit a file that already exists.","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"The absolute path to the file to create."},"content":{"type":"string","description":"The content to write to the file."}},"required":["filePath","content"]}},{"name":"copilot_createDirectory","toolReferenceName":"createDirectory","legacyToolReferenceFullNames":["createDirectory"],"displayName":"Create Directory","userDescription":"Create new directories in your workspace","modelDescription":"Create a new directory structure in the workspace. Will recursively create all directories in the path, like mkdir -p. You do not need to use this tool before using create_file, that tool will automatically create the needed directories.","tags":[],"inputSchema":{"type":"object","properties":{"dirPath":{"type":"string","description":"The absolute path to the directory to create."}},"required":["dirPath"]}},{"name":"copilot_replaceString","toolReferenceName":"replaceString","displayName":"Replace String in File","modelDescription":"This is a tool for making edits in an existing file in the workspace. For moving or renaming files, use run in terminal tool with the 'mv' command instead. For larger edits, split them into smaller edits and call the edit tool multiple times to ensure accuracy. Before editing, always ensure you have the context to understand the file's contents and context. To edit a file, provide: 1) filePath (absolute path), 2) oldString (MUST be the exact literal text to replace including all whitespace, indentation, newlines, and surrounding code etc), and 3) newString (MUST be the exact literal text to replace \\`oldString\\` with (also including all whitespace, indentation, newlines, and surrounding code etc.). Ensure the resulting code is correct and idiomatic.). Each use of this tool replaces exactly ONE occurrence of oldString.\n\nCRITICAL for \\`oldString\\`: Must uniquely identify the single instance to change. Include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string matches multiple locations, or does not match exactly, the tool will fail. Never use 'Lines 123-456 omitted' from summarized documents or ...existing code... comments in the oldString or newString.","when":"!config.github.copilot.chat.disableReplaceTool","inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the file to edit."},"oldString":{"type":"string","description":"The exact literal text to replace, preferably unescaped. For single replacements (default), include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. For multiple replacements, specify expected_replacements parameter. If this string is not the exact literal text (i.e. you escaped it) or does not match exactly, the tool will fail."},"newString":{"type":"string","description":"The exact literal text to replace `old_string` with, preferably unescaped. Provide the EXACT text. Ensure the resulting code is correct and idiomatic."}},"required":["filePath","oldString","newString"]}},{"name":"copilot_multiReplaceString","toolReferenceName":"multiReplaceString","displayName":"Multi-Replace String in Files","modelDescription":"This tool allows you to apply multiple replace_string_in_file operations in a single call, which is more efficient than calling replace_string_in_file multiple times. It takes an array of replacement operations and applies them sequentially. Each replacement operation has the same parameters as replace_string_in_file: filePath, oldString, newString, and explanation. This tool is ideal when you need to make multiple edits across different files or multiple edits in the same file. The tool will provide a summary of successful and failed operations.","when":"!config.github.copilot.chat.disableReplaceTool","inputSchema":{"type":"object","properties":{"explanation":{"type":"string","description":"A brief explanation of what the multi-replace operation will accomplish."},"replacements":{"type":"array","description":"An array of replacement operations to apply sequentially.","items":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the file to edit."},"oldString":{"type":"string","description":"The exact literal text to replace, preferably unescaped. Include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string is not the exact literal text or does not match exactly, this replacement will fail."},"newString":{"type":"string","description":"The exact literal text to replace `oldString` with, preferably unescaped. Provide the EXACT text. Ensure the resulting code is correct and idiomatic."}},"required":["filePath","oldString","newString"]},"minItems":1}},"required":["explanation","replacements"]}},{"name":"copilot_editNotebook","toolReferenceName":"editNotebook","icon":"$(pencil)","displayName":"Edit Notebook","userDescription":"Edit a notebook file in the workspace","modelDescription":"This is a tool for editing an existing Notebook file in the workspace. Generate the \"explanation\" property first.\nThe system is very smart and can understand how to apply your edits to the notebooks.\nWhen updating the content of an existing cell, ensure newCode preserves whitespace and indentation exactly and does NOT include any code markers such as (...existing code...).","tags":["enable_other_tool_copilot_getNotebookSummary"],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file to edit, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1."},"cellId":{"type":"string","description":"Id of the cell that needs to be deleted or edited. Use the value `TOP`, `BOTTOM` when inserting a cell at the top or bottom of the notebook, else provide the id of the cell after which a new cell is to be inserted. Remember, if a cellId is provided and editType=insert, then a cell will be inserted after the cell with the provided cellId."},"newCode":{"anyOf":[{"type":"string","description":"The code for the new or existing cell to be edited. Code should not be wrapped within tags. Do NOT include code markers such as (...existing code...) to indicate existing code."},{"type":"array","items":{"type":"string","description":"The code for the new or existing cell to be edited. Code should not be wrapped within tags"}}]},"language":{"type":"string","description":"The language of the cell. `markdown`, `python`, `javascript`, `julia`, etc."},"editType":{"type":"string","enum":["insert","delete","edit"],"description":"The operation peformed on the cell, whether `insert`, `delete` or `edit`.\nUse the `editType` field to specify the operation: `insert` to add a new cell, `edit` to modify an existing cell's content, and `delete` to remove a cell."}},"required":["filePath","editType","cellId"]}},{"name":"copilot_runNotebookCell","displayName":"Run Notebook Cell","toolReferenceName":"runNotebookCell","legacyToolReferenceFullNames":["runNotebooks/runCell"],"icon":"$(play)","modelDescription":"This is a tool for running a code cell in a notebook file directly in the notebook editor. The output from the execution will be returned. Code cells should be run as they are added or edited when working through a problem to bring the kernel state up to date and ensure the code executes successfully. Code cells are ready to run and don't require any pre-processing. If asked to run the first cell in a notebook, you should run the first code cell since markdown cells cannot be executed. NOTE: Avoid executing Markdown cells or providing Markdown cell IDs, as Markdown cells cannot be executed.","userDescription":"Trigger the execution of a cell in a notebook file","tags":["enable_other_tool_copilot_getNotebookSummary"],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"},"reason":{"type":"string","description":"An optional explanation of why the cell is being run. This will be shown to the user before the tool is run and is not necessary if it's self-explanatory."},"cellId":{"type":"string","description":"The ID for the code cell to execute. Avoid providing markdown cell IDs as nothing will be executed."},"continueOnError":{"type":"boolean","description":"Whether or not execution should continue for remaining cells if an error is encountered. Default to false unless instructed otherwise."}},"required":["filePath","cellId"]}},{"name":"copilot_getNotebookSummary","toolReferenceName":"getNotebookSummary","legacyToolReferenceFullNames":["runNotebooks/getNotebookSummary"],"displayName":"Get the structure of a notebook","modelDescription":"This is a tool returns the list of the Notebook cells along with the id, cell types, line ranges, language, execution information and output mime types for each cell. This is useful to get Cell Ids when executing a notebook or determine what cells have been executed and what order, or what cells have outputs. If required to read contents of a cell use this to determine the line range of a cells, and then use read_file tool to read a specific line range. Requery this tool if the contents of the notebook change.","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"}},"required":["filePath"]}},{"name":"copilot_readNotebookCellOutput","displayName":"Get Notebook Cell Output","toolReferenceName":"readNotebookCellOutput","legacyToolReferenceFullNames":["runNotebooks/readNotebookCellOutput"],"icon":"$(notebook-render-output)","modelDescription":"This tool will retrieve the output for a notebook cell from its most recent execution or restored from disk. The cell may have output even when it has not been run in the current kernel session. This tool has a higher token limit for output length than the runNotebookCell tool.","userDescription":"Read the output of a previously executed cell","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"},"cellId":{"type":"string","description":"The ID of the cell for which output should be retrieved."}},"required":["filePath","cellId"]}},{"name":"copilot_fetchWebPage","displayName":"Fetch Web Page","toolReferenceName":"fetch","legacyToolReferenceFullNames":["fetch"],"when":"!isWeb","icon":"$(globe)","userDescription":"Fetch the main content from a web page. You should include the URL of the page you want to fetch.","modelDescription":"Fetches the main content from a web page. This tool is useful for summarizing or analyzing the content of a webpage. You should use this tool when you think the user is looking for information from a specific webpage.","tags":[],"inputSchema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"},"description":"An array of URLs to fetch content from."},"query":{"type":"string","description":"The query to search for in the web page's content. This should be a clear and concise description of the content you want to find."}},"required":["urls","query"]}},{"name":"copilot_findTestFiles","displayName":"Find Test Files","icon":"$(beaker)","canBeReferencedInPrompt":false,"toolReferenceName":"findTestFiles","userDescription":"For a source code file, find the file that contains the tests. For a test file, find the file that contains the code under test","modelDescription":"For a source code file, find the file that contains the tests. For a test file find the file that contains the code under test.","tags":[],"inputSchema":{"type":"object","properties":{"filePaths":{"type":"array","items":{"type":"string"}}},"required":["filePaths"]}},{"name":"copilot_githubRepo","toolReferenceName":"githubRepo","legacyToolReferenceFullNames":["githubRepo"],"displayName":"Semantic Search GitHub Repository","modelDescription":"Searches a GitHub repository for relevant source code snippets. Only use this tool if the user is very clearly asking for code snippets from a specific GitHub repository. Do not use this tool for Github repos that the user has open in their workspace.","userDescription":"Semantic Search a GitHub repository for relevant source code snippets. You can specify a repository using `owner/repo`","icon":"$(repo)","when":"!config.github.copilot.chat.githubMcpServer.enabled","inputSchema":{"type":"object","properties":{"repo":{"type":"string","description":"The name of the Github repository to search for code in. Should must be formatted as '/'."},"query":{"type":"string","description":"The query to search for repo. Should contain all relevant context."}},"required":["repo","query"]}},{"name":"copilot_githubTextSearch","legacyToolReferenceFullNames":["githubTextSearch"],"toolReferenceName":"githubTextSearch","displayName":"GitHub Text Search","modelDescription":"Lexically searches a GitHub repository or organization for files containing specific keywords or code patterns. Use this when looking for exact strings, function names, or identifiers in a GitHub repo or org. Unlike the semantic search tool, this uses keyword matching rather than meaning-based search.","userDescription":"Text search a GitHub repository or organization for files containing specific keywords or code patterns.","icon":"$(search)","inputSchema":{"type":"object","properties":{"scope":{"type":"string","description":"The GitHub scope to search. Use 'owner/repo' to search a single repository, or an org name (no slash) to search across an entire organization."},"query":{"type":"string","description":"The keyword search query. Supports GitHub code search syntax such as 'language:typescript', 'extension:ts', 'path:src/', etc."},"maxResults":{"type":"number","description":"Optional. The maximum number of search results to return. Defaults to 100."}},"required":["scope","query"]}},{"name":"copilot_switchAgent","toolReferenceName":"switchAgent","displayName":"Switch Agent","userDescription":"Switch to a different agent mode. Currently only the Plan agent is supported.","modelDescription":"Switch to the Plan agent to align on approach before implementing. Plan will explore the codebase, gathers context, clarifies requirements with the user, and creates an actionable implementation plan.\n\nSWITCH TO PLAN when ANY of these apply:\n1. Adding new functionality - where should it go? What patterns to follow?\n2. Multiple valid approaches exist - choosing between technologies, patterns, or strategies\n3. Modifying existing behavior - unclear what should change or what side effects exist\n4. Architectural decisions required - choosing between design patterns or integration approaches\n5. Changes span multiple files - refactoring, migrations, or cross-cutting concerns\n6. Requirements are underspecified - need to explore before understanding scope\n\nEXAMPLES:\n✓ Switch to Plan:\n- \"Add authentication to the app\" → architectural decisions needed (session vs JWT, middleware)\n- \"Refactor this data flow\" → must understand component dependencies first\n- \"Migrate from X to Y\" → requires understanding current structure\n\n✗ Do NOT switch to Plan:\n- User attached a detailed spec, plan, or requirements doc → context already provided\n- You already started editing files in this conversation → too late to switch\n- Single obvious change like fixing a typo or renaming → just do it\n- User gave explicit step-by-step instructions → follow them directly","when":"config.github.copilot.chat.switchAgent.enabled","icon":"$(arrow-swap)","inputSchema":{"type":"object","properties":{"agentName":{"type":"string","description":"The name of the agent to switch to. Currently only 'Plan' is supported.","enum":["Plan"]}},"required":["agentName"]}},{"name":"copilot_memory","displayName":"Memory","toolReferenceName":"memory","userDescription":"Manage persistent memory across conversations","modelDescription":"Manage a persistent memory system with three scopes for storing notes and information across conversations.\n\nMemory is organized under /memories/ with three tiers:\n- `/memories/` — User memory: persistent notes that survive across all workspaces and conversations. Store preferences, patterns, and general insights here.\n- `/memories/session/` — Session memory: notes scoped to the current conversation. Store task-specific context and in-progress notes here. Cleared after the conversation ends.\n- `/memories/repo/` — Repository memory: repository-scoped notes stored locally in the workspace. Store codebase conventions, build commands, project structure facts, and verified practices here.\n\nIMPORTANT: Before creating new memory files, first view the /memories/ directory to understand what already exists. This helps avoid duplicates and maintain organized notes.\n\nCommands:\n- `view`: View contents of a file or list directory contents. Can be used on files or directories (e.g., \"/memories/\" to see all top-level items).\n- `create`: Create a new file at the specified path with the given content. Fails if the file already exists.\n- `str_replace`: Replace an exact string in a file with a new string. The old_str must appear exactly once in the file.\n- `insert`: Insert text at a specific line number in a file. Line 0 inserts at the beginning.\n- `delete`: Delete a file or directory (and all its contents).\n- `rename`: Rename or move a file or directory from path to new_path. Cannot rename across scopes.","inputSchema":{"type":"object","properties":{"command":{"type":"string","enum":["view","create","str_replace","insert","delete","rename"],"description":"The operation to perform on the memory file system."},"path":{"type":"string","description":"The absolute path to the file or directory inside /memories/, e.g. \"/memories/notes.md\". Used by all commands except `rename`."},"file_text":{"type":"string","description":"Required for `create`. The content of the file to create."},"old_str":{"type":"string","description":"Required for `str_replace`. The exact string in the file to replace. Must appear exactly once."},"new_str":{"type":"string","description":"Required for `str_replace`. The new string to replace old_str with."},"insert_line":{"type":"number","description":"Required for `insert`. The 0-based line number to insert text at. 0 inserts before the first line."},"insert_text":{"type":"string","description":"Required for `insert`. The text to insert at the specified line."},"view_range":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2,"description":"Optional for `view`. A two-element array [start_line, end_line] (1-indexed) to view a specific range of lines."},"old_path":{"type":"string","description":"Required for `rename`. The current path of the file or directory to rename."},"new_path":{"type":"string","description":"Required for `rename`. The new path for the file or directory."}},"required":["command"]}},{"name":"copilot_resolveMemoryFileUri","displayName":"Resolve Memory File URI","toolReferenceName":"resolveMemoryFileUri","userDescription":"Resolve a memory file path to its actual URI","modelDescription":"Resolve a memory file path (like /memories/session/plan.md or /memories/repo/notes.md) to its fully qualified URI. Use this when you need the actual URI for a memory file, for example to pass it to setArtifacts. The path must start with /memories/.","tags":[],"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"The memory file path to resolve (e.g. /memories/session/plan.md)."}},"required":["path"]}},{"name":"copilot_editFiles","modelDescription":"This is a placeholder tool, do not use","userDescription":"Edit files","icon":"$(pencil)","displayName":"Edit Files","toolReferenceName":"editFiles","legacyToolReferenceFullNames":["editFiles"]},{"name":"copilot_sessionStoreSql","displayName":"Session Store SQL","toolReferenceName":"sessionStoreSql","when":"github.copilot.sessionSearch.enabled","userDescription":"Query your Copilot session history using SQL","modelDescription":"Query the local session store containing history from past coding sessions. Uses SQLite syntax (NOT DuckDB or Postgres). SQL queries are read-only — only SELECT and WITH are allowed. Use `datetime('now', '-1 day')` for date math (NOT `now() - INTERVAL '1 day'`), FTS5 `MATCH` for text search.\n\nTables: `sessions`, `turns`, `session_files`, `session_refs`, `checkpoints`, `search_index`. For column details and query patterns, use the **chronicle** skill.\n\nActions: 'query' (execute SQL — supports JOINs, FTS5 MATCH, aggregations), 'reindex' (rebuild index from debug logs).","tags":[],"canBeReferencedInPrompt":false,"inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["query","reindex"],"description":"The action to perform. 'query' (default) executes a SQL query. 'reindex' rebuilds the local session index and syncs to cloud if enabled."},"query":{"type":"string","description":"A single read-only SQL query to execute. Required when action is 'query'. Supports SELECT, WITH, JOINs, aggregations, and FTS5 MATCH. Only one statement per call — do not combine multiple queries with semicolons."},"force":{"type":"boolean","description":"When true with action 'reindex', re-processes all sessions including already-indexed ones. Default false (skips already-indexed sessions)."},"description":{"type":"string","description":"A 2-5 word summary of what this call does (e.g. 'Recent sessions overview', 'Generate standup', 'Reindex sessions')."},"subcommand":{"type":"string","enum":["standup","tips","cost-tips","search","improve","reindex"],"description":"The chronicle subcommand that triggered this call (e.g. 'tips' for /chronicle tips). Used for telemetry attribution only — pass this whenever the call originates from a /chronicle slash command."}},"required":["description"]}}],"languageModelToolSets":[{"name":"edit","description":"Edit files in your workspace","icon":"$(pencil)","tools":["createDirectory","createFile","createJupyterNotebook","editFiles","editNotebook","rename"]},{"name":"execute","description":"","tools":["runNotebookCell","executionSubagent"]},{"name":"read","description":"Read files in your workspace","icon":"$(eye)","tools":["getNotebookSummary","problems","readFile","viewImage","readNotebookCellOutput","skill"]},{"name":"search","description":"Search files in your workspace","icon":"$(search)","tools":["changes","codebase","fileSearch","listDirectory","textSearch","searchSubagent","usages"]},{"name":"vscode","description":"","tools":["installExtension","memory","newWorkspace","resolveMemoryFileUri","runCommand","switchAgent","toolSearch","vscodeAPI"]},{"name":"web","description":"Fetch information from the web","icon":"$(globe)","tools":["fetch","githubRepo","githubTextSearch"]}],"chatParticipants":[{"id":"github.copilot.default","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["panel"],"modes":["ask"],"disambiguation":[{"category":"generate_code_sample","description":"The user wants to generate code snippets without referencing the contents of the current workspace. This category does not include generating entire projects.","examples":["Write an example of computing a SHA256 hash."]},{"category":"add_feature_to_file","description":"The user wants to change code in a file that is provided in their request, without referencing the contents of the current workspace. This category does not include generating entire projects.","examples":["Add a refresh button to the table widget."]},{"category":"question_about_specific_files","description":"The user has a question about a specific file or code snippet that they have provided as part of their query, and the question does not require additional workspace context to answer.","examples":["What does this file do?"]}],"commands":[{"name":"explain","description":"Explain how the code in your active editor works"},{"name":"review","description":"Review the selected code in your active editor","when":"github.copilot.advanced.review.intent"},{"name":"tests","description":"Generate unit tests for the selected code","disambiguation":[{"category":"create_tests","description":"The user wants to generate unit tests.","examples":["Generate tests for my selection using pytest."]}]},{"name":"fix","description":"Propose a fix for the problems in the selected code","sampleRequest":"There is a problem in this code. Rewrite the code to show it with the bug fixed."},{"name":"new","description":"Scaffold code for a new file or project in a workspace","sampleRequest":"Create a RESTful API server using typescript","isSticky":true,"disambiguation":[{"category":"create_new_workspace_or_extension","description":"The user wants to create a complete Visual Studio Code workspace from scratch, such as a new application or a Visual Studio Code extension. Use this category only if the question relates to generating or creating new workspaces in Visual Studio Code. Do not use this category for updating existing code or generating sample code snippets","examples":["Scaffold a Node server.","Create a sample project which uses the fileSystemProvider API.","react application"]}]},{"name":"newNotebook","description":"Create a new Jupyter Notebook","sampleRequest":"How do I create a notebook to load data from a csv file?","disambiguation":[{"category":"create_jupyter_notebook","description":"The user wants to create a new Jupyter notebook in Visual Studio Code.","examples":["Create a notebook to analyze this CSV file."]}]},{"name":"semanticSearch","description":"Find relevant code to your query","sampleRequest":"Where is the toolbar code?","when":"config.github.copilot.semanticSearch.enabled"},{"name":"setupTests","description":"Set up tests in your project (Experimental)","sampleRequest":"add playwright tests to my project","when":"config.github.copilot.chat.setupTests.enabled","disambiguation":[{"category":"set_up_tests","description":"The user wants to configure project test setup, framework, or test runner. The user does not want to fix their existing tests.","examples":["Set up tests for this project."]}]}]},{"id":"github.copilot.editingSession","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Edit files in your workspace","isDefault":true,"locations":["panel"],"modes":["edit"]},{"id":"github.copilot.editingSessionEditor","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Edit files in your workspace","isDefault":true,"locations":["editor"],"commands":[]},{"id":"github.copilot.editsAgent","name":"agent","fullName":"GitHub Copilot","description":"Edit files in your workspace in agent mode","locations":["panel"],"modes":["agent"],"isEngine":true,"isDefault":true,"isAgent":true,"when":"config.chat.agent.enabled","commands":[{"name":"error","description":"Make a model request which will result in an error","when":"github.copilot.chat.debug"},{"name":"compact","description":"Free up context by compacting the conversation history. Optionally include extra instructions for compaction."},{"name":"explain","description":"Explain how the code in your active editor works"},{"name":"review","description":"Review the selected code in your active editor","when":"github.copilot.advanced.review.intent"},{"name":"tests","description":"Generate unit tests for the selected code","disambiguation":[{"category":"create_tests","description":"The user wants to generate unit tests.","examples":["Generate tests for my selection using pytest."]}]},{"name":"fix","description":"Propose a fix for the problems in the selected code","sampleRequest":"There is a problem in this code. Rewrite the code to show it with the bug fixed."},{"name":"new","description":"Scaffold code for a new file or project in a workspace","sampleRequest":"Create a RESTful API server using typescript","isSticky":true,"disambiguation":[{"category":"create_new_workspace_or_extension","description":"The user wants to create a complete Visual Studio Code workspace from scratch, such as a new application or a Visual Studio Code extension. Use this category only if the question relates to generating or creating new workspaces in Visual Studio Code. Do not use this category for updating existing code or generating sample code snippets","examples":["Scaffold a Node server.","Create a sample project which uses the fileSystemProvider API.","react application"]}]},{"name":"newNotebook","description":"Create a new Jupyter Notebook","sampleRequest":"How do I create a notebook to load data from a csv file?","disambiguation":[{"category":"create_jupyter_notebook","description":"The user wants to create a new Jupyter notebook in Visual Studio Code.","examples":["Create a notebook to analyze this CSV file."]}]},{"name":"semanticSearch","description":"Find relevant code to your query","sampleRequest":"Where is the toolbar code?","when":"config.github.copilot.semanticSearch.enabled"},{"name":"setupTests","description":"Set up tests in your project (Experimental)","sampleRequest":"add playwright tests to my project","when":"config.github.copilot.chat.setupTests.enabled","disambiguation":[{"category":"set_up_tests","description":"The user wants to configure project test setup, framework, or test runner. The user does not want to fix their existing tests.","examples":["Set up tests for this project."]}]}]},{"id":"github.copilot.notebook","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["notebook"],"when":"!config.inlineChat.notebookAgent","commands":[{"name":"fix","description":"Propose a fix for the problems in the selected code"},{"name":"explain","description":"Explain how the code in your active editor works"}]},{"id":"github.copilot.notebookEditorAgent","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["notebook"],"when":"config.inlineChat.notebookAgent","commands":[{"name":"fix","description":"Propose a fix for the problems in the selected code"},{"name":"explain","description":"Explain how the code in your active editor works"}]},{"id":"github.copilot.vscode","name":"vscode","fullName":"VS Code","description":"Ask questions about VS Code","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"What is the command to open the integrated terminal?","locations":["panel"],"disambiguation":[{"category":"vscode_configuration_questions","description":"The user wants to learn about, use, or configure the Visual Studio Code. Use this category if the users question is specifically about commands, settings, keybindings, extensions and other features available in Visual Studio Code. Do not use this category to answer questions about generating code or creating new projects including Visual Studio Code extensions.","examples":["Switch to light mode.","Keyboard shortcut to toggle terminal visibility.","Settings to enable minimap.","Whats new in the latest release?"]},{"category":"configure_python_environment","description":"The user wants to set up their Python environment.","examples":["Create a virtual environment for my project."]}],"commands":[{"name":"search","description":"Generate query parameters for workspace search","sampleRequest":"Search for 'foo' in all files under my 'src' directory"}]},{"id":"github.copilot.terminal","name":"terminal","fullName":"Terminal","description":"Ask about commands","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"How do I view all files within a directory including sub-directories?","isDefault":true,"locations":["terminal"],"commands":[{"name":"explain","description":"Explain something in the terminal","sampleRequest":"Explain the last command"}]},{"id":"github.copilot.terminalPanel","name":"terminal","fullName":"Terminal","description":"Ask how to do something in the terminal","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"How do I view all files within a directory including sub-directories?","locations":["panel"],"commands":[{"name":"explain","description":"Explain something in the terminal","sampleRequest":"Explain the last command","disambiguation":[{"category":"terminal_state_questions","description":"The user wants to learn about specific state such as the selection, command, or failed command in the integrated terminal in Visual Studio Code.","examples":["Why did the latest terminal command fail?"]}]}]}],"languageModelChatProviders":[{"vendor":"copilot","displayName":"Copilot"},{"vendor":"copilotcli","displayName":"Copilot CLI","when":"false"},{"vendor":"anthropic","displayName":"Anthropic","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for Anthropic","title":"API Key"}},"required":["apiKey"]}},{"vendor":"xai","displayName":"xAI","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for xAI","title":"API Key"}},"required":["apiKey"]}},{"vendor":"gemini","displayName":"Google","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for Google Gemini","title":"API Key"}},"required":["apiKey"]}},{"vendor":"openrouter","displayName":"OpenRouter","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for OpenRouter","title":"API Key"}},"required":["apiKey"]}},{"vendor":"openai","displayName":"OpenAI","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for OpenAI","title":"API Key"},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this provider group. When `true`, OpenAI Responses requests from this group do not send `previous_response_id`."}},"required":["apiKey"]}},{"vendor":"ollama","displayName":"Ollama (Deprecated)","deprecation":{"link":"vscode:extension/Ollama.ollama"},"configuration":{"type":"object","properties":{"url":{"type":"string","description":"The endpoint URL for the Ollama server","default":"http://localhost:11434","title":"URL"}},"required":["url"]}},{"vendor":"customoai","when":"productQualityType != 'stable'","displayName":"OpenAI Compatible (Deprecated)","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for the models","title":"API Key","markdownDeprecationMessage":"**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API — selectable per model via the `apiType` property."},"models":{"type":"array","markdownDeprecationMessage":"**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API — selectable per model via the `apiType` property.","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the custom OpenAI model"},"url":{"type":"string","markdownDescription":"URL endpoint for the custom OpenAI-compatible model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths including `/responses` or `/chat/completions` are respected."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"editTools":{"type":"array","description":"List of edit tools supported by the model. If this is not configured, the editor will try multiple edit tools and pick the best one.\n\n- 'find-replace': Find and replace text in a document.\n- 'multi-find-replace': Find and replace text in a document.\n- 'apply-patch': A file-oriented diff format used by some OpenAI models\n- 'code-rewrite': A general but slower editing tool that allows the model to rewrite and code snippet and provide only the replacement to the editor.","items":{"type":"string","enum":["find-replace","multi-find-replace","apply-patch","code-rewrite"]}},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}},{"vendor":"customendpoint","displayName":"Custom Endpoint","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"minLength":1,"description":"API key for the models","title":"API Key"},"apiType":{"type":"string","enum":["chat-completions","responses","messages"],"enumItemLabels":["Chat Completions","Responses","Messages"],"enumDescriptions":["Chat Completions API","Responses API","Messages API"],"default":"chat-completions","title":"API Type","markdownDescription":"Default request/response format for models in this group. Individual models can override this with their own `apiType` property; when both are unset the type is inferred from the URL path."},"models":{"type":"array","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the model"},"url":{"type":"string","pattern":"^https?://.+","patternErrorMessage":"URL must start with http:// or https://","markdownDescription":"URL endpoint for the model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths are respected: `/chat/completions`, `/responses`, and `/v1/messages` (Anthropic-compatible). Use the `apiType` property to override the request/response format independently of the URL."},"apiType":{"type":"string","enum":["chat-completions","responses","messages"],"enumItemLabels":["Chat Completions","Responses","Messages"],"enumDescriptions":["Chat Completions API","Responses API","Messages API"],"title":"API Type","markdownDescription":"Request/response format used to talk to this endpoint:\n- `chat-completions`: Chat Completions API (default).\n- `responses`: Responses API.\n- `messages`: Messages API.\n\nWhen omitted, falls back to the group-level `apiType`, then to the URL path."},"adaptiveThinking":{"type":"boolean","default":false,"markdownDescription":"Whether the Messages API model supports adaptive thinking. When enabled, requests use `thinking.type: \"adaptive\"`."},"minThinkingBudget":{"type":"integer","minimum":1,"markdownDescription":"Minimum thinking-token budget supported by a non-adaptive Messages API model. `maxThinkingBudget` must also be set."},"maxThinkingBudget":{"type":"integer","minimum":1,"markdownDescription":"Maximum thinking-token budget supported by a non-adaptive Messages API model. `minThinkingBudget` must also be set."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"editTools":{"type":"array","description":"List of edit tools supported by the model. If this is not configured, the editor will try multiple edit tools and pick the best one.\n\n- 'find-replace': Find and replace text in a document.\n- 'multi-find-replace': Find and replace text in a document.\n- 'apply-patch': A file-oriented diff format used by some OpenAI models\n- 'code-rewrite': A general but slower editing tool that allows the model to rewrite and code snippet and provide only the replacement to the editor.","items":{"type":"string","enum":["find-replace","multi-find-replace","apply-patch","code-rewrite"]}},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}},"modelOptions":{"type":"object","markdownDescription":"Sampling parameters to send with requests to this model. These override Copilot's defaults but are overridden by explicit per-request values. Set a property to `null` to omit it and use the model server's default.","properties":{"temperature":{"type":["number","null"],"minimum":0,"markdownDescription":"Sampling temperature. Set to `null` to omit the parameter."},"top_p":{"type":["number","null"],"minimum":0,"maximum":1,"markdownDescription":"Nucleus sampling probability. Set to `null` to omit the parameter."}},"additionalProperties":false}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}},{"vendor":"azure","displayName":"Azure","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for the models. If not set then Entra ID (Azure AD) authentication with your Microsoft account credentials will be used.","title":"API Key"},"models":{"type":"array","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the custom OpenAI model"},"url":{"type":"string","markdownDescription":"URL endpoint for the custom OpenAI-compatible model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths including `/responses` or `/chat/completions` are respected."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}}],"interactiveSession":[{"label":"GitHub Copilot","id":"copilot","icon":"","when":"!github.copilot.interactiveSession.disabled"}],"mcpServerDefinitionProviders":[{"id":"github","label":"GitHub"}],"viewsWelcome":[{"view":"debug","when":"github.copilot-chat.activated","contents":"Debug using a [terminal command](command:github.copilot.chat.startCopilotDebugCommand) or in an [interactive chat](command:workbench.action.chat.open?%7B%22query%22%3A%22%40vscode%20%2FstartDebugging%20%22%2C%22isPartialQuery%22%3Atrue%7D)."}],"chatViewsWelcome":[{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your Copilot subscription has expired.\n\n[Review Copilot Settings](https://github.com/settings/copilot?editor=vscode)","when":"github.copilot.interactiveSession.individual.expired && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Contact your GitHub organization administrator to enable Copilot.","when":"github.copilot.interactiveSession.enterprise.disabled && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub Copilot servers could not be reached. Please check your internet connection and try again.\n\n[Retry Connection](command:github.copilot.refreshToken)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.offline && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your GitHub token is invalid. Please sign in again to refresh your authentication.\n\n[Sign In](command:workbench.action.chat.triggerSetupForceSignIn)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.invalidToken && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your account has exceeded GitHub's API rate limit. Please wait a few minutes and try again.\n\n[Retry](command:github.copilot.refreshToken)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.rateLimited && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub login failed. Please sign in to your GitHub account to use Copilot.\n\n[Sign In](command:workbench.action.chat.triggerSetupForceSignIn)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.gitHubLoginFailed && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"There seems to be a problem with your account. Please contact GitHub support.\n\n[Contact Support](https://support.github.com/?editor=vscode)","when":"github.copilot.interactiveSession.contactSupport && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub Copilot Chat is currently disabled for your account by an organization administrator. Contact an organization administrator to enable chat.\n\n[Learn More](https://docs.github.com/en/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/managing-policies-for-copilot-in-your-organization)","when":"github.copilot.interactiveSession.chatDisabled && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"The Pre-Release version of the GitHub Copilot Chat extension is not currently supported in the stable version of VS Code. Please switch to the release version for GitHub Copilot Chat or try VS Code Insiders.\n\n[Switch to Release Version and Reload](command:runCommands?%7B%22commands%22%3A%5B%7B%22command%22%3A%22workbench.extensions.action.switchToRelease%22%2C%22args%22%3A%5B%22GitHub.copilot-chat%22%5D%7D%2C%22workbench.action.reloadWindow%22%5D%7D)\n\n[Switch to VS Code Insiders](https://aka.ms/vscode-insiders)","when":"github.copilot.interactiveSession.switchToReleaseChannel"}],"commands":[{"command":"github.copilot.chat.triggerPermissiveSignIn","title":"Login to GitHub with Full Permissions"},{"command":"github.copilot.cli.sessions.delete","title":"Delete...","icon":"$(close)","category":"Copilot CLI"},{"command":"agents.github.copilot.cli.deleteSessions","title":"Delete...","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.resumeInTerminal","title":"Resume in Terminal","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.rename","title":"Rename...","icon":"$(edit)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.setTitle","title":"Set Title","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openRepository","title":"Open Repository","icon":"$(folder-opened)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","title":"Open Session in New Window","icon":"$(folder-opened)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","title":"Open Session in Terminal","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","title":"Copy Session Branch Name","icon":"$(copy)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.commitToWorktree","title":"Commit File to Worktree","icon":"$(git-commit)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.commitToRepository","title":"Commit File to Repository","icon":"$(git-commit)","category":"Copilot CLI"},{"command":"github.copilot.cli.newSession","title":"New Copilot CLI Session","icon":"$(terminal)","category":"Chat"},{"command":"github.copilot.cli.newSessionToSide","title":"New Copilot CLI Session to the Side","icon":"$(terminal)","category":"Chat"},{"command":"github.copilot.cli.openInCopilotCLI","title":"Open in GitHub Copilot CLI","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.chat.compact","title":"Compact Conversation"},{"command":"github.copilot.chat.explain","title":"Explain","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.explain.palette","title":"Explain","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.chat.review","title":"Review","enablement":"config.github.copilot.chat.reviewSelection.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.apply","title":"Apply","icon":"$(sparkle)","enablement":"commentThread =~ /hasSuggestion/","category":"Chat"},{"command":"github.copilot.chat.review.applyAndNext","title":"Apply and Go to Next","icon":"$(sparkle)","enablement":"commentThread =~ /hasSuggestion/","category":"Chat"},{"command":"github.copilot.chat.review.discard","title":"Discard","icon":"$(close)","category":"Chat"},{"command":"github.copilot.chat.review.discardAndNext","title":"Discard and Go to Next","icon":"$(close)","category":"Chat"},{"command":"github.copilot.chat.review.discardAll","title":"Discard All","icon":"$(close-all)","category":"Chat"},{"command":"github.copilot.chat.review.stagedChanges","title":"Code Review - Staged Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.unstagedChanges","title":"Code Review - Unstaged Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.changes","title":"Code Review - Uncommitted Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.stagedFileChange","title":"Review Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.unstagedFileChange","title":"Review Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.codeReview.run","title":"Run Code Review","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.previous","title":"Previous Suggestion","icon":"$(arrow-up)","category":"Chat"},{"command":"github.copilot.chat.review.next","title":"Next Suggestion","icon":"$(arrow-down)","category":"Chat"},{"command":"github.copilot.chat.review.continueInInlineChat","title":"Discard and Copy to Inline Chat","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.chat.review.continueInChat","title":"View in Chat Panel","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.chat.review.markHelpful","title":"Helpful","icon":"$(thumbsup)","enablement":"!(commentThread =~ /markedAsHelpful/)","category":"Chat"},{"command":"github.copilot.chat.openUserPreferences","title":"Open User Preferences","category":"Chat","enablement":"config.github.copilot.chat.enableUserPreferences"},{"command":"github.copilot.chat.review.markUnhelpful","title":"Unhelpful","icon":"$(thumbsdown)","enablement":"!(commentThread =~ /markedAsUnhelpful/)","category":"Chat"},{"command":"github.copilot.chat.generate","title":"Generate This","icon":"$(sparkle)","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.chat.fix","title":"Fix","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.interactiveSession.feedback","title":"Send Chat Feedback","enablement":"github.copilot-chat.activated && !github.copilot.interactiveSession.disabled","icon":"$(feedback)","category":"Chat"},{"command":"github.copilot.debug.workbenchState","title":"Log Workbench State","category":"Developer"},{"command":"github.copilot.debug.togglePowerSaveBlocker","title":"Toggle Power Save Blocker","category":"Developer"},{"command":"github.copilot.debug.showChatLogView","title":"Show Chat Debug View","category":"Developer"},{"command":"github.copilot.debug.showOutputChannel","title":"Show Output Channel","category":"Developer"},{"command":"github.copilot.debug.showContextInspectorView","title":"Inspect Language Context","icon":"$(inspect)","category":"Developer"},{"command":"github.copilot.debug.logTypeScriptContainers","title":"Log TypeScript Containers","enablement":"editorLangId == typescript || editorLangId == javascript","category":"Developer"},{"command":"github.copilot.debug.validateNesRename","title":"Validate NES Rename","category":"Developer"},{"command":"github.copilot.debug.resetVirtualToolGroups","title":"Reset Virtual Tool Groups","icon":"$(inspect)","category":"Developer"},{"command":"github.copilot.debug.extensionState","title":"Log Extension State","category":"Developer"},{"command":"github.copilot.chat.tools.memory.showMemories","title":"Show Memory Files","category":"Chat"},{"command":"github.copilot.chat.tools.memory.clearMemories","title":"Clear All Memory Files","category":"Chat"},{"command":"github.copilot.terminal.explainTerminalLastCommand","title":"Explain Last Terminal Command","category":"Chat"},{"command":"github.copilot.git.generateCommitMessage","title":"Generate Commit Message","icon":"$(sparkle)","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.git.resolveMergeConflicts","title":"Resolve Conflicts with AI","icon":"$(chat-sparkle)","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.devcontainer.generateDevContainerConfig","title":"Generate Dev Container Configuration","category":"Chat"},{"command":"github.copilot.tests.fixTestFailure","icon":"$(sparkle)","title":"Fix Test Failure","category":"Chat"},{"command":"github.copilot.tests.fixTestFailure.fromInline","icon":"$(sparkle)","title":"Fix Test Failure"},{"command":"github.copilot.chat.attachFile","title":"Add File to Chat","category":"Chat"},{"command":"github.copilot.chat.attachSelection","title":"Add Selection to Chat","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.debug.collectDiagnostics","title":"Chat Diagnostics","category":"Developer"},{"command":"github.copilot.debug.inlineEdit.clearCache","title":"Clear Inline Suggestion Cache","category":"Developer"},{"command":"github.copilot.debug.inlineEdit.reportNotebookNESIssue","title":"Report Notebook Inline Suggestion Issue","enablement":"config.github.copilot.chat.advanced.notebook.alternativeNESFormat.enabled || github.copilot.chat.enableEnhancedNotebookNES","category":"Developer"},{"command":"github.copilot.debug.generateSTest","title":"Generate STest From Last Chat Request","enablement":"github.copilot.debugReportFeedback","category":"Developer"},{"command":"github.copilot.open.walkthrough","title":"Open Walkthrough","category":"Chat"},{"command":"github.copilot.debug.generateInlineEditTests","title":"Generate Inline Edit Tests","category":"Chat","enablement":"resourceScheme == 'ccreq'"},{"command":"github.copilot.buildRemoteWorkspaceIndex","title":"Build Codebase Semantic Index","category":"Chat","enablement":"github.copilot-chat.activated"},{"command":"github.copilot.deleteExternalIngestWorkspaceIndex","title":"Delete External Ingest Codebase Index","category":"Developer","enablement":"github.copilot-chat.activated && !github.copilot.blackbirdExternalIndexingDisabled"},{"command":"github.copilot.report","title":"Report Issue","category":"Chat"},{"command":"github.copilot.chat.rerunWithCopilotDebug","title":"Debug Last Terminal Command","category":"Chat"},{"command":"github.copilot.chat.startCopilotDebugCommand","title":"Start Copilot Debug"},{"command":"github.copilot.chat.clearTemporalContext","title":"Clear Temporal Context","category":"Developer"},{"command":"github.copilot.search.markHelpful","title":"Helpful","icon":"$(thumbsup)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.search.markUnhelpful","title":"Unhelpful","icon":"$(thumbsdown)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.search.feedback","title":"Feedback","icon":"$(feedback)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.chat.debug.showElements","title":"Show Rendered Elements"},{"command":"github.copilot.chat.debug.hideElements","title":"Hide Rendered Elements"},{"command":"github.copilot.chat.debug.showTools","title":"Show Tools"},{"command":"github.copilot.chat.debug.hideTools","title":"Hide Tools"},{"command":"github.copilot.chat.debug.showNesRequests","title":"Show NES Requests"},{"command":"github.copilot.chat.debug.hideNesRequests","title":"Hide NES Requests"},{"command":"github.copilot.chat.debug.showGhostRequests","title":"Show Ghost Requests"},{"command":"github.copilot.chat.debug.hideGhostRequests","title":"Hide Ghost Requests"},{"command":"github.copilot.chat.debug.showRawRequestBody","title":"Show Raw Request Body"},{"command":"github.copilot.chat.debug.exportLogItem","title":"Export as...","icon":"$(export)"},{"command":"github.copilot.chat.debug.exportPromptArchive","title":"Export All as Archive...","icon":"$(archive)"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","title":"Export All as JSON...","icon":"$(export)"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","title":"Export All Prompt Logs as JSON...","icon":"$(export)"},{"command":"github.copilot.chat.otel.exportAgentTracesDB","title":"Export Agent Traces DB","category":"Chat","enablement":"config.github.copilot.chat.otel.dbSpanExporter.enabled"},{"command":"github.copilot.chat.otel.statusActive","title":"OpenTelemetry","category":"Chat","icon":"$(broadcast)"},{"command":"github.copilot.sessionSync.deleteSessions","title":"Delete Session Sync Data","category":"Chat","enablement":"github.copilot.sessionSearch.enabled && config.chat.sessionSync.enabled"},{"command":"github.copilot.chronicle.reindex","title":"Reindex Sessions","category":"Chat","enablement":"github.copilot.sessionSearch.enabled"},{"command":"github.copilot.nes.captureExpected.start","title":"Record Expected Edit (NES)","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.confirm","title":"Confirm and Save Expected Edit Capture","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.abort","title":"Cancel Expected Edit Capture","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.submit","title":"Submit NES Captures","category":"Copilot"},{"command":"github.copilot.debug.collectWorkspaceIndexDiagnostics","title":"Collect Workspace Index Diagnostics","category":"Developer"},{"command":"github.copilot.chat.mcp.setup.check","title":"MCP Check: is supported"},{"command":"github.copilot.chat.mcp.setup.validatePackage","title":"MCP Check: validate package"},{"command":"github.copilot.chat.mcp.setup.flow","title":"MCP Check: do prompts"},{"command":"github.copilot.chat.generateAltText","title":"Generate/Refine Alt Text"},{"command":"github.copilot.chat.notebook.enableFollowCellExecution","title":"Enable Follow Cell Execution from Chat","shortTitle":"Follow","icon":"$(pinned)"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","title":"Disable Follow Cell Execution from Chat","shortTitle":"Unfollow","icon":"$(pinned-dirty)"},{"command":"github.copilot.cloud.resetWorkspaceConfirmations","title":"Reset Cloud Agent Workspace Confirmations"},{"command":"github.copilot.cloud.sessions.openInBrowser","title":"Open in Browser","icon":"$(link-external)"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","title":"Close Pull Request"},{"command":"github.copilot.cloud.sessions.installPRExtension","title":"Install GitHub Pull Request Extension","icon":"$(extensions)"},{"command":"github.copilot.chat.openSuggestionsPanel","title":"Open Completions Panel","enablement":"github.copilot.extensionUnification.activated && !isWeb","category":"GitHub Copilot"},{"command":"github.copilot.chat.toggleStatusMenu","title":"Open Status Menu","enablement":"github.copilot.extensionUnification.activated","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.disable","title":"Disable Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated && config.editor.inlineSuggest.enabled && github.copilot.completions.enabled","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.enable","title":"Enable Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated && !(config.editor.inlineSuggest.enabled && github.copilot.completions.enabled)","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.toggle","title":"Toggle (Enable/Disable) Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated","category":"GitHub Copilot"},{"command":"github.copilot.chat.openModelPicker","title":"Change Completions Model","category":"GitHub Copilot","enablement":"github.copilot.extensionUnification.activated && !isWeb && github.copilot.completions.hasMultipleModels"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","title":"Apply Changes to Workspace","enablement":"!chatSessionRequestInProgress","category":"GitHub Copilot"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","title":"Apply","enablement":"!chatSessionRequestInProgress","icon":"$(git-stash-pop)","category":"GitHub Copilot"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","title":"Merge Changes","enablement":"!chatSessionRequestInProgress","icon":"$(git-merge)","category":"GitHub Copilot"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","title":"Merge Changes & Sync","enablement":"!chatSessionRequestInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.commit","title":"Commit Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-commit)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.commitAndSync","title":"Commit and Sync Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.sync","title":"Sync Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","title":"Create PR","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-pull-request-create)","category":"GitHub Copilot"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","title":"Create Draft PR","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-pull-request-draft)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.discardChanges","title":"Discard Changes","enablement":"!chatSessionRequestInProgress","icon":"$(discard)","category":"GitHub Copilot"},{"command":"github.copilot.chat.copilotCLI.addFileReference","title":"Add File to Copilot CLI","enablement":"github.copilot.chat.copilotCLI.hasSession","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.addSelection","title":"Add Selection to Copilot CLI","enablement":"github.copilot.chat.copilotCLI.hasSession","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.acceptDiff","title":"Accept Changes","enablement":"github.copilot.chat.copilotCLI.hasActiveDiff","icon":"$(check)","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.rejectDiff","title":"Reject Changes","enablement":"github.copilot.chat.copilotCLI.hasActiveDiff","icon":"$(close)","category":"Copilot CLI"},{"command":"github.copilot.chat.checkoutPullRequestReroute","title":"Checkout","icon":"$(git-pull-request)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","title":"Create Pull Request","icon":"$(git-pull-request-create)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","title":"Open Pull Request","icon":"$(git-pull-request)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.openRepository","title":"Browse repositories...","icon":"$(repo)","category":"GitHub Copilot"},{"command":"github.copilot.chat.cloudSessions.clearCaches","title":"Clear Cloud Agent Caches","category":"GitHub Copilot"},{"command":"github.copilot.sessions.refreshChanges","title":"Refresh","icon":"$(refresh)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.initializeRepository","title":"Initialize Repository","enablement":"!chatSessionRequestInProgress","icon":"$(repo)","category":"GitHub Copilot"}],"configuration":[{"title":"GitHub Copilot Chat","id":"stable","properties":{"github.copilot.chat.backgroundAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Copilot CLI. When disabled, the Copilot CLI will not be available in 'Continue In' context menus."},"github.copilot.chat.cloudAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Cloud Agent. When disabled, the Cloud Agent will not be available in 'Continue In' context menus."},"github.copilot.chat.localIndex.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable local session tracking. When enabled, session data is tracked locally for /chronicle commands.","tags":["onExp"]},"github.copilot.chat.codeGeneration.useInstructionFiles":{"type":"boolean","default":true,"markdownDescription":"Controls whether code instructions from `.github/copilot-instructions.md` are added to Copilot requests.\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance. [Learn more](https://aka.ms/github-copilot-custom-instructions) about customizing Copilot."},"github.copilot.editor.enableCodeActions":{"type":"boolean","default":true,"description":"Controls if Copilot commands are shown as Code Actions when available"},"github.copilot.renameSuggestions.triggerAutomatically":{"type":"boolean","default":true,"description":"Controls whether Copilot generates suggestions for renaming"},"github.copilot.chat.localeOverride":{"type":"string","enum":["auto","en","fr","it","de","es","ru","zh-CN","zh-TW","ja","ko","cs","pt-br","tr","pl"],"enumDescriptions":["Use VS Code's configured display language","English","français","italiano","Deutsch","español","русский","中文(简体)","中文(繁體)","日本語","한국어","čeština","português","Türkçe","polski"],"default":"auto","markdownDescription":"Specify a locale that Copilot should respond in, e.g. `en` or `fr`. By default, Copilot will respond using VS Code's configured display language locale."},"github.copilot.chat.terminalChatLocation":{"type":"string","default":"chatView","markdownDescription":"Controls where chat queries from the terminal should be opened.","markdownEnumDescriptions":["Open the chat view.","Open quick chat.","Open terminal inline chat"],"enum":["chatView","quickChat","terminal"]},"github.copilot.chat.scopeSelection":{"type":"boolean","default":false,"markdownDescription":"Whether to prompt the user to select a specific symbol scope if the user uses `/explain` and the active editor has no selection."},"github.copilot.chat.useProjectTemplates":{"type":"boolean","default":true,"markdownDescription":"Use relevant GitHub projects as starter projects when using `/new`"},"github.copilot.nextEditSuggestions.enabled":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to enable next edit suggestions (NES).\n\nNES can propose a next edit based on your recent changes. [Learn more](https://aka.ms/vscode-nes) about next edit suggestions.","scope":"language-overridable"},"github.copilot.completions.chat.enabled":{"type":"boolean","default":false,"markdownDescription":"Whether to enable inline completions in chat."},"github.copilot.nextEditSuggestions.extendedRange":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to allow next edit suggestions (NES) to modify code farther away from the cursor position."},"github.copilot.nextEditSuggestions.fixes":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to offer fixes for diagnostics via next edit suggestions (NES).","scope":"language-overridable"},"github.copilot.nextEditSuggestions.allowWhitespaceOnlyChanges":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to allow whitespace-only changes be proposed by next edit suggestions (NES).","scope":"language-overridable"},"github.copilot.chat.agent.autoFix":{"type":"boolean","default":false,"description":"Automatically fix diagnostics for edited files.","tags":["onExp"]},"github.copilot.chat.rateLimitAutoSwitchToAuto":{"type":"boolean","default":false,"markdownDescription":"Automatically switch to the Auto model and retry when you hit a per-model rate limit.","tags":["onExp"]},"github.copilot.chat.customInstructionsInSystemMessage":{"type":"boolean","default":true,"description":"When enabled, custom instructions and mode instructions will be appended to the system message instead of a user message."},"github.copilot.chat.organizationCustomAgents.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will load custom agents defined by your GitHub Organization."},"github.copilot.chat.organizationInstructions.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will load custom instructions defined by your GitHub Organization."},"github.copilot.chat.additionalReadAccessPaths":{"type":"array","default":[],"items":{"type":"string"},"markdownDescription":"A list of absolute folder paths outside of the workspace that Copilot Chat is allowed to read from without requiring confirmation. Edit operations remain restricted to the workspace.","scope":"window"},"github.copilot.chat.agent.currentEditorContext.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will include the name of the current active editor in the context for agent mode."},"github.copilot.enable":{"type":"object","scope":"window","default":{"*":true,"plaintext":false,"markdown":false,"scminput":false},"additionalProperties":{"type":"boolean"},"markdownDescription":"Enable or disable auto triggering of Copilot completions for specified [languages](https://code.visualstudio.com/docs/languages/identifiers). You can still trigger suggestions manually using `Alt + \\`","agentsWindow":{"default":{"markdown":true,"plaintext":true}}},"github.copilot.selectedCompletionModel":{"type":"string","default":"","markdownDescription":"The currently selected completion model ID. To select from a list of available models, use the __\"Change Completions Model\"__ command or open the model picker (from the Copilot menu in the VS Code title bar, select __\"Configure Code Completions\"__ then __\"Change Completions Model\"__. The value must be a valid model ID. An empty value indicates that the default model will be used."},"github.copilot.chat.reviewAgent.enabled":{"type":"boolean","default":true,"description":"Enables the code review agent."},"github.copilot.chat.reviewSelection.enabled":{"type":"boolean","default":true,"description":"Enables code review on current selection."},"github.copilot.chat.reviewSelection.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that provide code review for the current selection. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-review-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-review-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that provide code review for the current selection. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use underscore for field names."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Use underscore for field names."},{"text":"Resolve all TODO tasks."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that provide code review for the current selection.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's effectiveness.","examples":[[{"file":".copilot-review-instructions.md"},{"text":"Resolve all TODO tasks."}]]},"github.copilot.chat.anthropic.useMessagesApi":{"type":"boolean","default":true,"markdownDescription":"Use the Messages API instead of the Chat Completions API when supported.","tags":["onExp"]},"github.copilot.chat.imageUpload.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the use of image upload URLs in chat requests instead of raw base64 strings."}}},{"id":"preview","properties":{"github.copilot.chat.copilotDebugCommand.enabled":{"type":"boolean","default":true,"tags":["preview"],"description":"Whether the `copilot-debug` command is enabled in the terminal."},"github.copilot.chat.codesearch.enabled":{"type":"boolean","default":false,"tags":["preview"],"markdownDescription":"Whether to enable agentic codesearch when using `#codebase`."},"github.copilot.chat.tools.viewImage.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the view image tool, which allows the agent to view image files such as png, jpg, jpeg, gif, and webp.","tags":["preview","onExp"]}}},{"id":"experimental","properties":{"github.copilot.chat.githubMcpServer.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable built-in support for the GitHub MCP Server.","tags":["experimental"],"agentsWindow":{"default":true}},"github.copilot.chat.githubMcpServer.toolsets":{"type":"array","default":["default"],"markdownDescription":"Specify toolsets to use from the GitHub MCP Server. [Learn more](https://aka.ms/vscode-gh-mcp-toolsets).","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.githubMcpServer.readonly":{"type":"boolean","default":false,"markdownDescription":"Enable read-only mode for the GitHub MCP Server. When enabled, only read tools are available. [Learn more](https://aka.ms/vscode-gh-mcp-readonly).","tags":["experimental"]},"github.copilot.chat.githubMcpServer.lockdown":{"type":"boolean","default":false,"markdownDescription":"Enable lockdown mode for the GitHub MCP Server. When enabled, hides public issue details created by users without push access. [Learn more](https://aka.ms/vscode-gh-mcp-lockdown).","tags":["experimental"]},"github.copilot.chat.githubMcpServer.channel":{"type":"string","default":"stable","enum":["stable","insiders"],"enumDescriptions":["Use the stable version of the GitHub MCP Server.","Connect to the Insiders version of the GitHub MCP Server with experimental features."],"markdownDescription":"Select the channel for the GitHub MCP Server. When set to Insiders, enables access to experimental features that may change or be removed based on community feedback. [Learn more](https://aka.ms/vscode-gh-mcp-channel).","tags":["experimental"]},"github.copilot.chat.switchAgent.enabled":{"type":"boolean","default":false,"markdownDescription":"Allow agent to switch to the Plan agent for research, exploration, and planning tasks.","tags":["experimental","onExp"]},"github.copilot.chat.codeGeneration.instructions":{"markdownDeprecationMessage":"Use instructions files instead. See https://aka.ms/vscode-ghcp-custom-instructions for more information.","type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that generate code. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-codeGeneration-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-codeGeneration-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that generate code. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use underscore for field names."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Use underscore for field names."},{"text":"Always add a comment: 'Generated by Copilot'."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate code.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-codeGeneration-instructions.md"},{"text":"Always add a comment: 'Generated by Copilot'."}]],"tags":["experimental"]},"github.copilot.chat.testGeneration.instructions":{"markdownDeprecationMessage":"Use instructions files instead. See https://aka.ms/vscode-ghcp-custom-instructions for more information.","type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that generate tests. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-test-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-test-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that generate tests. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use suite and test instead of describe and it."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Always try uniting related tests in a suite."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate tests.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-test-instructions.md"},{"text":"Always try uniting related tests in a suite."}]],"tags":["experimental"]},"github.copilot.chat.commitMessageGeneration.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file with instructions that will be added to Copilot requests that generate commit messages.","properties":{"file":{"type":"string","examples":[".copilot-commit-message-instructions.md"]}},"examples":[{"file":".copilot-commit-message-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"Text instructions that will be added to Copilot requests that generate commit messages.","properties":{"text":{"type":"string","examples":["Use conventional commit message format."]}},"required":["text"],"examples":[{"text":"Use conventional commit message format."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate commit messages.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use conventional commit message format.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-commit-message-instructions.md"},{"text":"Use conventional commit message format."}]],"tags":["experimental"]},"github.copilot.chat.pullRequestDescriptionGeneration.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file with instructions that will be added to Copilot requests that generate pull request titles and descriptions.","properties":{"file":{"type":"string","examples":[".copilot-pull-request-description-instructions.md"]}},"examples":[{"file":".copilot-pull-request-description-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"Text instructions that will be added to Copilot requests that generate pull request titles and descriptions.","properties":{"text":{"type":"string","examples":["Include every commit message in the pull request description."]}},"required":["text"],"examples":[{"text":"Include every commit message in the pull request description."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate pull request titles and descriptions.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Always include a list of key changes.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-pull-request-description-instructions.md"},{"text":"Use conventional commit message format."}]],"tags":["experimental"]},"github.copilot.chat.setupTests.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the `/setupTests` intent and prompting in `/tests` generation.","tags":["experimental"]},"github.copilot.chat.languageContext.typescript.enabled":{"type":"boolean","default":true,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for inline suggestions","agentsWindow":{"default":true}},"github.copilot.chat.languageContext.typescript7.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental"],"markdownDescription":"Enables the TypeScript language context provider for inline suggestions when using TS7 language services","agentsWindow":{"default":false}},"github.copilot.chat.languageContext.typescript.items":{"type":"string","enum":["minimal","double","fillHalf","fill"],"default":"double","scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Controls which kind of items are included in the TypeScript language context provider."},"github.copilot.chat.languageContext.typescript.includeDocumentation":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Controls whether to include documentation comments in the generated code snippets."},"github.copilot.chat.languageContext.typescript.cacheTimeout":{"type":"number","default":500,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"The cache population timeout for the TypeScript language context provider in milliseconds. The default is 500 milliseconds."},"github.copilot.chat.languageContext.fix.typescript.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for /fix commands"},"github.copilot.chat.languageContext.inline.typescript.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for inline chats (both generate and edit)"},"github.copilot.chat.newWorkspaceCreation.enabled":{"type":"boolean","default":true,"tags":["experimental"],"description":"Whether to enable new agentic workspace creation."},"github.copilot.chat.newWorkspace.useContext7":{"type":"boolean","default":false,"tags":["experimental"],"markdownDescription":"Whether to use the [Context7](command:github.copilot.mcp.viewContext7) tools to scaffold project for new workspace creation."},"github.copilot.chat.notebook.followCellExecution.enabled":{"type":"boolean","default":false,"tags":["experimental"],"description":"Controls whether the currently executing cell is revealed into the viewport upon execution from Copilot."},"github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Controls whether to use an enhanced approach for generating next edit suggestions in notebook cells."},"github.copilot.chat.summarizeAgentConversationHistory.enabled":{"type":"boolean","default":true,"tags":["experimental"],"description":"Whether to auto-compact agent conversation history once the context window is filled."},"github.copilot.chat.virtualTools.threshold":{"type":"number","minimum":0,"maximum":128,"default":128,"tags":["experimental"],"markdownDescription":"This setting defines the tool count over which virtual tools should be used. Virtual tools group similar sets of tools together and they allow the model to activate them on-demand. Certain tool groups will optimistically be pre-activated. We are actively developing this feature and you experience degraded tool calling once the threshold is hit.\n\nMay be set to `0` to disable virtual tools."},"github.copilot.chat.alternateGptPrompt.enabled":{"type":"boolean","default":false,"tags":["experimental"],"description":"Enables an experimental alternate prompt for GPT models instead of the default prompt."},"github.copilot.chat.alternateGeminiModelFPrompt.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Enables an experimental alternate prompt for Gemini Model F instead of the default prompt."},"github.copilot.chat.gemini35FlashReducedToolUsePrompt.enabled":{"type":"boolean","default":true,"tags":["experimental","onExp"],"description":"Enables an experimental prompt for Gemini 3.5 Flash that instructs the model to minimize tool calls to reduce token usage."},"github.copilot.chat.geminiFlashPromptAdditions.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Enables experimental additional prompt guidance for Gemini Flash 3.6 and 3.7 models."},"github.copilot.chat.anthropic.contextEditing.mode":{"type":"string","default":"off","markdownDescription":"Select the context editing mode for Anthropic models. Automatically manages conversation context as it grows, helping optimize costs and stay within context window limits.\n\n- `off`: Context editing is disabled.\n- `clear-thinking`: Clears thinking blocks while preserving tool uses.\n- `clear-tooluse`: Clears tool uses while preserving thinking blocks.\n- `clear-both`: Clears both thinking blocks and tool uses.\n\n**Note**: This is an experimental feature. Context editing may cause additional cache rewrites. Enable with caution.","tags":["experimental","onExp"],"enum":["off","clear-thinking","clear-tooluse","clear-both"]},"github.copilot.chat.responsesApiContextManagement.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables context management for the Responses API. Requires `#github.copilot.chat.useResponsesApi#`.","tags":["experimental","onExp"]},"github.copilot.chat.responsesApi.promptCacheKey.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables prompt cache key being set for the Responses API.","tags":["experimental","onExp"]},"github.copilot.chat.responsesApi.promptCacheBreakpoint.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables explicit prompt cache breakpoint markers for the Responses API.","tags":["experimental","onExp"]},"github.copilot.chat.updated53CodexPrompt.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the updated prompt for gpt-5.3-codex model.","tags":["experimental","onExp"]},"github.copilot.chat.claudeOpus5Prompt.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the updated system prompt tuned for the Claude Opus 5 model.","tags":["experimental","onExp"]},"github.copilot.chat.claudeSonnet5Prompt.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the updated system prompt tuned for the Claude Sonnet 5 model.","tags":["experimental","onExp"]},"github.copilot.chat.gpt55GetChangedFilesTool.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the Get Changed Files tool for gpt-5.5 models.","tags":["experimental","onExp"]},"github.copilot.chat.gpt56Verbosity.enabled":{"type":"boolean","default":true,"markdownDescription":"Sets the response verbosity to low for gpt-5.6 models.","tags":["experimental","onExp"]},"github.copilot.chat.gemini3GetChangedFilesTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the Get Changed Files tool for gemini-3 models.","tags":["experimental","onExp"]},"github.copilot.chat.gemini3LowReasoningEffort.enabled":{"type":"boolean","default":false,"markdownDescription":"Sets the reasoning effort to low for gemini-3 models.","tags":["experimental","onExp"]},"github.copilot.chat.claudeOpusDefaultReasoningEffort":{"type":"string","default":"","enum":["","low","medium","high","max"],"markdownDescription":"Overrides the default thinking effort shown in the model picker for Claude Opus models. Leave empty to use the built-in default. Ignored if the model does not support the chosen level.","tags":["experimental","onExp"]},"github.copilot.chat.gpt55ReadFileTool.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the Read File tool for gpt-5.5 models.","tags":["experimental","onExp"]},"github.copilot.chat.anthropic.tools.websearch.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable Anthropic's native web search tool for BYOK Claude models. When enabled, allows Claude to search the web for current information. \n\n**Note**: This is an experimental feature only available for BYOK Anthropic Claude models.","tags":["experimental","onExp"]},"github.copilot.chat.anthropic.tools.websearch.maxUses":{"type":"number","default":5,"markdownDescription":"Maximum number of web searches allowed per request. Valid range is 1 to 20. Prevents excessive API calls within a single interaction. If Claude exceeds this limit, the response returns an error.","minimum":1,"maximum":20,"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.allowedDomains":{"type":"array","default":[],"markdownDescription":"List of domains to restrict web search results to (e.g., `[\"example.com\", \"docs.example.com\"]`). Domains should not include the HTTP/HTTPS scheme. Subdomains are automatically included. Cannot be used together with `#github.copilot.chat.anthropic.tools.websearch.blockedDomains#`; configuring both will cause web search requests to fail.","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.blockedDomains":{"type":"array","default":[],"markdownDescription":"List of domains to exclude from web search results (e.g., `[\"untrustedsource.com\"]`). Domains should not include the HTTP/HTTPS scheme. Subdomains are automatically excluded. Cannot be used together with `#github.copilot.chat.anthropic.tools.websearch.allowedDomains#`; configuring both will cause web search requests to fail.","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.userLocation":{"type":["object","null"],"default":null,"markdownDescription":"User location for personalizing web search results based on geographic context. All fields (city, region, country, timezone) are optional. Example: `{\"city\": \"San Francisco\", \"region\": \"California\", \"country\": \"US\", \"timezone\": \"America/Los_Angeles\"}`","properties":{"city":{"type":"string","description":"City name (e.g., 'San Francisco')"},"region":{"type":"string","description":"State or region (e.g., 'California')"},"country":{"type":"string","description":"ISO country code (e.g., 'US')"},"timezone":{"type":"string","description":"IANA timezone identifier (e.g., 'America/Los_Angeles')"}},"tags":["experimental"]},"github.copilot.chat.completionsFetcher":{"type":["string","null"],"markdownDescription":"Sets the fetcher used for the inline completions.","tags":["experimental","onExp"],"enum":["electron-fetch","node-fetch"]},"github.copilot.chat.nesFetcher":{"type":["string","null"],"markdownDescription":"Sets the fetcher used for the next edit suggestions.","tags":["experimental","onExp"],"enum":["electron-fetch","node-fetch"]},"github.copilot.chat.planAgent.additionalTools":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","markdownDescription":"Additional tools to enable for the Plan agent, on top of built-in tools. Use fully-qualified tool names (e.g., `github/issue_read`, `mcp_server/tool_name`).","tags":["experimental"]},"github.copilot.chat.implementAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used when starting implementation from the Plan agent's handoff. Use the format `Model Name (vendor)` (e.g., `GPT-5 (copilot)`). Leave empty to use the default model.","tags":["experimental"]},"github.copilot.chat.askAgent.additionalTools":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","markdownDescription":"Additional tools to enable for the Ask agent, on top of built-in read-only tools. Use fully-qualified tool names (e.g., `github/issue_read`, `mcp_server/tool_name`).","tags":["experimental"]},"github.copilot.chat.askAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used by the Ask agent. Leave empty to use the default model.","tags":["experimental"]},"github.copilot.chat.exploreAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Explore (Code Research) subagent.","tags":["experimental","onExp"]},"github.copilot.chat.exploreAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used by the Explore subagent. Defaults to a fast, small model. Leave empty to use the built-in fallback list.","tags":["experimental"]},"github.copilot.chat.tools.grepSearch.outputFormat":{"type":"string","default":"grep","enum":["grep","tag"],"markdownDescription":"The output format for the grep search tool. Can be either 'grep' or 'tag'. The default is 'grep'.","tags":["experimental","onExp"]},"github.copilot.chat.tools.grepSearch.defaultMaxResults":{"type":"number","default":100,"markdownDescription":"The default maximum number of results to return from the grep search tool. The default is 100.","tags":["experimental","onExp"]},"github.copilot.chat.tools.grepSearch.maxResultsCap":{"type":"number","default":200,"markdownDescription":"The maximum number of results that can be returned from the grep search tool. The default is 200.","tags":["experimental","onExp"]}}},{"id":"advanced","properties":{"github.copilot.chat.chatCompletionsTokenParameter":{"type":"string","enum":["max_completion_tokens","max_tokens"],"enumDescriptions":["Send `max_completion_tokens`.","Send the legacy `max_tokens` parameter for compatibility."],"default":"max_tokens","markdownDescription":"Controls the output token limit parameter sent to custom Chat Completions APIs. Use `max_completion_tokens` for endpoints that do not support `max_tokens`.","tags":["advanced","onExp"]},"github.copilot.chat.inlineEdits.xtabProvider.modelConfiguration":{"type":["object","null"],"default":null,"markdownDescription":"Advanced model configuration for the next edit suggestions xtab provider.\n\n**Note**: This is an advanced setting.","tags":["advanced","experimental"]},"github.copilot.chat.reasoningEffortOverride":{"type":["string","null"],"default":null,"markdownDescription":"Overrides the reasoning/thinking effort sent to model APIs. The configured value must match a reasoning-effort value supported by the selected model or endpoint (for example, `low`, `medium`, `high`, or other model-specific values). Used by evals.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced"]},"github.copilot.chat.autoModeTierOverride":{"type":["string","null"],"default":null,"markdownDescription":"Overrides the routing tier that the `Auto` model requests, ignoring both the tier picked in the model picker and the tier inline chat defaults to. Accepts `efficiency`, `balance`, `intelligence`, or `fast`. Used by evals.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced"]},"github.copilot.chat.anthropic.promptCaching.extendedTtl":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Use the extended (1 hour) prompt cache TTL on tools and system blocks for the Anthropic Messages API. Applied to Claude Opus 4.5/4.6/4.7 and Sonnet 4.5/4.6 variants; other models keep the default 5 minute TTL even when this setting is enabled.\n\n**Note**: This is an experimental feature. Only the main agent conversation is eligible — inline chat, terminal chat, notebook chat, and subagent requests are excluded."},"github.copilot.chat.anthropic.promptCaching.extendedTtlMessages":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Also extend the 1 hour prompt cache TTL to message-level breakpoints. Requires `chat.anthropic.promptCaching.extendedTtl` to be enabled; has no effect on its own.\n\n**Note**: This is an experimental feature."},"github.copilot.chat.modelCapabilityOverrides":{"type":"object","default":{},"markdownDescription":"Per-model capability overrides keyed by model id, intended for evaluating preview and tenanted models against an existing model's capability profile. For each model id, declare an aliased `family`. Setting `family` to a known production family (e.g. `\"claude-opus-4.7\"`) makes the model receive that family's full capability profile — Anthropic family detection, latest Opus prompt, multi-replace tools, tool search, context editing, extended cache TTL — without a code change.\n\n**Note**: This is an advanced setting for evaluation use; it is not intended for regular end-user configuration.","additionalProperties":{"type":"object","properties":{"family":{"type":"string","description":"Alias the model's family for capability routing (e.g. 'claude-opus-4.7')."}},"additionalProperties":false},"tags":["advanced"]},"github.copilot.chat.installExtensionSkill.enabled":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Whether to enable the install extension skill for Copilot."},"github.copilot.chat.debug.promptOverrideString":{"type":["string","null"],"default":null,"markdownDescription":"YAML string that overrides the system prompt and/or tool descriptions sent to the model. When both this setting and `github.copilot.chat.debug.promptOverrideFile` are configured, this setting takes precedence.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced","experimental"]},"github.copilot.chat.debug.promptOverrideFile":{"type":["string","null"],"default":null,"markdownDescription":"Path to a YAML file that overrides the system prompt and/or tool descriptions sent to the model.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced","experimental"]},"github.copilot.chat.edits.gemini3MultiReplaceString":{"type":"boolean","default":false,"markdownDescription":"Enable the modern `multi_replace_string_in_file` edit tool when generating edits with Gemini 3 models.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.edits.batchReplaceStringDescriptions":{"type":"boolean","default":false,"markdownDescription":"Update tool descriptions to promote `multi_replace_string_in_file` as the primary multi-edit tool.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.expanded":{"type":"boolean","default":false,"markdownDescription":"Use the expanded format for project labels in prompts.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.chat":{"type":"boolean","default":false,"markdownDescription":"Add project labels in chat requests.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.inline":{"type":"boolean","default":false,"markdownDescription":"Add project labels in inline edit requests.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.maxLocalIndexSize":{"type":"number","default":100000,"markdownDescription":"Maximum size of the local workspace index.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.enableCodeSearch":{"type":"boolean","default":true,"markdownDescription":"Enable code search in workspace context.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.preferredEmbeddingsModel":{"type":"string","default":"","markdownDescription":"Preferred embeddings model for semantic search.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.feedback.onChange":{"type":"boolean","default":false,"markdownDescription":"Enable feedback collection on configuration changes.","tags":["advanced","experimental"]},"github.copilot.chat.review.intent":{"type":"boolean","default":false,"markdownDescription":"Enable intent detection for code review.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.summaryExperimentEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable the notebook summary experiment.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.variableFilteringEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable filtering variables by cell document symbols.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.alternativeFormat":{"type":"string","default":"xml","enum":["xml","markdown"],"markdownDescription":"Alternative document format for notebooks.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.notebook.alternativeNESFormat.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable alternative format for Next Edit Suggestions in notebooks.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.debugTerminalCommandPatterns":{"type":"array","default":[],"items":{"type":"string"},"markdownDescription":"A list of commands for which the \"Debug Command\" quick fix action should be shown in the debug terminal.","tags":["advanced","experimental"]},"github.copilot.chat.localWorkspaceRecording.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable local workspace recording for analysis.","tags":["advanced","experimental"]},"github.copilot.chat.editRecording.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable edit recording for analysis.","tags":["advanced","experimental"]},"github.copilot.chat.inlineChat.reasoningEffort":{"type":"string","default":"low","enum":["none","minimal","low","medium","high"],"markdownDescription":"Controls the reasoning effort level for inline chat requests. Lower values result in faster responses with fewer reasoning tokens. Supported values depend on the model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineChat.enableThinking":{"type":"boolean","default":false,"markdownDescription":"Controls whether thinking/reasoning is enabled for inline chat requests. When disabled, reasoning summaries are suppressed for faster responses.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.debug.requestLogger.maxEntries":{"type":"number","default":100,"markdownDescription":"Maximum number of entries to keep in the request logger for debugging purposes.","tags":["advanced","experimental"]},"github.copilot.chat.inlineEdits.diagnosticsContextProvider.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable diagnostics context provider for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.chatSessionContextProvider.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable chat session context provider for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.codesearch.agent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable code search capabilities in agent mode.","tags":["advanced","experimental"]},"github.copilot.chat.agent.temperature":{"type":["number","null"],"markdownDescription":"Temperature setting for agent mode requests.","tags":["advanced","experimental"]},"github.copilot.chat.agent.omitFileAttachmentContents":{"type":"boolean","default":false,"markdownDescription":"Omit summarized file contents from file attachments in agent mode, to encourage the agent to properly read and explore.","tags":["advanced","experimental"]},"github.copilot.chat.agent.backgroundTodoAgent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable background todo agent that automatically maintains a todo list during agent sessions.\n\n**Note**: This is an advanced experimental setting.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.longToolCallCachePreservation.enabled":{"type":"boolean","default":false,"markdownDescription":"When enabled, periodic keep-alive probes are sent during long-running tool calls to keep the server-side prompt cache warm.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.longToolCallCachePreservation.maxProbes":{"type":"number","default":1,"markdownDescription":"Maximum number of keep-alive probes to send during long-running tool calls before giving up.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.largeToolResultsToDisk.enabled":{"type":"boolean","default":true,"markdownDescription":"When enabled, large tool results are written to disk instead of being included directly in the context, helping manage context window usage.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.largeToolResultsToDisk.thresholdBytes":{"type":"number","default":8192,"markdownDescription":"The size threshold in bytes above which tool results are written to disk. Only applies when largeToolResultsToDisk.enabled is true.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.instantApply.shortContextModelName":{"type":"string","default":"gpt-4o-instant-apply-full-ft-v66-short","markdownDescription":"Model name for short context instant apply.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.instantApply.shortContextLimit":{"type":"number","default":8000,"markdownDescription":"Token limit for short context instant apply.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.enableUserPreferences":{"type":"boolean","default":false,"markdownDescription":"Enable remembering user preferences in agent mode.","tags":["advanced","experimental"]},"github.copilot.chat.skillTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the skill tool in Copilot Chat. When enabled, skills are invoked via a dedicated skill tool instead of readFile.","tags":["advanced","experimental"]},"github.copilot.chat.getChangedFilesTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the Get Changed Files tool in Copilot Chat. When enabled, the agent can retrieve git diffs of current changes via a dedicated tool.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the Execution Subagent tool in Copilot Chat. The Execution Subagent is designed to run terminal commands to accomplish an execution-based task. It is powered by Google's Gemini-3-Flash model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.model":{"type":"string","default":"gemini-3-flash","markdownDescription":"The model to use for the Execution Subagent tool in Copilot Chat. When useAgenticProxy is enabled, defaults to 'exec-subagent-router-a'. Otherwise defaults to gemini-3-flash.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.useAgenticProxy":{"type":"boolean","default":false,"markdownDescription":"Use the agentic proxy endpoint for the execution subagent.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.toolCallLimit":{"type":"number","default":10,"markdownDescription":"Maximum number of tool calls the Execution Subagent can make during execution.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.summarizeAgentConversationHistoryThreshold":{"type":["number","null"],"markdownDescription":"Threshold at which agent conversation history is compacted. Specify either a ratio of the model's context window (a value greater than `0` and at most `1`, e.g. `0.8` to compact at 80%) or an absolute token count (a value of `100` or greater, e.g. `60000`). Leave unset to use the model's full context window.","tags":["advanced","experimental"]},"github.copilot.chat.agentHistorySummarizationMode":{"type":["string","null"],"markdownDescription":"Mode for agent history summarization.","tags":["advanced","experimental"]},"github.copilot.chat.useResponsesApiTruncation":{"type":"boolean","default":false,"markdownDescription":"Use Responses API for truncation.","tags":["advanced","experimental"]},"github.copilot.chat.omitBaseAgentInstructions":{"type":"boolean","default":false,"markdownDescription":"Omit base agent instructions from prompts.","tags":["advanced","experimental"]},"github.copilot.chat.promptFileContextProvider.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable prompt file context provider.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.tools.defaultToolsGrouped":{"type":"boolean","default":false,"markdownDescription":"Group default tools in prompts.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.gpt5AlternativePatch":{"type":"boolean","default":false,"markdownDescription":"Enable GPT-5 alternative patch format.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.triggerOnEditorChangeAfterSeconds":{"type":["number","null"],"default":10,"markdownDescription":"Trigger inline edits after editor has been idle for this many seconds.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.nextCursorPrediction.currentFileMaxTokens":{"type":"number","default":3000,"markdownDescription":"Maximum tokens for current file in next cursor prediction.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.renameSymbolSuggestions":{"type":"boolean","default":true,"markdownDescription":"Enable rename symbol suggestions in inline edits.","tags":["advanced","experimental","onExp"]},"github.copilot.nextEditSuggestions.preferredModel":{"type":"string","default":"none","markdownDescription":"Preferred model for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.nextEditSuggestions.eagerness":{"type":"string","default":"auto","enum":["auto","low","medium","high"],"enumItemLabels":["Auto","Low","Medium","High"],"enumDescriptions":["Automatically determine the eagerness level.","Show fewer suggestions with longer delays.","Balanced suggestion frequency and delay.","Show more suggestions with minimal delay."],"markdownDescription":"Controls how eagerly next edit suggestions are shown. Higher values show more suggestions with less delay.","tags":["advanced","experimental"]},"github.copilot.chat.cli.mcp.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable Model Context Protocol (MCP) server for Copilot CLI.","tags":["advanced","experimental"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.sandbox.enabled":{"type":"string","enum":["off","on","allowNetwork"],"enumDescriptions":["Disable sandboxing for Copilot CLI tools.","Enable sandboxing for Copilot CLI tools.","Enable sandboxing for Copilot CLI tools and allow all network domains."],"default":"off","markdownDescription":"Run Copilot CLI tools (such as the terminal) inside a sandbox to limit what they can access on your system. The sandbox only applies to requests that run with default permissions — it is not used when bypassing approvals — and is not supported on Windows yet.","tags":["advanced","experimental"]},"github.copilot.chat.cli.branchSupport.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable branch support for Copilot CLI.","tags":["advanced"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.planExitMode.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable Plan Mode exit handling in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.autoModel.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Auto model option in Copilot CLI, which automatically selects the best model for each request. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.autoMode.tiers.enabled":{"type":"boolean","default":false,"markdownDescription":"Choose a routing tier for the Auto model, biasing model selection toward cost, capability, or speed. When disabled, the service picks the routing profile.","tags":["advanced","onExp"]},"github.copilot.chat.agent.modelDetails.enabled":{"type":"boolean","default":true,"markdownDescription":"Show model details (model name and request multiplier) on Copilot CLI agent chat responses. Requires VS Code reload to update already loaded sessions.","tags":["advanced"]},"github.copilot.chat.cli.planCommand.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the /plan command in Copilot CLI to create implementation plans before coding.","tags":["advanced"]},"github.copilot.chat.cli.lazyLoadSessionItem.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable lazy loading of session items in Copilot CLI. Requires VS Code reload.","tags":["advanced"],"agentsWindow":{"default":false}},"github.copilot.chat.cli.aiGenerateBranchNames.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable AI-generated branch names in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.forkSessions.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable forking sessions in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.isolationOption.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the isolation mode option for Copilot CLI. When enabled, users can choose between Worktree and Workspace modes.","tags":["advanced"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.autoCommit.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable automatic commit for Copilot CLI. When enabled, changes made by Copilot CLI will be automatically committed to the repository at the end of each turn.","tags":["advanced","experimental"],"agentsWindow":{"default":false}},"github.copilot.chat.cli.sessionController.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the new session controller API for Copilot CLI. Requires VS Code reload.","tags":["advanced"],"agentsWindow":{"default":false,"readOnly":true}},"github.copilot.chat.cli.thinkingEffort.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable thinking effort for Language Models in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.sessionControllerForSessionsApp.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the new session controller API for Sessions App. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.cli.terminalLinks.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable advanced clickable file links in Copilot CLI terminals. Resolves relative paths against session state directories. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.cli.remote.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the /remote command for Copilot CLI sessions, allowing you to view and steer from GitHub.com and the GitHub mobile app.","tags":["advanced"],"agentsWindow":{"default":false}},"github.copilot.chat.searchSubagent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the search subagent tool for iterative code exploration in the workspace.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.useAgenticProxy":{"type":"boolean","default":false,"markdownDescription":"Use the agentic proxy for the search subagent tool.","tags":["advanced"]},"github.copilot.chat.searchSubagent.model":{"type":"string","default":"","markdownDescription":"Model to use for the search subagent. When useAgenticProxy is enabled, defaults to 'vscode-agentic-search-router-a'. Otherwise defaults to the main agent model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.toolCallLimit":{"type":"number","default":4,"markdownDescription":"Maximum number of tool calls the search subagent can make during exploration.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.thoroughnessEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable the thoroughness parameter on the search subagent tool. When enabled, the caller can pass 'normal' or 'deep' to adjust the number of allowed tool-call turns (1× or 2× the base toolCallLimit respectively).","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.subagentSemanticSearchEnabled":{"type":"boolean","default":true,"markdownDescription":"Enable the semantic search tool for the search subagent.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.fileLogging.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable agent debug logging: write chat debug events (tool calls, LLM requests, token usage, errors) to JSONL files for the debug panel and troubleshoot skill. Requires window reload to take effect.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.fileLogging.flushIntervalMs":{"type":"number","default":4000,"minimum":2000,"markdownDescription":"How often (in milliseconds) buffered debug log entries are flushed to disk. Lower values provide more up-to-date logs at the cost of more frequent disk writes.","tags":["advanced","experimental"]},"github.copilot.chat.agentDebugLog.fileLogging.maxRetainedSessionLogs":{"type":"number","default":50,"minimum":1,"markdownDescription":"Maximum number of chat debug session log directories to retain on disk. Each chat session produces one directory. Older session logs are automatically deleted when this limit is exceeded.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.fileLogging.maxSessionLogSizeMB":{"type":"number","default":100,"minimum":1,"markdownDescription":"Maximum size in megabytes for a single chat debug session log file. When the log exceeds this size, older entries are truncated to retain the most recent data. Defaults to 100 MB.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.otel.enabled":{"type":"boolean","default":false,"scope":"application","policyReference":{"name":"CopilotOtelEnabled"},"markdownDescription":"Enable OpenTelemetry trace/metric/log emission for Copilot Chat operations. Precedence: enterprise policy > env var `COPILOT_OTEL_ENABLED` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.exporterType":{"type":"string","enum":["otlp-grpc","otlp-http","console","file"],"default":"otlp-http","scope":"application","policyReference":{"name":"CopilotOtelProtocol"},"markdownDescription":"OTel exporter type for Copilot Chat telemetry. Configurable in user settings or managed by enterprise policy (policy takes precedence). Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.protocol":{"type":"string","enum":["","http/json","http/protobuf","grpc"],"default":"","scope":"application","policyReference":{"name":"CopilotOtelOtlpProtocol"},"markdownDescription":"OTLP wire protocol for Copilot Chat OTel data, mirroring `OTEL_EXPORTER_OTLP_PROTOCOL`. `http/protobuf` selects the protobuf-over-HTTP exporter; the default (empty) uses `http/json`. Precedence: enterprise policy > env var > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.otlpEndpoint":{"type":"string","default":"http://localhost:4318","scope":"application","policyReference":{"name":"CopilotOtelEndpoint"},"markdownDescription":"OTLP collector endpoint URL for Copilot Chat OTel data. Precedence: enterprise policy > env var `OTEL_EXPORTER_OTLP_ENDPOINT` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.captureContent":{"type":"boolean","default":false,"scope":"application","policyReference":{"name":"CopilotOtelCaptureContent"},"markdownDescription":"Capture input/output messages, system instructions, and tool definitions in OTel telemetry. **Contains potentially sensitive data.** Precedence: enterprise policy > env var `COPILOT_OTEL_CAPTURE_CONTENT` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.serviceName":{"type":"string","default":"","scope":"application","policyReference":{"name":"CopilotOtelServiceName"},"markdownDescription":"OTel `service.name` resource attribute for Copilot Chat OTel data. Configurable in user settings only. Env var `OTEL_SERVICE_NAME` takes precedence over the setting; enterprise policy takes precedence over both. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.resourceAttributes":{"type":"object","additionalProperties":{"type":"string"},"default":{},"scope":"application","policyReference":{"name":"CopilotOtelResourceAttributes"},"markdownDescription":"Additional OTel resource attributes for Copilot Chat OTel data, as a `{ \"key\": \"value\" }` map. Configurable in user settings only. Merged per-key with `OTEL_RESOURCE_ATTRIBUTES` env (env wins over the setting); enterprise policy wins over both. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.headers":{"type":"object","additionalProperties":{"type":"string"},"default":{},"scope":"application","policyReference":{"name":"CopilotOtelHeaders"},"markdownDescription":"Extra OTLP exporter headers (e.g. auth tokens) for Copilot Chat OTel data, as a `{ \"key\": \"value\" }` map. Applied directly to the OTLP exporter, not via environment variables. Configurable in user settings only. Merged per-key with `OTEL_EXPORTER_OTLP_HEADERS` env (env wins over the setting); enterprise policy wins over both. **Contains potentially sensitive credentials.** Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.maxAttributeSizeChars":{"type":"integer","default":0,"minimum":0,"scope":"application","markdownDescription":"Maximum size **in characters** for free-form OTel content attributes (prompts, responses, tool arguments/results, hook input/output). `0` (the default) disables truncation so backends without per-attribute size limits receive full JSON payloads. Set to a positive value when your OTel backend caps attribute size — consult your backend's documentation for its per-attribute limit. Truncated values are suffixed with `...[truncated, original N chars]`. Configurable in user settings only. Env var `COPILOT_OTEL_MAX_ATTRIBUTE_SIZE_CHARS` takes precedence. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.outfile":{"type":"string","default":"","scope":"application","policyReference":{"name":"CopilotOtelOutfile"},"markdownDescription":"File path for file-based OTel exporter output (JSON-lines). When set, overrides exporter type to `file`. Configurable in user settings or managed by enterprise policy (policy takes precedence). Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.dbSpanExporter.enabled":{"type":"boolean","default":false,"scope":"application","markdownDescription":"Enable SQLite DB span exporter. Persists OTel spans to a local SQLite database. Automatically enables OTel when set to true. Configurable in user settings only. Requires window reload.","tags":["advanced"]},"github.copilot.chat.workspace.codeSearchExternalIngest.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable external ingest for semantic codebase search in this workspace. This setting can be used to enable/disable external ingest, but your Copilot Enterprise or Copilot subscription policies ultimately control availability. [Learn more about external ingest policies](https://aka.ms/vscode-external-ingest-policy).","tags":["advanced","onExp"]}}}],"submenus":[{"id":"copilot/reviewComment/additionalActions/applyAndNext","label":"Apply and Go to Next"},{"id":"copilot/reviewComment/additionalActions/discardAndNext","label":"Discard and Go to Next"},{"id":"copilot/reviewComment/additionalActions/discard","label":"Discard"},{"id":"github.copilot.chat.debug.filter","label":"Filter","icon":"$(filter)"},{"id":"github.copilot.chat.debug.exportAllPromptLogsAsJson","label":"Export All Logs as JSON","icon":"$(file-export)"}],"menus":{"editor/title":[{"command":"github.copilot.debug.generateInlineEditTests","when":"resourceScheme == 'ccreq'"},{"command":"github.copilot.chat.notebook.enableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && !github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && !config.notebook.globalToolbar","group":"navigation@10"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && !config.notebook.globalToolbar","group":"navigation@10"},{"command":"github.copilot.chat.copilotCLI.acceptDiff","group":"navigation@1","when":"github.copilot.chat.copilotCLI.hasActiveDiff"},{"command":"github.copilot.chat.copilotCLI.rejectDiff","group":"navigation@2","when":"github.copilot.chat.copilotCLI.hasActiveDiff"}],"editor/title/context":[{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"}],"explorer/context":[{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !explorerResourceIsFolder"}],"editor/context":[{"command":"github.copilot.chat.fix","when":"!github.copilot.interactiveSession.disabled && chatSetupCompleted && !editorReadonly && editorSelectionHasDiagnostics","group":"1_chat@4"},{"command":"github.copilot.chat.explain","when":"!github.copilot.interactiveSession.disabled && chatSetupCompleted","group":"1_chat@5"},{"command":"github.copilot.chat.review","when":"config.github.copilot.chat.reviewSelection.enabled && !github.copilot.interactiveSession.disabled && chatSetupCompleted && resourceScheme != 'vscode-chat-code-block'","group":"1_chat@6"},{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"},{"command":"github.copilot.chat.copilotCLI.addSelection","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && editorHasSelection && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"}],"chat/editor/inlineGutter":[{"command":"github.copilot.chat.explain","when":"!github.copilot.interactiveSession.disabled && editor.hasSelection && !inlineChatFileBelongsToChat","group":"2_chat@2"},{"command":"github.copilot.chat.review","when":"!github.copilot.interactiveSession.disabled && editor.hasSelection && config.github.copilot.chat.reviewSelection.enabled && !inlineChatFileBelongsToChat","group":"2_chat@3"}],"chat/input/editing/sessionToolbar":[{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","when":"chatSessionType == copilotcli && workbenchState != empty && !isSessionsWindow","group":"navigation@0"},{"command":"github.copilot.chat.checkoutPullRequestReroute","when":"chatSessionType == copilot-cloud-agent && chatSessionPullRequest != 'none' && !github.vscode-pull-request-github.activated && gitOpenRepositoryCount != 0","group":"navigation@0"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","when":"chatSessionType == copilot-cloud-agent && github.copilot.chat.cloudTaskCanCreatePullRequest && !isSessionsWindow","group":"navigation@0"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","when":"chatSessionType == copilot-cloud-agent && github.copilot.chat.cloudTaskCanOpenPullRequest && !isSessionsWindow","group":"navigation@0"}],"agents/changes/actions/primary":[{"command":"github.copilot.sessions.initializeRepository","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == workspace && !sessions.hasGitRepository && !sessions.isAgentHostSession","group":"0_init@1"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && !sessions.isMergeBaseBranchProtected && !sessions.hasPullRequest && (sessions.hasUncommittedChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"1_merge@1"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && !sessions.isMergeBaseBranchProtected && !sessions.hasPullRequest && (sessions.hasUncommittedChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"1_merge@2"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && sessions.hasGitHubRemote && !sessions.hasPullRequest && sessions.hasBranchChanges && !sessions.isAgentHostSession","group":"2_pull_request@1"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && sessions.hasGitHubRemote && !sessions.hasPullRequest && sessions.hasBranchChanges && !sessions.isAgentHostSession","group":"2_pull_request@2"},{"command":"github.copilot.sessions.commit","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUncommittedChanges && !sessions.isAgentHostSession","group":"3_commit@1"},{"command":"github.copilot.sessions.commitAndSync","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUncommittedChanges && !sessions.isAgentHostSession","group":"3_commit@2"},{"command":"github.copilot.sessions.sync","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUpstream && !sessions.hasUncommittedChanges && (sessions.hasIncomingChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"4_sync@1"}],"agents/change/inline":[{"command":"github.copilot.sessions.discardChanges","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && !sessionIsArchived && !sessions.isAgentHostSession","group":"navigation@2"}],"chat/contextUsage/actions":[{"command":"github.copilot.chat.compact","when":"!chatIsAgentHostSession"}],"chat/input/status":[{"command":"github.copilot.chat.otel.statusActive","when":"github.copilot.otel.enabledExplicitly && isSessionsWindow","group":"otel@1"}],"chat/newSession":[{"command":"github.copilot.cli.newSession","group":"4_recommendations@0"}],"testing/item/result":[{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"testResultState == failed && !testResultOutdated","group":"inline@2"}],"testing/item/context":[{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"testResultState == failed && !testResultOutdated","group":"inline@2"}],"commandPalette":[{"command":"github.copilot.cli.openInCopilotCLI","when":"false"},{"command":"github.copilot.debug.extensionState","when":"false"},{"command":"github.copilot.cli.sessions.commitToWorktree","when":"false"},{"command":"github.copilot.cli.sessions.commitToRepository","when":"false"},{"command":"github.copilot.chat.triggerPermissiveSignIn","when":"false"},{"command":"github.copilot.chat.otel.statusActive","when":"false"},{"command":"github.copilot.interactiveSession.feedback","when":"github.copilot-chat.activated && !github.copilot.interactiveSession.disabled"},{"command":"github.copilot.debug.workbenchState","when":"true"},{"command":"github.copilot.chat.rerunWithCopilotDebug","when":"false"},{"command":"github.copilot.chat.startCopilotDebugCommand","when":"false"},{"command":"github.copilot.git.generateCommitMessage","when":"false"},{"command":"github.copilot.git.resolveMergeConflicts","when":"false"},{"command":"github.copilot.chat.explain","when":"false"},{"command":"github.copilot.chat.review","when":"!github.copilot.interactiveSession.disabled"},{"command":"github.copilot.chat.review.apply","when":"false"},{"command":"github.copilot.chat.review.applyAndNext","when":"false"},{"command":"github.copilot.chat.review.discard","when":"false"},{"command":"github.copilot.chat.review.discardAndNext","when":"false"},{"command":"github.copilot.chat.review.discardAll","when":"false"},{"command":"github.copilot.chat.review.stagedChanges","when":"false"},{"command":"github.copilot.chat.review.unstagedChanges","when":"false"},{"command":"github.copilot.chat.review.changes","when":"false"},{"command":"github.copilot.chat.review.stagedFileChange","when":"false"},{"command":"github.copilot.chat.review.unstagedFileChange","when":"false"},{"command":"github.copilot.chat.review.previous","when":"false"},{"command":"github.copilot.chat.review.next","when":"false"},{"command":"github.copilot.chat.review.continueInInlineChat","when":"false"},{"command":"github.copilot.chat.review.continueInChat","when":"false"},{"command":"github.copilot.chat.review.markHelpful","when":"false"},{"command":"github.copilot.chat.review.markUnhelpful","when":"false"},{"command":"github.copilot.devcontainer.generateDevContainerConfig","when":"false"},{"command":"github.copilot.tests.fixTestFailure","when":"false"},{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"false"},{"command":"github.copilot.search.markHelpful","when":"false"},{"command":"github.copilot.search.markUnhelpful","when":"false"},{"command":"github.copilot.search.feedback","when":"false"},{"command":"github.copilot.chat.debug.showElements","when":"false"},{"command":"github.copilot.chat.debug.hideElements","when":"false"},{"command":"github.copilot.chat.debug.showTools","when":"false"},{"command":"github.copilot.chat.debug.hideTools","when":"false"},{"command":"github.copilot.chat.debug.showNesRequests","when":"false"},{"command":"github.copilot.chat.debug.hideNesRequests","when":"false"},{"command":"github.copilot.chat.debug.showGhostRequests","when":"false"},{"command":"github.copilot.chat.debug.hideGhostRequests","when":"false"},{"command":"github.copilot.chat.debug.exportLogItem","when":"false"},{"command":"github.copilot.chat.debug.exportPromptArchive","when":"false"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","when":"false"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","when":"false"},{"command":"github.copilot.chat.mcp.setup.check","when":"false"},{"command":"github.copilot.chat.mcp.setup.validatePackage","when":"false"},{"command":"github.copilot.chat.mcp.setup.flow","when":"false"},{"command":"github.copilot.chat.debug.showRawRequestBody","when":"false"},{"command":"github.copilot.debug.showOutputChannel","when":"false"},{"command":"github.copilot.cli.sessions.delete","when":"false"},{"command":"github.copilot.cli.sessions.resumeInTerminal","when":"false"},{"command":"github.copilot.cli.sessions.rename","when":"false"},{"command":"github.copilot.cli.sessions.setTitle","when":"false"},{"command":"github.copilot.cli.sessions.openRepository","when":"false"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","when":"false"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","when":"false"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","when":"false"},{"command":"github.copilot.cloud.sessions.openInBrowser","when":"false"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","when":"false"},{"command":"github.copilot.cloud.sessions.installPRExtension","when":"false"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"false"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","when":"false"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","when":"false"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","when":"false"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","when":"false"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","when":"false"},{"command":"github.copilot.chat.checkoutPullRequestReroute","when":"false"},{"command":"github.copilot.chat.cloudSessions.openRepository","when":"false"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","when":"false"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","when":"false"},{"command":"github.copilot.nes.captureExpected.start","when":"github.copilot.inlineEditsEnabled"},{"command":"github.copilot.nes.captureExpected.submit","when":"github.copilot.inlineEditsEnabled"},{"command":"github.copilot.sessions.commit","when":"false"},{"command":"github.copilot.sessions.commitAndSync","when":"false"},{"command":"github.copilot.sessions.sync","when":"false"},{"command":"github.copilot.sessions.discardChanges","when":"false"},{"command":"github.copilot.sessions.refreshChanges","when":"false"},{"command":"github.copilot.sessions.initializeRepository","when":"false"}],"view/title":[{"submenu":"github.copilot.chat.debug.filter","when":"view == copilot-chat","group":"navigation"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","when":"view == copilot-chat","group":"export@1"},{"command":"workbench.action.chat.openAgentDebugPanel","when":"view == copilot-chat","group":"3_show@0"},{"command":"github.copilot.debug.showOutputChannel","when":"view == copilot-chat","group":"3_show@1"},{"command":"github.copilot.debug.showChatLogView","when":"view == workbench.panel.chat.view.copilot","group":"3_show"}],"view/item/context":[{"command":"github.copilot.chat.debug.showRawRequestBody","when":"view == copilot-chat && viewItem == request","group":"export@0"},{"command":"github.copilot.chat.debug.exportLogItem","when":"view == copilot-chat && (viewItem == toolcall || viewItem == request)","group":"export@1"},{"command":"github.copilot.chat.debug.exportPromptArchive","when":"view == copilot-chat && viewItem == chatprompt","group":"export@2"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","when":"view == copilot-chat && viewItem == chatprompt","group":"export@3"}],"searchPanel/aiResults/commands":[{"command":"github.copilot.search.markHelpful","group":"inline@0","when":"aiResultsTitle && aiResultsRequested"},{"command":"github.copilot.search.markUnhelpful","group":"inline@1","when":"aiResultsTitle && aiResultsRequested"},{"command":"github.copilot.search.feedback","group":"inline@2","when":"aiResultsTitle && aiResultsRequested && github.copilot.debugReportFeedback"}],"comments/comment/title":[{"command":"github.copilot.chat.review.markHelpful","group":"inline@0","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.markUnhelpful","group":"inline@1","when":"commentController == github-copilot-review"}],"commentsView/commentThread/context":[{"command":"github.copilot.chat.review.apply","group":"context@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discard","group":"context@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discardAll","group":"context@3","when":"commentController == github-copilot-review"}],"comments/commentThread/additionalActions":[{"submenu":"copilot/reviewComment/additionalActions/applyAndNext","group":"inline@1","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments > 1"},{"command":"github.copilot.chat.review.apply","group":"inline@1","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments == 1"},{"submenu":"copilot/reviewComment/additionalActions/discardAndNext","group":"inline@2","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments > 1"},{"submenu":"copilot/reviewComment/additionalActions/discard","group":"inline@2","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments == 1"}],"copilot/reviewComment/additionalActions/applyAndNext":[{"command":"github.copilot.chat.review.applyAndNext","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.apply","group":"inline@2","when":"commentController == github-copilot-review"}],"copilot/reviewComment/additionalActions/discardAndNext":[{"command":"github.copilot.chat.review.discardAndNext","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discard","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInInlineChat","group":"inline@3","when":"commentController == github-copilot-review"}],"copilot/reviewComment/additionalActions/discard":[{"command":"github.copilot.chat.review.discard","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInInlineChat","group":"inline@3","when":"commentController == github-copilot-review"}],"comments/commentThread/title":[{"command":"github.copilot.chat.review.previous","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.next","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInChat","group":"inline@3","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discardAll","group":"inline@4","when":"commentController == github-copilot-review"}],"scm/title":[{"command":"github.copilot.chat.review.changes","group":"navigation","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmProviderRootUri in github.copilot.chat.reviewDiff.enabledRootUris"}],"scm/sourceControl":[{"command":"github.copilot.cli.openInCopilotCLI","group":"3_worktree@1","when":"scmProvider == git"}],"scm/resourceGroup/context":[{"command":"github.copilot.chat.review.stagedChanges","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == index","group":"inline@-3"},{"command":"github.copilot.chat.review.unstagedChanges","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == workingTree","group":"inline@-3"}],"scm/resourceState/context":[{"command":"github.copilot.git.resolveMergeConflicts","when":"scmProvider == git && scmResourceGroup == merge && git.activeResourceHasMergeConflicts","group":"z_chat@1"},{"command":"github.copilot.chat.review.stagedFileChange","group":"3_copilot","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == index"},{"command":"github.copilot.chat.review.unstagedFileChange","group":"3_copilot","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == workingTree"}],"scm/inputBox":[{"command":"github.copilot.git.generateCommitMessage","when":"scmProvider == git && chatSetupCompleted"}],"testing/message/context":[{"command":"github.copilot.tests.fixTestFailure","when":"testing.testItemHasUri","group":"inline@1"}],"issue/reporter":[{"command":"github.copilot.report"}],"github.copilot.chat.debug.filter":[{"command":"github.copilot.chat.debug.showElements","when":"github.copilot.chat.debug.elementsHidden","group":"commands@0"},{"command":"github.copilot.chat.debug.hideElements","when":"!github.copilot.chat.debug.elementsHidden","group":"commands@0"},{"command":"github.copilot.chat.debug.showTools","when":"github.copilot.chat.debug.toolsHidden","group":"commands@1"},{"command":"github.copilot.chat.debug.hideTools","when":"!github.copilot.chat.debug.toolsHidden","group":"commands@1"},{"command":"github.copilot.chat.debug.showNesRequests","when":"github.copilot.chat.debug.nesRequestsHidden","group":"commands@2"},{"command":"github.copilot.chat.debug.hideNesRequests","when":"!github.copilot.chat.debug.nesRequestsHidden","group":"commands@2"},{"command":"github.copilot.chat.debug.showGhostRequests","when":"github.copilot.chat.debug.ghostRequestsHidden","group":"commands@3"},{"command":"github.copilot.chat.debug.hideGhostRequests","when":"!github.copilot.chat.debug.ghostRequestsHidden","group":"commands@3"}],"notebook/toolbar":[{"command":"github.copilot.chat.notebook.enableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && !github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && config.notebook.globalToolbar","group":"navigation/execute@15"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && config.notebook.globalToolbar","group":"navigation/execute@15"}],"editor/content":[{"command":"github.copilot.git.resolveMergeConflicts","group":"z_chat@1","when":"config.git.enabled && !git.missing && !isInDiffEditor && !isMergeEditor && resource in git.mergeChanges && git.activeResourceHasMergeConflicts && chatSetupCompleted"}],"multiDiffEditor/content":[{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"resourceScheme == copilotcli-worktree-changes && workbenchState != empty && !isSessionsWindow"}],"chat/chatSessions":[{"command":"github.copilot.cli.sessions.delete","when":"chatSessionType == copilotcli","group":"1_edit@10"},{"command":"github.copilot.cli.sessions.rename","when":"chatSessionType == copilotcli","group":"1_edit@4"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","when":"chatSessionType == copilotcli && !isSessionsWindow","group":"2_open@1"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","when":"chatSessionType == copilotcli","group":"2_open@2"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","when":"chatSessionType == copilotcli","group":"2_open@3"},{"command":"github.copilot.cli.sessions.resumeInTerminal","when":"chatSessionType == copilotcli","group":"2_open@4"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"chatSessionType == copilotcli && workbenchState != empty && !isSessionsWindow","group":"3_apply@0"},{"command":"github.copilot.cloud.sessions.openInBrowser","when":"chatSessionType == copilot-cloud-agent","group":"navigation@10"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","when":"chatSessionType == copilot-cloud-agent","group":"1_edit@10"}],"chatSessions/item/context":[{"command":"github.copilot.cli.sessions.rename","when":"sessionType == copilotcli && sessionProviderId == default-copilot","group":"1_edit@4"}],"chat/multiDiff/context":[{"command":"github.copilot.cloud.sessions.installPRExtension","when":"chatSessionType == copilot-cloud-agent && !github.copilot.prExtensionInstalled","group":"inline@1"}],"chat/input/editing/sessionTitleToolbar":[{"command":"github.copilot.sessions.refreshChanges","when":"sessionType == copilotcli && isSessionsWindow && !sessions.isAgentHostSession","group":"9_refresh@1"}]},"icons":{"copilot-logo":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0041"}},"copilot-warning":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0042"}},"copilot-notconnected":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0043"}}},"iconFonts":[{"id":"copilot-font","src":[{"path":"assets/copilot.woff","format":"woff"}]}],"terminalQuickFixes":[{"id":"copilot-chat.fixWithCopilot","commandLineMatcher":".+","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":".+","offset":0},"kind":"explain"},{"id":"copilot-chat.generateCommitMessage","commandLineMatcher":"git add .+","commandExitResult":"success","kind":"explain","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":".+","offset":0}},{"id":"copilot-chat.terminalToDebugging","commandLineMatcher":".+","kind":"explain","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":"","offset":0}},{"id":"copilot-chat.terminalToDebuggingSuccess","commandLineMatcher":".+","kind":"explain","commandExitResult":"success","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":"","offset":0}}],"languages":[{"id":"ignore","filenamePatterns":[".copilotignore"],"aliases":[]},{"id":"markdown","extensions":[".copilotmd"]}],"views":{"copilot-chat":[{"id":"copilot-chat","name":"Chat Debug","icon":"assets/debug-icon.svg","when":"github.copilot.chat.showLogView"}],"context-inspector":[{"id":"context-inspector","name":"Language Context Inspector","icon":"$(inspect)","when":"github.copilot.chat.showContextInspectorView"}]},"viewsContainers":{"activitybar":[{"id":"copilot-chat","title":"Chat Debug","icon":"assets/debug-icon.svg"},{"id":"context-inspector","title":"Language Context Inspector","icon":"$(inspect)"}]},"configurationDefaults":{"workbench.editorAssociations":{"*.copilotmd":"vscode.markdown.preview.editor"}},"keybindings":[{"command":"github.copilot.chat.copilotCLI.addFileReference","key":"ctrl+shift+.","mac":"cmd+shift+.","when":"github.copilot.chat.copilotCLI.hasSession && editorTextFocus"},{"command":"github.copilot.chat.rerunWithCopilotDebug","key":"ctrl+alt+.","mac":"cmd+alt+.","when":"github.copilot-chat.activated && terminalShellIntegrationEnabled && terminalFocus && !terminalAltBufferActive"},{"command":"github.copilot.nes.captureExpected.confirm","key":"ctrl+enter","mac":"cmd+enter","when":"copilotNesCaptureMode && editorTextFocus"},{"command":"github.copilot.nes.captureExpected.abort","key":"escape","when":"copilotNesCaptureMode && editorTextFocus"}],"walkthroughs":[{"id":"copilotWelcome","title":"GitHub Copilot","description":"Your AI pair programmer to write code faster and smarter","when":"!isWeb","steps":[{"id":"copilot.setup.signIn","title":"Sign in to use Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.\n\n[Use Copilot for Free](command:workbench.action.chat.triggerSetupForceSignIn)","when":"chatEntitlementSignedOut && !view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && !github.copilot.interactiveSession.individual.disabled && !github.copilot.interactiveSession.individual.expired && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signInNoAction","title":"Sign in to use Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.","when":"chatEntitlementSignedOut && view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && !github.copilot.interactiveSession.individual.disabled && !github.copilot.interactiveSession.individual.expired && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signUp","title":"Get started with Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.\n\n[Use Copilot for Free](command:workbench.action.chat.triggerSetupForceSignIn)","when":"chatPlanCanSignUp && !view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && (github.copilot.interactiveSession.individual.disabled || github.copilot.interactiveSession.individual.expired) && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signUpNoAction","title":"Get started with Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.","when":"chatPlanCanSignUp && view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && (github.copilot.interactiveSession.individual.disabled || github.copilot.interactiveSession.individual.expired) && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.panelChat","title":"Chat about your code","description":"Ask Copilot programming questions or get help with your code using **@workspace**.\n Type **@** to see all available chat participants that you can chat with directly, each with their own expertise.\n[Chat with Copilot](command:workbench.action.chat.open?%7B%22mode%22%3A%22ask%22%7D)","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.edits","title":"Make changes using natural language","description":"Use **Copilot Edits** to select files you want to work with and describe changes you want to make. Copilot applies them directly to your files.\n[Edit with Copilot](command:workbench.action.chat.open?%7B%22mode%22%3A%22edit%22%7D)","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-hclight.mp4"},"altText":"The video shows the user dragging and dropping files into the Copilot Edits input box located in the secondary sidebar. Copilot then updates the file according to the user’s request"}},{"id":"copilot.firstSuggest","title":"AI-suggested inline suggestions","description":"As you type in the editor, Copilot suggests code to help you complete what you started.","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-hclight.mp4"},"altText":"The video shows different Copilot inline suggestions, where Copilot suggests code to help the user complete their code"}},{"id":"copilot.inlineChatNotMac","title":"Use natural language in your files","description":"Sometimes, it's easier to describe the code you want to write directly within a file.\nPlace your cursor or make a selection and use **``Ctrl+I``** to open **Inline Chat**.","when":"!isMac && (!chatEntitlementSignedOut || chatIsEnabled )","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hclight.mp4"},"altText":"Inline Chat view in the editor. The video shows the user invoking the inline chat widget and asking Copilot to make a change in the file using natural language. Copilot then makes the requested change"}},{"id":"copilot.inlineChatMac","title":"Use natural language in your files","description":"Sometimes, it's easier to describe the code you want to write directly within a file.\nPlace your cursor or make a selection and use **``Cmd+I``** to open **Inline Chat**.","when":"isMac && (!chatEntitlementSignedOut || chatIsEnabled )","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hclight.mp4"},"altText":"The video shows the user invoking the inline chat widget and asking Copilot to make a change in the file using natural language. Copilot then makes the requested change"}},{"id":"copilot.sparkle","title":"Look out for smart actions","description":"Copilot enhances your coding experience with AI-powered smart actions throughout the VS Code interface.\nLook for $(sparkle) icons, such as in the [Source Control view](command:workbench.view.scm), where Copilot generates commit messages and PR descriptions based on code changes.\n\n[Discover Tips and Tricks](https://code.visualstudio.com/docs/copilot/copilot-vscode-features)","when":"!chatEntitlementSignedOut || chatIsEnabled","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-hclight.mp4"},"altText":"The video shows the sparkle icon in the source control input box being clicked, triggering GitHub Copilot to generate a commit message automatically"}}]}],"jsonValidation":[{"fileMatch":"settings.json","url":"ccsettings://root/schema.json"}],"typescriptServerPlugins":[{"name":"@vscode/copilot-typescript-server-plugin","enableForWorkspaceTypeScriptVersions":true}],"chatSessions":[{"type":"copilotcli","name":"cli","displayName":"Copilot CLI","icon":"$(copilot)","welcomeTitle":"Copilot CLI","welcomeMessage":"Run tasks in the background with the Copilot CLI","inputPlaceholder":"Run tasks in the background with the Copilot CLI, type `#` for adding context","order":1,"canDelegate":true,"description":"Delegate tasks to a background agent running locally on your machine. The agent iterates via chat and works asynchronously in a Git worktree to implement changes isolated from your main workspace using the GitHub Copilot CLI.","when":"config.github.copilot.chat.backgroundAgent.enabled","supportsAutoModel":true,"requiresCopilotSignIn":true,"capabilities":{"supportsFileAttachments":true,"supportsProblemAttachments":true,"supportsToolAttachments":false,"supportsImageAttachments":true,"supportsSymbolAttachments":true,"supportsSearchResultAttachments":true,"supportsSourceControlAttachments":true,"supportsPromptAttachments":true,"supportsHandOffs":true},"commands":[{"name":"delegate","description":"Delegate chat session to cloud agent and create associated PR","when":"config.github.copilot.chat.cloudAgent.enabled"},{"name":"compact","description":"Free up context by compacting the conversation history"},{"name":"plan","description":"Create an implementation plan before coding","when":"config.github.copilot.chat.cli.planCommand.enabled"},{"name":"fleet","description":"Enable fleet mode for parallel subagent execution","when":"false"},{"name":"remote","description":"Show remote control status, or use /remote on and /remote off","when":"config.github.copilot.chat.cli.remote.enabled"}],"customAgentTarget":"github-copilot","requiresCustomModels":true,"autoAttachReferences":true,"useRequestToPopulateBuiltInPickers":true},{"type":"copilot-cloud-agent","alternativeIds":["copilot-swe-agent"],"name":"cloud","displayName":"Cloud","icon":"$(cloud)","welcomeTitle":"Cloud Agent","welcomeMessage":"Delegate tasks to the cloud","inputPlaceholder":"Delegate tasks to the cloud, type `#` for adding context","order":2,"canDelegate":true,"description":"Delegate tasks to the GitHub Copilot coding agent. The agent iterates via chat and works asynchronously in the cloud to implement changes and pull requests as needed.","when":"config.github.copilot.chat.cloudAgent.enabled","supportsAutoModel":false,"requiresCopilotSignIn":true,"capabilities":{"supportsFileAttachments":true},"autoAttachReferences":true}],"chatAgents":[],"chatPromptFiles":[{"path":"./assets/prompts/plan.prompt.md","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-standup.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-tips.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-cost-tips.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-improve.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-reindex.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-search.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]}],"chatSkills":[{"path":"./assets/prompts/skills/project-setup-info-local/SKILL.md","when":"!config.github.copilot.chat.newWorkspace.useContext7","sessionTypes":["local"]},{"path":"./assets/prompts/skills/project-setup-info-context7/SKILL.md","when":"config.github.copilot.chat.newWorkspace.useContext7","sessionTypes":["local"]},{"path":"./assets/prompts/skills/install-vscode-extension/SKILL.md","when":"config.github.copilot.chat.installExtensionSkill.enabled && config.github.copilot.chat.newWorkspaceCreation.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/skills/get-search-view-results/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/troubleshoot/SKILL.md","sessionTypes":["local","copilotcli"]},{"path":"./assets/prompts/skills/agent-customization/SKILL.md","sessionTypes":["local","copilotcli"]},{"path":"./assets/prompts/skills/init/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-prompt/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-instructions/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-skill/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-agent/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-hook/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/chronicle/SKILL.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]}],"terminal":{"profiles":[{"icon":"copilot","id":"copilot-cli","title":"GitHub Copilot CLI","titleTemplate":"${sequence}"}]}},"prettier":{"useTabs":true,"tabWidth":4,"singleQuote":true},"scripts":{"postinstall":"tsx ./script/postinstall.ts","build":"node .esbuild.mts --sourcemaps","compile":"node .esbuild.mts --dev","watch":"npm-run-all -lp watch:esbuild watch:typecheck","watch:esbuild":"node .esbuild.mts --watch --dev","watch:typecheck":"tsc --noEmit --watch --preserveWatchOutput --project tsconfig.json","watch:typecheck-extension":"tsc --noEmit --watch --project tsconfig.json","watch:typecheck-extension-web":"tsc --noEmit --watch --project tsconfig.worker.json","watch:typecheck-simulation-workbench":"tsc --noEmit --watch --project test/simulation/workbench/tsconfig.json","typecheck":"tsc --noEmit --project tsconfig.json && tsc --noEmit --project test/simulation/workbench/tsconfig.json && tsc --noEmit --project tsconfig.worker.json && tsc --noEmit --project src/extension/completions-core/vscode-node/extension/src/copilotPanel/webView/tsconfig.json","lint":"npx eslint . --max-warnings=0","lint-staged":"npx eslint --max-warnings=0","tsfmt":"npx tsfmt -r --verify","test":"npm-run-all test:*","test:extension":"vscode-test","test:sanity":"vscode-test --sanity","test:unit":"vitest --run --pool=forks","vitest":"vitest","bench":"vitest bench","get_env":"tsx script/setup/getEnv.mts","get_token":"tsx script/setup/getToken.mts","prettier":"prettier --list-different --write --cache .","simulate":"node dist/simulationMain.js","simulate-require-cache":"node dist/simulationMain.js --require-cache","simulate-ci":"node dist/simulationMain.js --ci --require-cache","simulate-update-baseline":"node dist/simulationMain.js --update-baseline","simulate-gc":"node dist/simulationMain.js --require-cache --gc","setup":"npm run get_env && npm run get_token","setup:dotnet":"run-script-os","setup:dotnet:darwin:linux":"curl -O https://raw.githubusercontent.com/dotnet/install-scripts/main/src/dotnet-install.sh && chmod u+x dotnet-install.sh && ./dotnet-install.sh --channel 10.0 && rm dotnet-install.sh","setup:dotnet:win32":"powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"Invoke-WebRequest -Uri https://raw.githubusercontent.com/dotnet/install-scripts/main/src/dotnet-install.ps1 -OutFile dotnet-install.ps1; ./dotnet-install.ps1 -channel 10.0; Remove-Item dotnet-install.ps1\"","analyze-edits":"tsx script/analyzeEdits.ts","extract-chat-lib":"tsx script/build/extractChatLib.ts","create_venv":"tsx script/setup/createVenv.mts","package":"vsce package","web":"vscode-test-web --headless --extensionDevelopmentPath=. .","test:prompt":"mocha \"src/extension/completions-core/vscode-node/prompt/**/test/**/*.test.{ts,tsx}\"","test:completions-core":"tsx src/extension/completions-core/vscode-node/extension/test/runTest.ts"},"devDependencies":{"@azure/identity":"4.9.1","@azure/keyvault-secrets":"^4.10.0","@azure/msal-node":"^3.6.3","@c4312/scip":"^0.1.0","@fluentui/react-components":"^9.66.6","@fluentui/react-icons":"^2.0.305","@hediet/node-reload":"^0.8.0","@octokit/types":"^14.1.0","@stylistic/eslint-plugin":"^3.0.1","@types/eslint":"^9.0.0","@types/express":"^5.0.6","@types/google-protobuf":"^3.15.12","@types/js-yaml":"^4.0.9","@types/markdown-it":"^14.0.0","@types/minimist":"^1.2.5","@types/mocha":"^10.0.10","@types/node":"^22.16.3","@types/picomatch":"^4.0.0","@types/react":"17.0.44","@types/react-dom":"^18.2.17","@types/sinon":"^17.0.4","@types/source-map-support":"^0.5.10","@types/tar":"^6.1.13","@types/vinyl":"^2.0.12","@types/vscode-webview":"^1.57.5","@types/ws":"^8.5.3","@types/yargs":"^17.0.24","@typescript-eslint/eslint-plugin":"^8.35.0","@typescript-eslint/parser":"^8.32.0","@typescript-eslint/typescript-estree":"^8.26.1","@typescript/native":"npm:typescript@7.1.0-dev.20260818.1","@vitest/coverage-v8":"^4.1.8","@vitest/snapshot":"^1.5.0","@vscode/debugadapter":"^1.68.0","@vscode/debugprotocol":"^1.68.0","@vscode/dts":"^0.4.1","@vscode/lsif-language-service":"^0.1.0-pre.4","@vscode/test-cli":"^0.0.11","@vscode/test-electron":"^2.5.2","@vscode/test-web":"^0.0.81","@vscode/vsce":"3.6.0","copyfiles":"^2.4.1","csv-parse":"^6.0.0","dotenv":"^17.2.0","electron":"^42.5.0","esbuild":"0.28.1","fastq":"^1.19.1","glob":"^11.1.0","js-yaml":"^4.3.0","minimist":"^1.2.8","mobx":"^6.13.7","mobx-react-lite":"^4.1.0","mocha":"^11.7.1","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","monaco-editor":"0.44.0","npm-run-all":"^4.1.5","open":"^10.1.2","openai":"^6.7.0","outdent":"^0.8.0","picomatch":"^4.0.4","playwright":"^1.61.1","prettier":"^3.6.2","react":"^17.0.2","react-dom":"17.0.2","rimraf":"^6.0.1","run-script-os":"^1.1.6","shiki":"~1.15.0","sinon":"^21.0.0","source-map-support":"^0.5.21","tar":"^7.5.16","ts-dedent":"^2.2.0","tsx":"^4.22.4","typescript":"npm:@typescript/typescript6@^6.0.2","vite-plugin-wasm":"^3.6.0","vitest":"^4.1.8","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12","vscode-languageserver-types":"^3.17.5","yaml":"^2.8.0","yargs":"^17.7.2","zod":"3.25.76"},"dependencies":{"@anthropic-ai/sdk":"^0.82.0","@github/blackbird-external-ingest-utils":"^0.3.0","@github/copilot":"^1.0.73","@google/genai":"1.30.0","@humanwhocodes/gitignore-to-minimatch":"1.0.2","@microsoft/tiktokenizer":"^1.0.10","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.212.0","@opentelemetry/exporter-logs-otlp-grpc":"^0.219.0","@opentelemetry/exporter-logs-otlp-http":"^0.219.0","@opentelemetry/exporter-logs-otlp-proto":"^0.219.0","@opentelemetry/exporter-metrics-otlp-grpc":"^0.219.0","@opentelemetry/exporter-metrics-otlp-http":"^0.219.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.219.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.219.0","@opentelemetry/exporter-trace-otlp-http":"^0.219.0","@opentelemetry/exporter-trace-otlp-proto":"^0.219.0","@opentelemetry/resources":"^2.5.1","@opentelemetry/sdk-logs":"^0.212.0","@opentelemetry/sdk-metrics":"^2.5.1","@opentelemetry/sdk-trace-node":"^2.5.1","@opentelemetry/semantic-conventions":"^1.39.0","@sinclair/typebox":"^0.34.41","@vscode/copilot-api":"^0.5.2","@vscode/extension-telemetry":"^1.5.1","@vscode/l10n":"^0.0.18","@vscode/prompt-tsx":"^0.4.0-alpha.8","@vscode/tree-sitter-wasm":"0.0.5-php.2","@vscode/webview-ui-toolkit":"^1.3.1","@xterm/headless":"^5.5.0","ajv":"^8.18.0","applicationinsights":"^2.9.7","best-effort-json-parser":"^1.2.1","diff":"^8.0.3","express":"^5.2.1","ignore":"^7.0.5","isbinaryfile":"^5.0.4","jsonc-parser":"^3.3.1","lru-cache":"^11.1.0","markdown-it":"^14.2.0","minimatch":"^10.2.1","undici":"^7.24.1","vscode-tas-client":"^0.3.1","web-tree-sitter":"^0.23.0"},"overrides":{"string_decoder":"npm:string_decoder@1.2.0","yauzl":"^3.3.1","zod":"3.25.76"},"vscodeCommit":"94c8e2adc50e26ef70af85a0de3a9efed757acaa","allowScripts":{"esbuild@0.28.1":true,"keytar@7.9.0":true,"@playwright/browser-chromium@1.61.1":true,"@vscode/vsce-sign@2.1.0":true,"protobufjs":false,"fsevents@2.3.3":true,"fsevents@2.3.2":true},"isPreRelease":false,"originalEnabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","chatDebug","chatHooks","extensionsAny","newSymbolNamesProvider","interactive","codeActionAI","activeComment","commentReveal","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","documentFiltersExclusive","embeddings","findTextInFiles","findTextInFiles2","languageModelToolSupportsModel","findFiles2","textSearchProvider","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","chatParticipantAdditions","defaultChatParticipant","contribSourceControlInputBoxMenu","authLearnMore","testObserver","aiTextSearchProvider","chatParticipantPrivate","chatProvider","contribDebugCreateConfiguration","chatReferenceDiagnostic","textSearchProvider2","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelPricing","inlineCompletionsAdditions","chatStatusItem","chatInputNotification","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","languageModelThinkingPart","chatSessionsProvider","devDeviceId","contribEditorContentMenu","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","environmentPower","terminalTitle","toolInvocationApproveCombination","chatSessionCustomizationProvider"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/copilot","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":true},{"type":0,"identifier":{"id":"vscode.cpp"},"manifest":{"name":"cpp","displayName":"C/C++ Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in C/C++ files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"c","extensions":[".c",".i"],"aliases":["C","c"],"configuration":"./language-configuration.json"},{"id":"cpp","extensions":[".cpp",".cppm",".cc",".ccm",".cxx",".cxxm",".c++",".c++m",".hpp",".hh",".hxx",".h++",".h",".ii",".ino",".inl",".ipp",".ixx",".mpp",".mxx",".tpp",".txx",".hpp.in",".h.in"],"aliases":["C++","Cpp","cpp"],"configuration":"./language-configuration.json"},{"id":"cuda-cpp","extensions":[".cu",".cuh"],"aliases":["CUDA C++"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"c","scopeName":"source.c","path":"./syntaxes/c.tmLanguage.json"},{"language":"cpp","scopeName":"source.cpp.embedded.macro","path":"./syntaxes/cpp.embedded.macro.tmLanguage.json"},{"language":"cpp","scopeName":"source.cpp","path":"./syntaxes/cpp.tmLanguage.json"},{"scopeName":"source.c.platform","path":"./syntaxes/platform.tmLanguage.json"},{"language":"cuda-cpp","scopeName":"source.cuda-cpp","path":"./syntaxes/cuda-cpp.tmLanguage.json"}],"problemPatterns":[{"name":"nvcc-location","regexp":"^(.*)\\((\\d+)\\):\\s+(warning|error):\\s+(.*)","kind":"location","file":1,"location":2,"severity":3,"message":4}],"problemMatchers":[{"name":"nvcc","owner":"cuda-cpp","fileLocation":["relative","${workspaceFolder}"],"pattern":"$nvcc-location"}],"snippets":[{"language":"c","path":"./snippets/c.code-snippets"},{"language":"cpp","path":"./snippets/cpp.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/cpp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.csharp"},"manifest":{"name":"csharp","displayName":"C# Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in C# files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dotnet/csharp-tmLanguage grammars/csharp.tmLanguage ./syntaxes/csharp.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"configurationDefaults":{"[csharp]":{"editor.maxTokenizationLineLength":2500}},"languages":[{"id":"csharp","extensions":[".cs",".csx",".cake"],"aliases":["C#","csharp"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"csharp","scopeName":"source.cs","path":"./syntaxes/csharp.tmLanguage.json","tokenTypes":{"meta.interpolation":"other"},"unbalancedBracketScopes":["keyword.operator.relational.cs","keyword.operator.arrow.cs","punctuation.accessor.pointer.cs","keyword.operator.bitwise.shift.cs","keyword.operator.assignment.compound.bitwise.cs"]}],"snippets":[{"language":"csharp","path":"./snippets/csharp.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/csharp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.css"},"manifest":{"name":"css","displayName":"CSS Language Basics","description":"Provides syntax highlighting and bracket matching for CSS, LESS and SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin microsoft/vscode-css grammars/css.cson ./syntaxes/css.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"css","aliases":["CSS","css"],"extensions":[".css"],"mimetypes":["text/css"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"css","scopeName":"source.css","path":"./syntaxes/css.tmLanguage.json","tokenTypes":{"meta.function.url string.quoted":"other"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/css","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.css-language-features"},"manifest":{"name":"css-language-features","displayName":"CSS Language Features","description":"Provides rich language support for CSS, LESS and SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.77.0"},"icon":"icons/css.png","activationEvents":["onLanguage:css","onLanguage:less","onLanguage:scss"],"main":"./client/dist/node/cssClientMain","browser":"./client/dist/browser/cssClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"categories":["Programming Languages"],"contributes":{"configuration":[{"order":22,"id":"css","title":"CSS","properties":{"css.customData":{"type":"array","markdownDescription":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-css-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its CSS support for CSS custom properties (variables), at-rules, pseudo-classes, and pseudo-elements you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","default":[],"items":{"type":"string"},"scope":"resource"},"css.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"css.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"css.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"css.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in CSS hovers."},"css.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in CSS hovers."},"css.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"css.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"css.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"css.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"css.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"css.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"css.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"css.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"css.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"css.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"css.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"css.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"css.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"css.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"css.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"css.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"css.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"css.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"css.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"css.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"css.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the CSS language server."},"css.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default CSS formatter."},"css.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"css.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"css.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"css.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"css.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"css.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#css.format.preserveNewLines#` is enabled."}}},{"id":"scss","order":24,"title":"SCSS (Sass)","properties":{"scss.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"scss.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"scss.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"scss.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in SCSS hovers."},"scss.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in SCSS hovers."},"scss.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"scss.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"scss.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"scss.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"scss.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"scss.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"scss.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"scss.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"scss.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"scss.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"scss.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"scss.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"scss.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"scss.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"scss.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"scss.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"scss.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"scss.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"scss.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"scss.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"scss.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default SCSS formatter."},"scss.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"scss.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"scss.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"scss.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"scss.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"scss.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#scss.format.preserveNewLines#` is enabled."}}},{"id":"less","order":23,"type":"object","title":"LESS","properties":{"less.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"less.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"less.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"less.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in LESS hovers."},"less.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in LESS hovers."},"less.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"less.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"less.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"less.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"less.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"less.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"less.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"less.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"less.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"less.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"less.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"less.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"less.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"less.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"less.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"less.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"less.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"less.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"less.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"less.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"less.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default LESS formatter."},"less.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"less.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"less.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"less.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"less.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"less.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#less.format.preserveNewLines#` is enabled."}}}],"configurationDefaults":{"[css]":{"editor.suggest.insertMode":"replace"},"[scss]":{"editor.suggest.insertMode":"replace"},"[less]":{"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.css-data.json","url":"https://raw.githubusercontent.com/microsoft/vscode-css-languageservice/master/docs/customData.schema.json"},{"fileMatch":"package.json","url":"./schemas/package.schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/css-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.dart"},"manifest":{"name":"dart","displayName":"Dart Language Basics","description":"Provides syntax highlighting & bracket matching in Dart files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dart-lang/dart-syntax-highlight grammars/dart.json ./syntaxes/dart.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dart","extensions":[".dart"],"aliases":["Dart"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dart","scopeName":"source.dart","path":"./syntaxes/dart.tmLanguage.json"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/dart","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.debug-auto-launch"},"manifest":{"name":"debug-auto-launch","displayName":"Node Debug Auto-attach","description":"Helper for auto-attach feature when node-debug extensions are not active.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.5.0"},"icon":"media/icon.png","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onStartupFinished"],"main":"./dist/extension","contributes":{"commands":[{"command":"extension.node-debug.toggleAutoAttach","title":"Toggle Auto Attach","category":"Debug"}]},"prettier":{"printWidth":100,"trailingComma":"all","singleQuote":true,"arrowParens":"avoid"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/debug-auto-launch","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.debug-server-ready"},"manifest":{"name":"debug-server-ready","displayName":"Server Ready Action","description":"Open URI in browser if server under debugging is ready.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.32.0"},"icon":"media/icon.png","activationEvents":["onDebugResolve"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["terminalDataWriteEvent"],"main":"./dist/extension","contributes":{"debuggers":[{"type":"*","configurationAttributes":{"launch":{"properties":{"serverReadyAction":{"oneOf":[{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"openExternally","killOnServerStop":false},"properties":{"action":{"type":"string","enum":["openExternally","openIntegratedBrowser"],"enumDescriptions":["Open URI externally with the default application.","Open URI in the integrated browser."],"markdownDescription":"What to do with the URI when the server is ready.","default":"openExternally"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"uriFormat":{"type":"string","markdownDescription":"A format string used when constructing the URI from a port number. The first '%s' is substituted with the port number.","default":"http://localhost:%s"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"debugWithEdge","pattern":"listening on port ([0-9]+)","uriFormat":"http://localhost:%s","webRoot":"${workspaceFolder}","killOnServerStop":false},"properties":{"action":{"type":"string","enum":["debugWithChrome","debugWithEdge"],"enumDescriptions":["Start debugging with the 'Debugger for Chrome'."],"markdownDescription":"What to do with the URI when the server is ready.","default":"debugWithEdge"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"uriFormat":{"type":"string","markdownDescription":"A format string used when constructing the URI from a port number. The first '%s' is substituted with the port number.","default":"http://localhost:%s"},"webRoot":{"type":"string","markdownDescription":"Value passed to the debug configuration for the 'Debugger for Chrome'.","default":"${workspaceFolder}"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"startDebugging","name":"","killOnServerStop":false},"required":["name"],"properties":{"action":{"type":"string","enum":["startDebugging"],"enumDescriptions":["Run another launch configuration."],"markdownDescription":"What to do with the URI when the server is ready.","default":"startDebugging"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"name":{"type":"string","markdownDescription":"Name of the launch configuration to run.","default":"Launch Browser"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"startDebugging","config":{"type":"node","request":"launch"},"killOnServerStop":false},"required":["config"],"properties":{"action":{"type":"string","enum":["startDebugging"],"enumDescriptions":["Run another launch configuration."],"markdownDescription":"What to do with the URI when the server is ready.","default":"startDebugging"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"config":{"type":"object","markdownDescription":"The debug configuration to run.","default":{}},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}}]}}}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalDataWriteEvent"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/debug-server-ready","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.diff"},"manifest":{"name":"diff","displayName":"Diff Language Basics","description":"Provides syntax highlighting & bracket matching in Diff files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/diff.tmbundle Syntaxes/Diff.plist ./syntaxes/diff.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"diff","aliases":["Diff","diff"],"extensions":[".diff",".patch",".rej"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"diff","scopeName":"source.diff","path":"./syntaxes/diff.tmLanguage.json"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/diff","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.docker"},"manifest":{"name":"docker","displayName":"Docker Language Basics","description":"Provides syntax highlighting and bracket matching in Docker files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dockerfile","extensions":[".dockerfile",".containerfile"],"filenames":["Dockerfile","Containerfile"],"filenamePatterns":["Dockerfile.*","Containerfile.*"],"aliases":["Docker","Dockerfile","Containerfile"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dockerfile","scopeName":"source.dockerfile","path":"./syntaxes/docker.tmLanguage.json"}],"configurationDefaults":{"[dockerfile]":{"editor.quickSuggestions":{"strings":true}}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/docker","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.dotenv"},"manifest":{"name":"dotenv","displayName":"Dotenv Language Basics","description":"Provides syntax highlighting and bracket matching in dotenv files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dotenv-org/dotenv-vscode syntaxes/dotenv.tmLanguage.json ./syntaxes/dotenv.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dotenv","extensions":[".env"],"filenames":[".env",".flaskenv","user-dirs.dirs"],"filenamePatterns":[".env.*"],"aliases":["Dotenv"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dotenv","scopeName":"source.dotenv","path":"./syntaxes/dotenv.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/dotenv","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.emmet"},"manifest":{"name":"emmet","displayName":"Emmet","description":"Emmet support for VS Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.13.0"},"icon":"images/icon.png","categories":["Other"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"activationEvents":["onCommand:emmet.expandAbbreviation","onLanguage"],"main":"./dist/node/emmetNodeMain","browser":"./dist/browser/emmetBrowserMain","contributes":{"configuration":{"type":"object","title":"Emmet","properties":{"emmet.showExpandedAbbreviation":{"type":["string"],"enum":["never","always","inMarkupAndStylesheetFilesOnly"],"default":"always","markdownDescription":"Shows expanded Emmet abbreviations as suggestions.\nThe option `\"inMarkupAndStylesheetFilesOnly\"` applies to html, haml, jade, slim, xml, xsl, css, scss, sass, less and stylus.\nThe option `\"always\"` applies to all parts of the file regardless of markup/css."},"emmet.showAbbreviationSuggestions":{"type":"boolean","default":true,"scope":"language-overridable","markdownDescription":"Shows possible Emmet abbreviations as suggestions. Not applicable in stylesheets or when emmet.showExpandedAbbreviation is set to `\"never\"`."},"emmet.includeLanguages":{"type":"object","additionalProperties":{"type":"string"},"default":{},"markdownDescription":"Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and Emmet supported language.\n For example: `{\"vue-html\": \"html\", \"javascript\": \"javascriptreact\"}`"},"emmet.variables":{"type":"object","properties":{"lang":{"type":"string","default":"en"},"charset":{"type":"string","default":"UTF-8"}},"additionalProperties":{"type":"string"},"default":{},"markdownDescription":"Variables to be used in Emmet snippets."},"emmet.syntaxProfiles":{"type":"object","default":{},"markdownDescription":"Define profile for specified syntax or use your own profile with specific rules."},"emmet.excludeLanguages":{"type":"array","items":{"type":"string"},"default":["markdown"],"markdownDescription":"An array of languages where Emmet abbreviations should not be expanded."},"emmet.extensionsPath":{"type":"array","items":{"type":"string","markdownDescription":"A path containing Emmet syntaxProfiles and/or snippets."},"default":[],"scope":"machine-overridable","markdownDescription":"An array of paths, where each path can contain Emmet syntaxProfiles and/or snippet files.\nIn case of conflicts, the profiles/snippets of later paths will override those of earlier paths.\nSee https://code.visualstudio.com/docs/editor/emmet for more information and an example snippet file."},"emmet.triggerExpansionOnTab":{"type":"boolean","default":false,"scope":"language-overridable","markdownDescription":"When enabled, Emmet abbreviations are expanded when pressing TAB, even when completions do not show up. When disabled, completions that show up can still be accepted by pressing TAB."},"emmet.useInlineCompletions":{"type":"boolean","default":false,"markdownDescription":"If `true`, Emmet will use inline completions to suggest expansions. To prevent the non-inline completion item provider from showing up as often while this setting is `true`, turn `#editor.quickSuggestions#` to `inline` or `off` for the `other` item."},"emmet.preferences":{"type":"object","default":{},"markdownDescription":"Preferences used to modify behavior of some actions and resolvers of Emmet.","properties":{"css.intUnit":{"type":"string","default":"px","markdownDescription":"Default unit for integer values."},"css.floatUnit":{"type":"string","default":"em","markdownDescription":"Default unit for float values."},"css.propertyEnd":{"type":"string","default":";","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations."},"sass.propertyEnd":{"type":"string","default":"","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations in Sass files."},"stylus.propertyEnd":{"type":"string","default":"","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations in Stylus files."},"css.valueSeparator":{"type":"string","default":": ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations."},"sass.valueSeparator":{"type":"string","default":": ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations in Sass files."},"stylus.valueSeparator":{"type":"string","default":" ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations in Stylus files."},"bem.elementSeparator":{"type":"string","default":"__","markdownDescription":"Element separator used for classes when using the BEM filter."},"bem.modifierSeparator":{"type":"string","default":"_","markdownDescription":"Modifier separator used for classes when using the BEM filter."},"filter.commentBefore":{"type":"string","default":"","markdownDescription":"A definition of comment that should be placed before matched element when comment filter is applied."},"filter.commentAfter":{"type":"string","default":"\n","markdownDescription":"A definition of comment that should be placed after matched element when comment filter is applied."},"filter.commentTrigger":{"type":"array","default":["id","class"],"markdownDescription":"A comma-separated list of attribute names that should exist in the abbreviation for the comment filter to be applied."},"format.noIndentTags":{"type":"array","default":["html"],"markdownDescription":"An array of tag names that should never get inner indentation."},"format.forceIndentationForTags":{"type":"array","default":["body"],"markdownDescription":"An array of tag names that should always get inner indentation."},"profile.allowCompactBoolean":{"type":"boolean","default":false,"markdownDescription":"If `true`, compact notation of boolean attributes are produced."},"css.webkitProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `webkit` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `webkit` prefix."},"css.mozProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `moz` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `moz` prefix."},"css.oProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `o` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `o` prefix."},"css.msProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `ms` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `ms` prefix."},"css.fuzzySearchMinScore":{"type":"number","default":0.3,"markdownDescription":"The minimum score (from 0 to 1) that fuzzy-matched abbreviation should achieve. Lower values may produce many false-positive matches, higher values may reduce possible matches."},"output.inlineBreak":{"type":"number","default":0,"markdownDescription":"The number of sibling inline elements needed for line breaks to be placed between those elements. If `0`, inline elements are always expanded onto a single line."},"output.reverseAttributes":{"type":"boolean","default":false,"markdownDescription":"If `true`, reverses attribute merging directions when resolving snippets."},"output.selfClosingStyle":{"type":"string","enum":["html","xhtml","xml"],"default":"html","markdownDescription":"Style of self-closing tags: html (`
`), xml (`
`) or xhtml (`
`)."},"css.color.short":{"type":"boolean","default":true,"markdownDescription":"If `true`, color values like `#f` will be expanded to `#fff` instead of `#ffffff`."}}},"emmet.showSuggestionsAsSnippets":{"type":"boolean","default":false,"markdownDescription":"If `true`, then Emmet suggestions will show up as snippets allowing you to order them as per `#editor.snippetSuggestions#` setting."},"emmet.optimizeStylesheetParsing":{"type":"boolean","default":true,"markdownDescription":"When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in CSS/SCSS/Less files is parsed."}}},"commands":[{"command":"editor.emmet.action.wrapWithAbbreviation","title":"Wrap with Abbreviation","category":"Emmet"},{"command":"editor.emmet.action.removeTag","title":"Remove Tag","category":"Emmet"},{"command":"editor.emmet.action.updateTag","title":"Update Tag","category":"Emmet"},{"command":"editor.emmet.action.matchTag","title":"Go to Matching Pair","category":"Emmet"},{"command":"editor.emmet.action.balanceIn","title":"Balance (inward)","category":"Emmet"},{"command":"editor.emmet.action.balanceOut","title":"Balance (outward)","category":"Emmet"},{"command":"editor.emmet.action.prevEditPoint","title":"Go to Previous Edit Point","category":"Emmet"},{"command":"editor.emmet.action.nextEditPoint","title":"Go to Next Edit Point","category":"Emmet"},{"command":"editor.emmet.action.mergeLines","title":"Merge Lines","category":"Emmet"},{"command":"editor.emmet.action.selectPrevItem","title":"Select Previous Item","category":"Emmet"},{"command":"editor.emmet.action.selectNextItem","title":"Select Next Item","category":"Emmet"},{"command":"editor.emmet.action.splitJoinTag","title":"Split/Join Tag","category":"Emmet"},{"command":"editor.emmet.action.toggleComment","title":"Toggle Comment","category":"Emmet"},{"command":"editor.emmet.action.evaluateMathExpression","title":"Evaluate Math Expression","category":"Emmet"},{"command":"editor.emmet.action.updateImageSize","title":"Update Image Size","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByOneTenth","title":"Increment by 0.1","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByOne","title":"Increment by 1","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByTen","title":"Increment by 10","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByOneTenth","title":"Decrement by 0.1","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByOne","title":"Decrement by 1","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByTen","title":"Decrement by 10","category":"Emmet"},{"command":"editor.emmet.action.reflectCSSValue","title":"Reflect CSS Value","category":"Emmet"},{"command":"workbench.action.showEmmetCommands","title":"Show Emmet Commands","category":""}],"menus":{"commandPalette":[{"command":"editor.emmet.action.wrapWithAbbreviation","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.removeTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.updateTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.matchTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.balanceIn","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.balanceOut","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.prevEditPoint","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.nextEditPoint","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.mergeLines","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.selectPrevItem","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.selectNextItem","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.splitJoinTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.toggleComment","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.evaluateMathExpression","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.updateImageSize","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByOneTenth","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByOne","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByTen","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByOneTenth","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByOne","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByTen","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.reflectCSSValue","when":"activeEditor && !activeEditorIsReadonly"}]}},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/emmet","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.extension-editing"},"manifest":{"name":"extension-editing","displayName":"Extension Authoring","description":"Provides linting capabilities for authoring extensions.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.4.0"},"icon":"images/icon.png","activationEvents":["onLanguage:json","onLanguage:markdown"],"main":"./dist/extensionEditingMain","browser":"./dist/browser/extensionEditingBrowserMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"jsonValidation":[{"fileMatch":"package.json","url":"vscode://schemas/vscode-extensions"},{"fileMatch":"*language-configuration.json","url":"vscode://schemas/language-configuration"},{"fileMatch":["*icon-theme.json","!*product-icon-theme.json"],"url":"vscode://schemas/icon-theme"},{"fileMatch":"*product-icon-theme.json","url":"vscode://schemas/product-icon-theme"},{"fileMatch":"*color-theme.json","url":"vscode://schemas/color-theme"}],"languages":[{"id":"ignore","filenames":[".vscodeignore"]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/extension-editing","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.fsharp"},"manifest":{"name":"fsharp","displayName":"F# Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in F# files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin ionide/ionide-fsgrammar grammars/fsharp.json ./syntaxes/fsharp.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"fsharp","extensions":[".fs",".fsi",".fsx",".fsscript"],"aliases":["F#","FSharp","fsharp"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"fsharp","scopeName":"source.fsharp","path":"./syntaxes/fsharp.tmLanguage.json"}],"snippets":[{"language":"fsharp","path":"./snippets/fsharp.code-snippets"}],"configurationDefaults":{"[fsharp]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/fsharp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.git"},"manifest":{"name":"git","displayName":"Git","description":"Git SCM Integration","publisher":"vscode","license":"MIT","version":"10.0.0","engines":{"vscode":"^1.5.0"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","canonicalUriProvider","contribEditSessions","contribEditorContentMenu","contribMergeEditorMenus","contribMultiDiffEditorMenus","contribDiffEditorGutterToolBarMenus","contribSourceControlArtifactGroupMenu","contribSourceControlArtifactMenu","contribSourceControlHistoryItemMenu","contribSourceControlHistoryTitleMenu","contribSourceControlInputBoxMenu","contribSourceControlTitleMenu","contribViewsWelcome","editSessionIdentityProvider","envIsConnectionMetered","findFiles2","quickDiffProvider","quickPickSortByLabel","scmActionButton","scmArtifactProvider","scmHistoryProvider","scmMultiDiffEditor","scmProviderOptions","scmSelectedProvider","scmTextDocument","scmValidation","statusBarItemTooltip","taskRunOptions","tabInputMultiDiff","tabInputTextMerge","textEditorDiffInformation","timeline","workspaceTrust"],"categories":["Other"],"activationEvents":["*","onEditSession:file","onFileSystem:git","onFileSystem:git-show"],"extensionDependencies":["vscode.git-base"],"main":"./dist/main","icon":"resources/icons/git.png","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":false}},"contributes":{"commands":[{"command":"git.continueInLocalClone","title":"Clone Repository Locally and Open on Desktop...","category":"Git","icon":"$(repo-clone)","enablement":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && remoteName"},{"command":"git.clone","title":"Clone","category":"Git","enablement":"!operationInProgress"},{"command":"git.cloneRecursive","title":"Clone (Recursive)","category":"Git","enablement":"!operationInProgress"},{"command":"git.init","title":"Initialize Repository","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.openRepository","title":"Open Repository","category":"Git","enablement":"!operationInProgress"},{"command":"git.reopenClosedRepositories","title":"Reopen Closed Repositories...","icon":"$(repo)","category":"Git","enablement":"!operationInProgress && git.closedRepositoryCount != 0"},{"command":"git.close","title":"Close Repository","category":"Git","enablement":"!operationInProgress"},{"command":"git.closeOtherRepositories","title":"Close Other Repositories","category":"Git","enablement":"!operationInProgress"},{"command":"git.openWorktree","title":"Open Worktree in Current Window","category":"Git","enablement":"!operationInProgress"},{"command":"git.openWorktreeInNewWindow","title":"Open Worktree in New Window","category":"Git","enablement":"!operationInProgress"},{"command":"git.refresh","title":"Refresh","category":"Git","icon":"$(refresh)","enablement":"!operationInProgress"},{"command":"git.compareWithWorkspace","title":"Compare with Workspace","category":"Git"},{"command":"git.openChange","title":"Open Changes","category":"Git","icon":"$(compare-changes)"},{"command":"git.openAllChanges","title":"Open All Changes","category":"Git"},{"command":"git.openFile","title":"Open File","category":"Git","icon":"$(go-to-file)"},{"command":"git.openFile2","title":"Open File","category":"Git","icon":"$(go-to-file)"},{"command":"git.openHEADFile","title":"Open File (HEAD)","category":"Git"},{"command":"git.stage","title":"Stage Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAll","title":"Stage All Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllTracked","title":"Stage All Tracked Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllUntracked","title":"Stage All Untracked Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllMerge","title":"Stage All Merge Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageSelectedRanges","title":"Stage Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.diff.stageHunk","title":"Stage Block","category":"Git","icon":"$(plus)"},{"command":"git.diff.stageSelection","title":"Stage Selection","category":"Git","icon":"$(plus)"},{"command":"git.revertSelectedRanges","title":"Revert Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.stageChange","title":"Stage Change","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageFile","title":"Stage Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.revertChange","title":"Revert Change","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.unstage","title":"Unstage Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageAll","title":"Unstage All Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageSelectedRanges","title":"Unstage Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.unstageChange","title":"Unstage Change","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageFile","title":"Unstage Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.clean","title":"Discard Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAll","title":"Discard All Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAllTracked","title":"Discard All Tracked Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAllUntracked","title":"Discard All Untracked Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.rename","title":"Rename","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.delete","title":"Delete","category":"Git","icon":"$(trash)","enablement":"!operationInProgress"},{"command":"git.commit","title":"Commit","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitAmend","title":"Commit (Amend)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitSigned","title":"Commit (Signed Off)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitStaged","title":"Commit Staged","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitEmpty","title":"Commit Empty","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedSigned","title":"Commit Staged (Signed Off)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedAmend","title":"Commit Staged (Amend)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAll","title":"Commit All","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllSigned","title":"Commit All (Signed Off)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllAmend","title":"Commit All (Amend)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitNoVerify","title":"Commit (No Verify)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitStagedNoVerify","title":"Commit Staged (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitEmptyNoVerify","title":"Commit Empty (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedSignedNoVerify","title":"Commit Staged (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAmendNoVerify","title":"Commit (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitSignedNoVerify","title":"Commit (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedAmendNoVerify","title":"Commit Staged (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllNoVerify","title":"Commit All (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllSignedNoVerify","title":"Commit All (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllAmendNoVerify","title":"Commit All (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitMessageAccept","title":"Commit","category":"Git"},{"command":"git.commitMessageDiscard","title":"Cancel","icon":"$(close)","category":"Git"},{"command":"git.restoreCommitTemplate","title":"Restore Commit Template","category":"Git","enablement":"!operationInProgress"},{"command":"git.undoCommit","title":"Undo Last Commit","category":"Git","enablement":"!operationInProgress"},{"command":"git.checkout","title":"Checkout to...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.checkout","title":"Checkout","category":"Git","enablement":"!operationInProgress"},{"command":"git.checkoutDetached","title":"Checkout to (Detached)...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.checkoutDetached","title":"Checkout (Detached)","category":"Git","enablement":"!operationInProgress"},{"command":"git.branch","title":"Create Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.branchFrom","title":"Create Branch From...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteBranch","title":"Delete Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.deleteBranch","title":"Delete Branch","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteRemoteBranch","title":"Delete Remote Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.renameBranch","title":"Rename Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.merge","title":"Merge...","category":"Git","enablement":"!operationInProgress"},{"command":"git.mergeAbort","title":"Abort Merge","category":"Git","enablement":"gitMergeInProgress"},{"command":"git.rebase","title":"Rebase Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.createTag","title":"Create Tag...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteTag","title":"Delete Tag...","category":"Git","enablement":"!operationInProgress"},{"command":"git.migrateWorktreeChanges","title":"Migrate Worktree Changes...","category":"Git","enablement":"!operationInProgress"},{"command":"git.createWorktree","title":"Create Worktree...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteWorktree","title":"Delete Worktree...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteWorktree2","title":"Delete Worktree","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.deleteTag","title":"Delete Tag","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteRemoteTag","title":"Delete Remote Tag...","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetch","title":"Fetch","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchPrune","title":"Fetch (Prune)","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchAll","title":"Fetch From All Remotes","icon":"$(git-fetch)","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchRef","title":"Fetch","icon":"$(git-fetch)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pull","title":"Pull","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullRebase","title":"Pull (Rebase)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullFrom","title":"Pull from...","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullRef","title":"Pull","icon":"$(repo-pull)","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefInFilter && scmCurrentHistoryItemRefHasRemote"},{"command":"git.push","title":"Push","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushForce","title":"Push (Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushTo","title":"Push to...","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushToForce","title":"Push to... (Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushTags","title":"Push Tags","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushWithTags","title":"Push (Follow Tags)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushWithTagsForce","title":"Push (Follow Tags, Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushRef","title":"Push","icon":"$(repo-push)","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefInFilter && scmCurrentHistoryItemRefHasRemote"},{"command":"git.cherryPick","title":"Cherry Pick...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.cherryPick","title":"Cherry Pick","category":"Git","enablement":"!operationInProgress"},{"command":"git.cherryPickAbort","title":"Abort Cherry Pick","category":"Git","enablement":"!operationInProgress"},{"command":"git.addRemote","title":"Add Remote...","category":"Git","enablement":"!operationInProgress"},{"command":"git.removeRemote","title":"Remove Remote","category":"Git","enablement":"!operationInProgress"},{"command":"git.sync","title":"Sync","category":"Git","enablement":"!operationInProgress"},{"command":"git.syncRebase","title":"Sync (Rebase)","category":"Git","enablement":"!operationInProgress"},{"command":"git.publish","title":"Publish Branch...","category":"Git","icon":"$(cloud-upload)","enablement":"!operationInProgress"},{"command":"git.showOutput","title":"Show Git Output","category":"Git"},{"command":"git.ignore","title":"Add to .gitignore","category":"Git","enablement":"!operationInProgress"},{"command":"git.revealInExplorer","title":"Reveal in Explorer View","category":"Git"},{"command":"git.revealFileInOS.linux","title":"Open Containing Folder","category":"Git"},{"command":"git.revealFileInOS.mac","title":"Reveal in Finder","category":"Git"},{"command":"git.revealFileInOS.windows","title":"Reveal in File Explorer","category":"Git"},{"command":"git.stashIncludeUntracked","title":"Stash (Include Untracked)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stash","title":"Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashStaged","title":"Stash Staged","category":"Git","enablement":"!operationInProgress && gitVersion2.35"},{"command":"git.stashPop","title":"Pop Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashPopLatest","title":"Pop Latest Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashPopEditor","title":"Pop Stash","icon":"$(git-stash-pop)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApply","title":"Apply Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApplyLatest","title":"Apply Latest Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApplyEditor","title":"Apply Stash","icon":"$(git-stash-apply)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDrop","title":"Drop Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDropAll","title":"Drop All Stashes...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDropEditor","title":"Drop Stash","icon":"$(trash)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashView","title":"View Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.timeline.openDiff","title":"Open Changes","icon":"$(compare-changes)","category":"Git"},{"command":"git.timeline.copyCommitId","title":"Copy Commit Hash","category":"Git"},{"command":"git.timeline.copyCommitMessage","title":"Copy Commit Message","category":"Git"},{"command":"git.timeline.selectForCompare","title":"Select for Compare","category":"Git"},{"command":"git.timeline.compareWithSelected","title":"Compare with Selected","category":"Git"},{"command":"git.timeline.viewCommit","title":"Open Commit","icon":"$(diff-multiple)","category":"Git"},{"command":"git.rebaseAbort","title":"Abort Rebase","category":"Git","enablement":"gitRebaseInProgress"},{"command":"git.closeAllDiffEditors","title":"Close All Diff Editors","category":"Git","enablement":"!operationInProgress"},{"command":"git.closeAllUnmodifiedEditors","title":"Close All Unmodified Editors","category":"Git","enablement":"!operationInProgress"},{"command":"git.api.getRepositories","title":"Get Repositories","category":"Git API"},{"command":"git.api.getRepositoryState","title":"Get Repository State","category":"Git API"},{"command":"git.api.getRemoteSources","title":"Get Remote Sources","category":"Git API"},{"command":"git.acceptMerge","title":"Complete Merge","category":"Git","enablement":"isMergeEditor && mergeEditorResultUri in git.mergeChanges"},{"command":"git.openMergeEditor","title":"Resolve in Merge Editor","category":"Git"},{"command":"git.runGitMerge","title":"Compute Conflicts With Git","category":"Git","enablement":"isMergeEditor"},{"command":"git.runGitMergeDiff3","title":"Compute Conflicts With Git (Diff3)","category":"Git","enablement":"isMergeEditor"},{"command":"git.manageUnsafeRepositories","title":"Manage Unsafe Repositories","category":"Git"},{"command":"git.openRepositoriesInParentFolders","title":"Open Repositories In Parent Folders","category":"Git"},{"command":"git.viewChanges","title":"Open Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewStagedChanges","title":"Open Staged Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewUntrackedChanges","title":"Open Untracked Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewCommit","title":"Open Commit","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.copyCommitId","title":"Copy Commit Hash","category":"Git"},{"command":"git.copyCommitMessage","title":"Copy Commit Message","category":"Git"},{"command":"git.blame.toggleEditorDecoration","title":"Toggle Git Blame Editor Decoration","category":"Git"},{"command":"git.blame.toggleStatusBarItem","title":"Toggle Git Blame Status Bar Item","category":"Git"},{"command":"git.graph.compareRef","title":"Compare with...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.compareWithRemote","title":"Compare with Remote","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefHasRemote"},{"command":"git.graph.compareWithMergeBase","title":"Compare with Merge Base","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefHasBase"},{"command":"git.repositories.checkout","title":"Checkout","icon":"$(target)","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.checkoutDetached","title":"Checkout (Detached)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.compareRef","title":"Compare with...","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createBranch","title":"Create Branch...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createTag","title":"Create Tag...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.merge","title":"Merge","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.rebase","title":"Rebase","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.deleteBranch","title":"Delete","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.deleteTag","title":"Delete","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.createFrom","title":"Create from...","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashView","title":"View Stash","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashApply","title":"Apply Stash","icon":"$(git-stash-apply)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashPop","title":"Pop Stash","icon":"$(git-stash-pop)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashDrop","title":"Drop Stash","icon":"$(trash)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createWorktree","title":"Create Worktree...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.openWorktree","title":"Open","icon":"$(folder-opened)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.openWorktreeInNewWindow","title":"Open in New Window","icon":"$(folder-opened)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.deleteWorktree","title":"Delete","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.worktreeCopyBranchName","title":"Copy Branch Name","category":"Git"},{"command":"git.repositories.worktreeCopyCommitHash","title":"Copy Commit Hash","category":"Git"},{"command":"git.repositories.worktreeCopyPath","title":"Copy Worktree Path","category":"Git"},{"command":"git.repositories.copyCommitHash","title":"Copy Commit Hash","category":"Git"},{"command":"git.repositories.copyBranchName","title":"Copy Branch Name","category":"Git"},{"command":"git.repositories.copyTagName","title":"Copy Tag Name","category":"Git"},{"command":"git.repositories.copyStashName","title":"Copy Stash Name","category":"Git"},{"command":"git.repositories.stashCopyBranchName","title":"Copy Branch Name","category":"Git"}],"continueEditSession":[{"command":"git.continueInLocalClone","qualifiedName":"Continue Working in New Local Clone","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && remoteName","remoteGroup":"remote_42_git_0_local@0"}],"keybindings":[{"command":"git.stageSelectedRanges","key":"ctrl+k ctrl+alt+s","mac":"cmd+k cmd+alt+s","when":"editorTextFocus && resourceScheme == file"},{"command":"git.unstageSelectedRanges","key":"ctrl+k ctrl+n","mac":"cmd+k cmd+n","when":"editorTextFocus && isInDiffEditor && isInDiffRightEditor && resourceScheme == git"},{"command":"git.revertSelectedRanges","key":"ctrl+k ctrl+r","mac":"cmd+k cmd+r","when":"editorTextFocus && resourceScheme == file"}],"menus":{"commandPalette":[{"command":"git.continueInLocalClone","when":"false"},{"command":"git.clone","when":"config.git.enabled && !git.missing"},{"command":"git.cloneRecursive","when":"config.git.enabled && !git.missing"},{"command":"git.init","when":"config.git.enabled && !git.missing && remoteName != 'codespaces'"},{"command":"git.openRepository","when":"config.git.enabled && !git.missing"},{"command":"git.close","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.closeOtherRepositories","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.openWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.openWorktreeInNewWindow","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.refresh","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.openFile","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceHasChanges"},{"command":"git.openHEADFile","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceHasChanges"},{"command":"git.openChange","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stage","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllTracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllMerge","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.stageChange","when":"false"},{"command":"git.revertSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.revertChange","when":"false"},{"command":"git.openFile2","when":"false"},{"command":"git.unstage","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.unstageAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.unstageSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == git"},{"command":"git.unstageChange","when":"false"},{"command":"git.clean","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAllTracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAllUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.rename","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceRepository"},{"command":"git.delete","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.commit","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStaged","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitEmpty","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAllSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAllAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.rebaseAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitRebaseInProgress"},{"command":"git.commitNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitEmptyNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.restoreCommitTemplate","when":"false"},{"command":"git.commitMessageAccept","when":"false"},{"command":"git.commitMessageDiscard","when":"false"},{"command":"git.revealInExplorer","when":"false"},{"command":"git.revealFileInOS.linux","when":"false"},{"command":"git.revealFileInOS.mac","when":"false"},{"command":"git.revealFileInOS.windows","when":"false"},{"command":"git.undoCommit","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.checkout","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.branch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.branchFrom","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteRemoteBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.renameBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cherryPick","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cherryPickAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitCherryPickInProgress"},{"command":"git.pull","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pullFrom","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pullRebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.merge","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.mergeAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitMergeInProgress"},{"command":"git.rebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.createTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.migrateWorktreeChanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.createWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.openWorktree","when":"false"},{"command":"git.openWorktreeInNewWindow","when":"false"},{"command":"git.deleteWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteWorktree2","when":"false"},{"command":"git.deleteRemoteTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetchPrune","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetchAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.push","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushTo","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushToForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushWithTags","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushWithTagsForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushTags","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.addRemote","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.removeRemote","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.sync","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.syncRebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.publish","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.showOutput","when":"config.git.enabled"},{"command":"git.ignore","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceRepository"},{"command":"git.stashIncludeUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stash","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashStaged","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitVersion2.35"},{"command":"git.stashPop","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashPopLatest","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashPopEditor","when":"false"},{"command":"git.stashApply","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashApplyLatest","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashApplyEditor","when":"false"},{"command":"git.stashDrop","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashDropAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashDropEditor","when":"false"},{"command":"git.timeline.openDiff","when":"false"},{"command":"git.timeline.copyCommitId","when":"false"},{"command":"git.timeline.copyCommitMessage","when":"false"},{"command":"git.timeline.selectForCompare","when":"false"},{"command":"git.timeline.compareWithSelected","when":"false"},{"command":"git.timeline.viewCommit","when":"false"},{"command":"git.closeAllDiffEditors","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.api.getRepositories","when":"false"},{"command":"git.api.getRepositoryState","when":"false"},{"command":"git.api.getRemoteSources","when":"false"},{"command":"git.openMergeEditor","when":"false"},{"command":"git.manageUnsafeRepositories","when":"config.git.enabled && !git.missing && git.unsafeRepositoryCount != 0"},{"command":"git.openRepositoriesInParentFolders","when":"config.git.enabled && !git.missing && git.parentRepositoryCount != 0"},{"command":"git.stashView","when":"config.git.enabled && !git.missing"},{"command":"git.viewChanges","when":"config.git.enabled && !git.missing"},{"command":"git.viewStagedChanges","when":"config.git.enabled && !git.missing"},{"command":"git.viewUntrackedChanges","when":"config.git.enabled && !git.missing && config.git.untrackedChanges == separate"},{"command":"git.viewCommit","when":"false"},{"command":"git.stageFile","when":"false"},{"command":"git.unstageFile","when":"false"},{"command":"git.fetchRef","when":"false"},{"command":"git.pullRef","when":"false"},{"command":"git.pushRef","when":"false"},{"command":"git.copyCommitId","when":"false"},{"command":"git.copyCommitMessage","when":"false"},{"command":"git.graph.checkout","when":"false"},{"command":"git.graph.checkoutDetached","when":"false"},{"command":"git.graph.deleteBranch","when":"false"},{"command":"git.graph.compareRef","when":"false"},{"command":"git.graph.deleteTag","when":"false"},{"command":"git.graph.cherryPick","when":"false"},{"command":"git.graph.compareWithMergeBase","when":"false"},{"command":"git.graph.compareWithRemote","when":"false"},{"command":"git.diff.stageHunk","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"},{"command":"git.diff.stageSelection","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"},{"command":"git.repositories.checkout","when":"false"},{"command":"git.repositories.checkoutDetached","when":"false"},{"command":"git.repositories.compareRef","when":"false"},{"command":"git.repositories.createBranch","when":"false"},{"command":"git.repositories.createTag","when":"false"},{"command":"git.repositories.merge","when":"false"},{"command":"git.repositories.rebase","when":"false"},{"command":"git.repositories.deleteBranch","when":"false"},{"command":"git.repositories.deleteTag","when":"false"},{"command":"git.repositories.createFrom","when":"false"},{"command":"git.repositories.stashView","when":"false"},{"command":"git.repositories.stashApply","when":"false"},{"command":"git.repositories.stashPop","when":"false"},{"command":"git.repositories.stashDrop","when":"false"},{"command":"git.repositories.createWorktree","when":"false"},{"command":"git.repositories.openWorktree","when":"false"},{"command":"git.repositories.openWorktreeInNewWindow","when":"false"},{"command":"git.repositories.deleteWorktree","when":"false"},{"command":"git.repositories.worktreeCopyBranchName","when":"false"},{"command":"git.repositories.worktreeCopyCommitHash","when":"false"},{"command":"git.repositories.worktreeCopyPath","when":"false"},{"command":"git.repositories.copyCommitHash","when":"false"},{"command":"git.repositories.copyBranchName","when":"false"},{"command":"git.repositories.copyTagName","when":"false"},{"command":"git.repositories.copyStashName","when":"false"},{"command":"git.repositories.stashCopyBranchName","when":"false"}],"scm/title":[{"command":"git.commit","group":"navigation","when":"scmProvider == git"},{"command":"git.refresh","group":"navigation","when":"scmProvider == git"},{"command":"git.pull","group":"1_header@1","when":"scmProvider == git"},{"command":"git.push","group":"1_header@2","when":"scmProvider == git"},{"command":"git.clone","group":"1_header@3","when":"scmProvider == git"},{"command":"git.checkout","group":"1_header@4","when":"scmProvider == git"},{"command":"git.fetch","group":"1_header@5","when":"scmProvider == git"},{"submenu":"git.commit","group":"2_main@1","when":"scmProvider == git"},{"submenu":"git.changes","group":"2_main@2","when":"scmProvider == git"},{"submenu":"git.pullpush","group":"2_main@3","when":"scmProvider == git"},{"submenu":"git.branch","group":"2_main@4","when":"scmProvider == git"},{"submenu":"git.remotes","group":"2_main@5","when":"scmProvider == git"},{"submenu":"git.stash","group":"2_main@6","when":"scmProvider == git"},{"submenu":"git.tags","group":"2_main@7","when":"scmProvider == git"},{"submenu":"git.worktrees","group":"2_main@8","when":"scmProvider == git"},{"command":"git.showOutput","group":"3_footer","when":"scmProvider == git"}],"scm/repositories/title":[{"command":"git.reopenClosedRepositories","group":"navigation@1","when":"git.closedRepositoryCount > 0"}],"scm/repository":[{"command":"git.pull","group":"1_header@1","when":"scmProvider == git"},{"command":"git.push","group":"1_header@2","when":"scmProvider == git"},{"command":"git.clone","group":"1_header@3","when":"scmProvider == git"},{"command":"git.checkout","group":"1_header@4","when":"scmProvider == git"},{"command":"git.fetch","group":"1_header@5","when":"scmProvider == git"},{"submenu":"git.commit","group":"2_main@1","when":"scmProvider == git"},{"submenu":"git.changes","group":"2_main@2","when":"scmProvider == git"},{"submenu":"git.pullpush","group":"2_main@3","when":"scmProvider == git"},{"submenu":"git.branch","group":"2_main@4","when":"scmProvider == git"},{"submenu":"git.remotes","group":"2_main@5","when":"scmProvider == git"},{"submenu":"git.stash","group":"2_main@6","when":"scmProvider == git"},{"submenu":"git.tags","group":"2_main@7","when":"scmProvider == git"},{"submenu":"git.worktrees","group":"2_main@8","when":"scmProvider == git"},{"command":"git.showOutput","group":"3_footer","when":"scmProvider == git"}],"scm/sourceControl":[{"command":"git.close","group":"navigation@1","when":"scmProvider == git"},{"command":"git.closeOtherRepositories","group":"navigation@2","when":"scmProvider == git && gitOpenRepositoryCount > 1"},{"command":"git.openWorktree","group":"1_worktree@1","when":"scmProvider == git && scmProviderContext == worktree"},{"command":"git.openWorktreeInNewWindow","group":"1_worktree@2","when":"scmProvider == git && scmProviderContext == worktree"},{"command":"git.deleteWorktree2","group":"2_worktree@1","when":"scmProvider == git && scmProviderContext == worktree"}],"scm/artifactGroup/context":[{"command":"git.repositories.createBranch","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == branches"},{"command":"git.repositories.createTag","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == tags"},{"submenu":"git.repositories.stash","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == stashes"},{"command":"git.repositories.createWorktree","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == worktrees"}],"scm/artifact/context":[{"command":"git.repositories.checkout","group":"inline@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.stashApply","alt":"git.repositories.stashPop","group":"inline@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashView","group":"1_view@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashApply","group":"2_apply@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashPop","group":"2_apply@2","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashDrop","group":"3_drop@3","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashCopyBranchName","group":"4_copy@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.copyStashName","group":"4_copy@2","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.checkout","group":"1_checkout@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.checkoutDetached","group":"1_checkout@2","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.merge","group":"2_modify@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.rebase","group":"2_modify@2","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.createFrom","group":"3_modify@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.deleteBranch","group":"3_modify@2","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.deleteTag","group":"3_modify@1","when":"scmProvider == git && scmArtifactGroupId == tags"},{"command":"git.repositories.compareRef","group":"4_compare@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.copyCommitHash","group":"5_copy@2","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.copyBranchName","group":"5_copy@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.copyTagName","group":"5_copy@2","when":"scmProvider == git && scmArtifactGroupId == tags"},{"command":"git.repositories.openWorktreeInNewWindow","group":"inline@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.openWorktree","group":"1_open@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.openWorktreeInNewWindow","group":"1_open@2","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.deleteWorktree","group":"2_modify@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyCommitHash","group":"3_copy@2","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyBranchName","group":"3_copy@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyPath","group":"3_copy@3","when":"scmProvider == git && scmArtifactGroupId == worktrees"}],"scm/resourceGroup/context":[{"command":"git.stageAllMerge","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.stageAllMerge","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.unstageAll","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstageAll","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.viewStagedChanges","when":"scmProvider == git && scmResourceGroup == index","group":"inline@1"},{"command":"git.viewChanges","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@1"},{"command":"git.cleanAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"1_modification"},{"command":"git.stageAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"1_modification"},{"command":"git.cleanAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"inline@2"},{"command":"git.stageAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"inline@2"},{"command":"git.cleanAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"1_modification"},{"command":"git.stageAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"1_modification"},{"command":"git.cleanAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"inline@2"},{"command":"git.stageAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"inline@2"},{"command":"git.cleanAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.stageAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.viewUntrackedChanges","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@1"},{"command":"git.cleanAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.stageAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"}],"scm/resourceFolder/context":[{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification@3"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification@3"}],"scm/resourceState/context":[{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == merge","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == merge","group":"2_view@2"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == merge && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == merge && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == index","group":"2_view@2"},{"command":"git.compareWithWorkspace","when":"scmProvider == git && scmResourceGroup == index && scmResourceState == worktree","group":"worktree_diff"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == index && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == index && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.compareWithWorkspace","when":"scmProvider == git && scmResourceGroup == workingTree && scmResourceState == worktree","group":"worktree_diff"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification@3"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == workingTree","group":"2_view@2"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked && !gitFreshRepository","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked && !gitFreshRepository","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == untracked && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == untracked && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification@3"}],"scm/history/title":[{"command":"git.fetchAll","group":"navigation@900","when":"scmProvider == git"},{"command":"git.pullRef","group":"navigation@901","when":"scmProvider == git"},{"command":"git.pushRef","when":"scmProvider == git && scmCurrentHistoryItemRefHasRemote","group":"navigation@902"},{"command":"git.publish","when":"scmProvider == git && !scmCurrentHistoryItemRefHasRemote","group":"navigation@903"}],"scm/historyItem/context":[{"command":"git.graph.checkoutDetached","when":"scmProvider == git","group":"1_checkout@2"},{"command":"git.branch","when":"scmProvider == git","group":"2_branch@2"},{"command":"git.createTag","when":"scmProvider == git","group":"3_tag@1"},{"command":"git.graph.cherryPick","when":"scmProvider == git","group":"4_modify@1"},{"command":"git.graph.compareWithRemote","when":"scmProvider == git","group":"5_compare@1"},{"command":"git.graph.compareWithMergeBase","when":"scmProvider == git","group":"5_compare@2"},{"command":"git.graph.compareRef","when":"scmProvider == git","group":"5_compare@3"},{"command":"git.copyCommitId","when":"scmProvider == git && !listMultiSelection","group":"9_copy@1"},{"command":"git.copyCommitMessage","when":"scmProvider == git && !listMultiSelection","group":"9_copy@2"}],"scm/historyItemRef/context":[{"command":"git.graph.checkout","when":"scmProvider == git","group":"1_checkout@1"},{"command":"git.graph.deleteBranch","when":"scmProvider == git && scmHistoryItemRef =~ /^refs\\/heads\\/|^refs\\/remotes\\//","group":"2_branch@2"},{"command":"git.graph.deleteTag","when":"scmProvider == git && scmHistoryItemRef =~ /^refs\\/tags\\//","group":"3_tag@2"}],"editor/title":[{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme =~ /^git$|^file$/"},{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInNotebookTextDiffEditor && resourceScheme =~ /^git$|^file$/"},{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isInNotebookTextDiffEditor && resourceScheme == git"},{"command":"git.openChange","group":"navigation@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && scmActiveResourceHasChanges && !isSessionsWindow"},{"command":"git.stashApplyEditor","alt":"git.stashPopEditor","group":"navigation@1","when":"config.git.enabled && !git.missing && resourceScheme == git-stash"},{"command":"git.stashDropEditor","group":"navigation@2","when":"config.git.enabled && !git.missing && resourceScheme == git-stash"},{"command":"git.stage","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && git.activeResourceHasUnstagedChanges && !isSessionsWindow"},{"command":"git.unstage","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && git.activeResourceHasStagedChanges && !isSessionsWindow"},{"command":"git.stage","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"},{"command":"git.stageSelectedRanges","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"},{"command":"git.unstage","group":"2_git@3","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git && !isSessionsWindow"},{"command":"git.unstageSelectedRanges","group":"2_git@4","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git && !isSessionsWindow"},{"command":"git.revertSelectedRanges","group":"2_git@5","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"}],"editor/context":[{"command":"git.stageSelectedRanges","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file"},{"command":"git.unstageSelectedRanges","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git"},{"command":"git.revertSelectedRanges","group":"2_git@3","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file"}],"editor/content":[{"command":"git.acceptMerge","when":"isMergeResultEditor && mergeEditorBaseUri =~ /^(git|file):/ && mergeEditorResultUri in git.mergeChanges"},{"command":"git.openMergeEditor","group":"navigation@-10","when":"config.git.enabled && !git.missing && !isInDiffEditor && !isMergeEditor && resource in git.mergeChanges && git.activeResourceHasMergeConflicts"},{"command":"git.commitMessageAccept","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && editorLangId == git-commit"},{"command":"git.commitMessageDiscard","group":"secondary","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && editorLangId == git-commit"}],"multiDiffEditor/resource/title":[{"command":"git.stageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == workingTree"},{"command":"git.stageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == untracked"},{"command":"git.unstageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == index"}],"diffEditor/gutter/hunk":[{"command":"git.diff.stageHunk","group":"primary@10","when":"diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"}],"diffEditor/gutter/selection":[{"command":"git.diff.stageSelection","group":"primary@10","when":"diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"}],"scm/change/title":[{"command":"git.stageChange","when":"config.git.enabled && !git.missing && originalResource =~ /^git\\:.*%22ref%22%3A%22%22%7D$/"},{"command":"git.revertChange","when":"config.git.enabled && !git.missing && originalResource =~ /^git\\:.*%22ref%22%3A%22%22%7D$/"},{"command":"git.unstageChange","when":"false"}],"timeline/item/context":[{"command":"git.timeline.viewCommit","group":"inline","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.openDiff","group":"1_actions@1","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.viewCommit","group":"1_actions@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.compareWithSelected","group":"3_compare@1","when":"config.git.enabled && !git.missing && git.timeline.selectedForCompare && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.selectForCompare","group":"3_compare@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.copyCommitId","group":"5_copy@1","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.copyCommitMessage","group":"5_copy@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"}],"git.commit":[{"command":"git.commit","group":"1_commit@1"},{"command":"git.commitStaged","group":"1_commit@2"},{"command":"git.commitAll","group":"1_commit@3"},{"command":"git.undoCommit","group":"1_commit@4"},{"command":"git.rebaseAbort","group":"1_commit@5"},{"command":"git.commitNoVerify","group":"2_commit_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedNoVerify","group":"2_commit_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllNoVerify","group":"2_commit_noverify@3","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAmend","group":"3_amend@1"},{"command":"git.commitStagedAmend","group":"3_amend@2"},{"command":"git.commitAllAmend","group":"3_amend@3"},{"command":"git.commitAmendNoVerify","group":"4_amend_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedAmendNoVerify","group":"4_amend_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllAmendNoVerify","group":"4_amend_noverify@3","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitSigned","group":"5_signoff@1"},{"command":"git.commitStagedSigned","group":"5_signoff@2"},{"command":"git.commitAllSigned","group":"5_signoff@3"},{"command":"git.commitSignedNoVerify","group":"6_signoff_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedSignedNoVerify","group":"6_signoff_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllSignedNoVerify","group":"6_signoff_noverify@3","when":"config.git.allowNoVerifyCommit"}],"git.changes":[{"command":"git.stageAll","group":"changes@1"},{"command":"git.unstageAll","group":"changes@2"},{"command":"git.cleanAll","group":"changes@3"}],"git.pullpush":[{"command":"git.sync","group":"1_sync@1"},{"command":"git.syncRebase","when":"gitState == idle","group":"1_sync@2"},{"command":"git.pull","group":"2_pull@1"},{"command":"git.pullRebase","group":"2_pull@2"},{"command":"git.pullFrom","group":"2_pull@3"},{"command":"git.push","group":"3_push@1"},{"command":"git.pushForce","when":"config.git.allowForcePush","group":"3_push@2"},{"command":"git.pushTo","group":"3_push@3"},{"command":"git.pushToForce","when":"config.git.allowForcePush","group":"3_push@4"},{"command":"git.fetch","group":"4_fetch@1"},{"command":"git.fetchPrune","group":"4_fetch@2"},{"command":"git.fetchAll","group":"4_fetch@3"}],"git.branch":[{"command":"git.merge","group":"1_merge@1"},{"command":"git.rebase","group":"1_merge@2"},{"command":"git.branch","group":"2_branch@1"},{"command":"git.branchFrom","group":"2_branch@2"},{"command":"git.renameBranch","group":"3_modify@1"},{"command":"git.deleteBranch","group":"3_modify@2"},{"command":"git.deleteRemoteBranch","group":"3_modify@3"},{"command":"git.publish","group":"4_publish@1"}],"git.remotes":[{"command":"git.addRemote","group":"remote@1"},{"command":"git.removeRemote","group":"remote@2"}],"git.stash":[{"command":"git.stash","group":"1_stash@1"},{"command":"git.stashIncludeUntracked","group":"1_stash@2"},{"command":"git.stashStaged","when":"gitVersion2.35","group":"1_stash@3"},{"command":"git.stashApplyLatest","group":"2_apply@1"},{"command":"git.stashApply","group":"2_apply@2"},{"command":"git.stashPopLatest","group":"3_pop@1"},{"command":"git.stashPop","group":"3_pop@2"},{"command":"git.stashDrop","group":"4_drop@1"},{"command":"git.stashDropAll","group":"4_drop@2"},{"command":"git.stashView","group":"5_preview@1"}],"git.repositories.stash":[{"command":"git.stash","group":"1_stash@1"},{"command":"git.stashStaged","when":"gitVersion2.35","group":"2_stash@1"},{"command":"git.stashIncludeUntracked","group":"2_stash@2"}],"git.tags":[{"command":"git.createTag","group":"1_tags@1"},{"command":"git.deleteTag","group":"1_tags@2"},{"command":"git.deleteRemoteTag","group":"1_tags@3"},{"command":"git.pushTags","group":"2_tags@1"}],"git.worktrees":[{"when":"scmProviderContext == worktree","command":"git.openWorktree","group":"openWorktrees@1"},{"when":"scmProviderContext == worktree","command":"git.openWorktreeInNewWindow","group":"openWorktrees@2"},{"when":"scmProviderContext == repository","command":"git.createWorktree","group":"worktrees@1"},{"when":"scmProviderContext == worktree","command":"git.deleteWorktree2","group":"worktrees@2"}]},"submenus":[{"id":"git.commit","label":"Commit"},{"id":"git.changes","label":"Changes"},{"id":"git.pullpush","label":"Pull, Push"},{"id":"git.branch","label":"Branch"},{"id":"git.remotes","label":"Remote"},{"id":"git.stash","label":"Stash"},{"id":"git.tags","label":"Tags"},{"id":"git.worktrees","label":"Worktrees"},{"id":"git.repositories.stash","label":"Stash","icon":"$(plus)"}],"configuration":{"title":"Git","properties":{"git.enabled":{"type":"boolean","scope":"resource","description":"Whether Git is enabled.","default":true,"agentsWindow":{"default":true,"readOnly":true}},"git.path":{"type":["string","null","array"],"markdownDescription":"Path and filename of the git executable, e.g. `C:\\Program Files\\Git\\bin\\git.exe` (Windows). This can also be an array of string values containing multiple paths to look up.","default":null,"scope":"machine"},"git.autoRepositoryDetection":{"type":["boolean","string"],"enum":[true,false,"subFolders","openEditors"],"enumDescriptions":["Scan for both subfolders of the current opened folder and parent folders of open files.","Disable automatic repository scanning.","Scan for subfolders of the currently opened folder.","Scan for parent folders of open files."],"description":"Configures when repositories should be automatically detected.","default":true},"git.autorefresh":{"type":"boolean","description":"Whether auto refreshing is enabled.","default":true,"agentsWindow":{"default":true}},"git.autofetch":{"type":["boolean","string"],"enum":[true,false,"all"],"scope":"resource","markdownDescription":"When set to true, commits will automatically be fetched from the default remote of the current Git repository. Setting to `all` will fetch from all remotes.","default":false,"tags":["usesOnlineServices"],"agentsWindow":{"default":true}},"git.autofetchPeriod":{"type":"number","scope":"resource","markdownDescription":"Duration in seconds between each automatic git fetch, when `#git.autofetch#` is enabled.","default":180},"git.defaultBranchName":{"type":"string","markdownDescription":"The name of the default branch (example: main, trunk, development) when initializing a new Git repository. When set to empty, the default branch name configured in Git will be used. **Note:** Requires Git version `2.28.0` or later.","default":"main","scope":"resource"},"git.branchPrefix":{"type":"string","description":"Prefix used when creating a new branch.","default":"","scope":"resource"},"git.branchProtection":{"type":"array","markdownDescription":"List of protected branches. By default, a prompt is shown before changes are committed to a protected branch. The prompt can be controlled using the `#git.branchProtectionPrompt#` setting.","items":{"type":"string"},"default":[],"scope":"resource"},"git.branchProtectionPrompt":{"type":"string","description":"Controls whether a prompt is being shown before changes are committed to a protected branch.","enum":["alwaysCommit","alwaysCommitToNewBranch","alwaysPrompt"],"enumDescriptions":["Always commit changes to the protected branch.","Always commit changes to a new branch.","Always prompt before changes are committed to a protected branch."],"default":"alwaysPrompt","scope":"resource"},"git.branchValidationRegex":{"type":"string","description":"A regular expression to validate new branch names.","default":""},"git.branchWhitespaceChar":{"type":"string","description":"The character to replace whitespace in new branch names, and to separate segments of a randomly generated branch name.","default":"-"},"git.branchRandomName.enable":{"type":"boolean","description":"Controls whether a random name is generated when creating a new branch.","default":false,"scope":"resource","agentsWindow":{"default":true}},"git.branchRandomName.dictionary":{"type":"array","markdownDescription":"List of dictionaries used for the randomly generated branch name. Each value represents the dictionary used to generate the segment of the branch name. Supported dictionaries: `adjectives`, `animals`, `colors` and `numbers`.","items":{"type":"string","enum":["adjectives","animals","colors","numbers"],"enumDescriptions":["A random adjective","A random animal name","A random color name","A random number between 100 and 999"]},"minItems":1,"maxItems":5,"default":["adjectives","animals"],"scope":"resource"},"git.confirmSync":{"type":"boolean","description":"Confirm before synchronizing Git repositories.","default":true,"agentsWindow":{"default":false,"readOnly":true}},"git.confirmCommittedDelete":{"type":"boolean","description":"Confirm before deleting committed files with Git.","default":true},"git.countBadge":{"type":"string","enum":["all","tracked","off"],"enumDescriptions":["Count all changes.","Count only tracked changes.","Turn off counter."],"description":"Controls the Git count badge.","default":"all","scope":"resource"},"git.checkoutType":{"type":"array","items":{"type":"string","enum":["local","tags","remote"],"enumDescriptions":["Local branches","Tags","Remote branches"]},"uniqueItems":true,"markdownDescription":"Controls what type of Git refs are listed when running `Checkout to...`.","default":["local","remote","tags"]},"git.ignoreLegacyWarning":{"type":"boolean","description":"Ignores the legacy Git warning.","default":false},"git.ignoreMissingGitWarning":{"type":"boolean","description":"Ignores the warning when Git is missing.","default":false},"git.ignoreWindowsGit27Warning":{"type":"boolean","description":"Ignores the warning when Git 2.25 - 2.26 is installed on Windows.","default":false},"git.ignoreLimitWarning":{"type":"boolean","description":"Ignores the warning when there are too many changes in a repository.","default":false},"git.ignoreRebaseWarning":{"type":"boolean","description":"Ignores the warning when it looks like the branch might have been rebased when pulling.","default":false},"git.defaultCloneDirectory":{"type":["string","null"],"default":null,"scope":"machine","description":"The default location to clone a Git repository."},"git.useEditorAsCommitInput":{"type":"boolean","description":"Controls whether a full text editor will be used to author commit messages, whenever no message is provided in the commit input box.","default":true},"git.verboseCommit":{"type":"boolean","scope":"resource","markdownDescription":"Enable verbose output when `#git.useEditorAsCommitInput#` is enabled.","default":false},"git.enableSmartCommit":{"type":"boolean","scope":"resource","description":"Commit all changes when there are no staged changes.","default":false},"git.smartCommitChanges":{"type":"string","enum":["all","tracked"],"enumDescriptions":["Automatically stage all changes.","Automatically stage tracked changes only."],"scope":"resource","description":"Control which changes are automatically staged by Smart Commit.","default":"all"},"git.suggestSmartCommit":{"type":"boolean","scope":"resource","description":"Suggests to enable smart commit (commit all changes when there are no staged changes).","default":true},"git.enableCommitSigning":{"type":"boolean","scope":"resource","description":"Enables commit signing with GPG, X.509, or SSH.","default":false},"git.confirmEmptyCommits":{"type":"boolean","scope":"resource","description":"Always confirm the creation of empty commits for the 'Git: Commit Empty' command.","default":true},"git.decorations.enabled":{"type":"boolean","default":true,"description":"Controls whether Git contributes colors and badges to the Explorer and the Open Editors view."},"git.enableStatusBarSync":{"type":"boolean","default":true,"description":"Controls whether the Git Sync command appears in the status bar.","scope":"resource"},"git.followTagsWhenSync":{"type":"boolean","scope":"resource","default":false,"description":"Push all annotated tags when running the sync command."},"git.replaceTagsWhenPull":{"type":"boolean","scope":"resource","default":false,"description":"Automatically replace the local tags with the remote tags in case of a conflict when running the pull command."},"git.promptToSaveFilesBeforeStash":{"type":"string","enum":["always","staged","never"],"enumDescriptions":["Check for any unsaved files.","Check only for unsaved staged files.","Disable this check."],"scope":"resource","default":"always","description":"Controls whether Git should check for unsaved files before stashing changes."},"git.promptToSaveFilesBeforeCommit":{"type":"string","enum":["always","staged","never"],"enumDescriptions":["Check for any unsaved files.","Check only for unsaved staged files.","Disable this check."],"scope":"resource","default":"always","description":"Controls whether Git should check for unsaved files before committing."},"git.postCommitCommand":{"type":"string","enum":["none","push","sync"],"enumDescriptions":["Don't run any command after a commit.","Run 'git push' after a successful commit.","Run 'git pull' and 'git push' after a successful commit."],"markdownDescription":"Run a git command after a successful commit.","scope":"resource","default":"none","agentsWindow":{"default":"none","readOnly":true}},"git.rememberPostCommitCommand":{"type":"boolean","description":"Remember the last git command that ran after a commit.","scope":"resource","default":false,"agentsWindow":{"default":false,"readOnly":true}},"git.openAfterClone":{"type":"string","enum":["always","alwaysNewWindow","whenNoFolderOpen","prompt"],"enumDescriptions":["Always open in current window.","Always open in a new window.","Only open in current window when no folder is opened.","Always prompt for action."],"default":"prompt","description":"Controls whether to open a repository automatically after cloning."},"git.showInlineOpenFileAction":{"type":"boolean","default":true,"description":"Controls whether to show an inline Open File action in the Git changes view."},"git.showPushSuccessNotification":{"type":"boolean","description":"Controls whether to show a notification when a push is successful.","default":false},"git.inputValidation":{"type":"boolean","default":false,"description":"Controls whether to show commit message input validation diagnostics."},"git.inputValidationLength":{"type":"number","default":72,"description":"Controls the commit message length threshold for showing a warning."},"git.inputValidationSubjectLength":{"type":["number","null"],"default":50,"markdownDescription":"Controls the commit message subject length threshold for showing a warning. Unset it to inherit the value of `#git.inputValidationLength#`."},"git.detectSubmodules":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to automatically detect Git submodules."},"git.detectSubmodulesLimit":{"type":"number","scope":"resource","default":10,"description":"Controls the limit of Git submodules detected."},"git.detectWorktrees":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether to automatically detect Git worktrees.","agentsWindow":{"default":false}},"git.detectWorktreesLimit":{"type":"number","scope":"resource","default":50,"description":"Controls the limit of Git worktrees detected."},"git.worktreeIncludeFiles":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"Configure [glob patterns](https://aka.ms/vscode-glob-patterns) for files and folders that are included when creating a new worktree. Only files and folders that match the patterns and are listed in `.gitignore` will be copied to the newly created worktree.","scope":"resource","tags":["experimental"]},"git.alwaysShowStagedChangesResourceGroup":{"type":"boolean","scope":"resource","default":false,"description":"Always show the Staged Changes resource group."},"git.alwaysSignOff":{"type":"boolean","scope":"resource","default":false,"description":"Controls the signoff flag for all commits."},"git.addAICoAuthor":{"type":"string","enum":["off","chatAndAgent","all"],"enumDescriptions":["Never add the AI co-author trailer.","Add the AI co-author trailer when code from chat or agent edits is included.","Add the AI co-author trailer when any AI-generated code is included, such as inline completions, chat, or agent edits."],"scope":"resource","default":"off","description":"Controls whether a 'Co-authored-by' trailer is automatically added to the commit message when AI-generated code is included in the commit."},"git.ignoreSubmodules":{"type":"boolean","scope":"resource","default":false,"description":"Ignore modifications to submodules in the file tree."},"git.ignoredRepositories":{"type":"array","items":{"type":"string"},"default":[],"scope":"window","description":"List of Git repositories to ignore."},"git.scanRepositories":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","description":"List of paths to search for Git repositories in."},"git.showProgress":{"type":"boolean","description":"Controls whether Git actions should show progress.","default":true,"scope":"resource","agentsWindow":{"default":false,"readOnly":true}},"git.rebaseWhenSync":{"type":"boolean","scope":"resource","default":false,"description":"Force Git to use rebase when running the sync command."},"git.pullBeforeCheckout":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether a branch that does not have outgoing commits is fast-forwarded before it is checked out."},"git.fetchOnPull":{"type":"boolean","scope":"resource","default":false,"description":"When enabled, fetch all branches when pulling. Otherwise, fetch just the current one."},"git.pruneOnFetch":{"type":"boolean","scope":"resource","default":false,"description":"Prune when fetching."},"git.pullTags":{"type":"boolean","scope":"resource","default":true,"description":"Fetch all tags when pulling."},"git.autoStash":{"type":"boolean","scope":"resource","default":false,"description":"Stash any changes before pulling and restore them after successful pull."},"git.allowForcePush":{"type":"boolean","default":false,"description":"Controls whether force push (with or without lease) is enabled."},"git.useForcePushWithLease":{"type":"boolean","default":true,"description":"Controls whether force pushing uses the safer force-with-lease variant."},"git.useForcePushIfIncludes":{"type":"boolean","default":true,"markdownDescription":"Controls whether force pushing uses the safer force-if-includes variant. Note: This setting requires the `#git.useForcePushWithLease#` setting to be enabled, and Git version `2.30.0` or later."},"git.confirmForcePush":{"type":"boolean","default":true,"description":"Controls whether to ask for confirmation before force-pushing."},"git.allowNoVerifyCommit":{"type":"boolean","default":false,"description":"Controls whether commits without running pre-commit and commit-msg hooks are allowed."},"git.confirmNoVerifyCommit":{"type":"boolean","default":true,"description":"Controls whether to ask for confirmation before committing without verification."},"git.closeDiffOnOperation":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether the diff editor should be automatically closed when changes are stashed, committed, discarded, staged, or unstaged."},"git.openDiffOnClick":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the diff editor should be opened when clicking a change. Otherwise the regular editor will be opened."},"git.supportCancellation":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether a notification comes up when running the Sync action, which allows the user to cancel the operation."},"git.branchSortOrder":{"type":"string","enum":["committerdate","alphabetically"],"default":"committerdate","description":"Controls the sort order for branches."},"git.untrackedChanges":{"type":"string","enum":["mixed","separate","hidden"],"enumDescriptions":["All changes, tracked and untracked, appear together and behave equally.","Untracked changes appear separately in the Source Control view. They are also excluded from several actions.","Untracked changes are hidden and excluded from several actions."],"default":"mixed","description":"Controls how untracked changes behave.","scope":"resource"},"git.requireGitUserConfig":{"type":"boolean","description":"Controls whether to require explicit Git user configuration or allow Git to guess if missing.","default":true,"scope":"resource"},"git.showCommitInput":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to show the commit input in the Git source control panel."},"git.terminalAuthentication":{"type":"boolean","default":true,"description":"Controls whether to enable VS Code to be the authentication handler for Git processes spawned in the Integrated Terminal. Note: Terminals need to be restarted to pick up a change in this setting."},"git.terminalGitEditor":{"type":"boolean","default":false,"description":"Controls whether to enable VS Code to be the Git editor for Git processes spawned in the integrated terminal. Note: Terminals need to be restarted to pick up a change in this setting."},"git.useCommitInputAsStashMessage":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether to use the message from the commit input box as the default stash message."},"git.useIntegratedAskPass":{"type":"boolean","default":true,"description":"Controls whether GIT_ASKPASS should be overwritten to use the integrated version."},"git.githubAuthentication":{"markdownDeprecationMessage":"This setting is now deprecated, please use `#github.gitAuthentication#` instead."},"git.timeline.date":{"type":"string","enum":["committed","authored"],"enumDescriptions":["Use the committed date","Use the authored date"],"default":"committed","description":"Controls which date to use for items in the Timeline view.","scope":"window"},"git.timeline.showAuthor":{"type":"boolean","default":true,"description":"Controls whether to show the commit author in the Timeline view.","scope":"window"},"git.timeline.showUncommitted":{"type":"boolean","default":false,"description":"Controls whether to show uncommitted changes in the Timeline view.","scope":"window"},"git.showActionButton":{"type":"object","additionalProperties":false,"description":"Controls whether an action button is shown in the Source Control view.","properties":{"commit":{"type":"boolean","description":"Show an action button to commit changes when the local branch has modified files ready to be committed."},"publish":{"type":"boolean","description":"Show an action button to publish the local branch when it does not have a tracking remote branch."},"sync":{"type":"boolean","description":"Show an action button to synchronize changes when the local branch is either ahead or behind the remote branch."}},"default":{"commit":true,"publish":true,"sync":true},"scope":"resource"},"git.statusLimit":{"type":"number","scope":"resource","default":10000,"description":"Controls how to limit the number of changes that can be parsed from Git status command. Can be set to 0 for no limit."},"git.repositoryScanIgnoredFolders":{"type":"array","items":{"type":"string"},"default":["node_modules"],"scope":"resource","markdownDescription":"List of folders that are ignored while scanning for Git repositories when `#git.autoRepositoryDetection#` is set to `true` or `subFolders`."},"git.repositoryScanMaxDepth":{"type":"number","scope":"resource","default":1,"markdownDescription":"Controls the depth used when scanning workspace folders for Git repositories when `#git.autoRepositoryDetection#` is set to `true` or `subFolders`. Can be set to `-1` for no limit."},"git.commandsToLog":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"List of git commands (ex: commit, push) that would have their `stdout` logged to the [git output](command:git.showOutput). If the git command has a client-side hook configured, the client-side hook's `stdout` will also be logged to the [git output](command:git.showOutput)."},"git.mergeEditor":{"type":"boolean","default":false,"markdownDescription":"Open the merge editor for files that are currently under conflict.","scope":"window"},"git.optimisticUpdate":{"type":"boolean","default":true,"markdownDescription":"Controls whether to optimistically update the state of the Source Control view after running git commands.","scope":"resource","tags":["experimental"]},"git.openRepositoryInParentFolders":{"type":"string","enum":["always","never","prompt"],"enumDescriptions":["Always open a repository in parent folders of workspaces or open files.","Never open a repository in parent folders of workspaces or open files.","Prompt before opening a repository the parent folders of workspaces or open files."],"default":"prompt","markdownDescription":"Control whether a repository in parent folders of workspaces or open files should be opened.","scope":"resource"},"git.similarityThreshold":{"type":"number","default":50,"minimum":0,"maximum":100,"markdownDescription":"Controls the threshold of the similarity index (the amount of additions/deletions compared to the file's size) for changes in a pair of added/deleted files to be considered a rename. **Note:** Requires Git version `2.18.0` or later.","scope":"resource"},"git.blame.editorDecoration.enabled":{"type":"boolean","default":false,"markdownDescription":"Controls whether to show blame information in the editor using editor decorations."},"git.blame.editorDecoration.template":{"type":"string","default":"${subject}, ${authorName} (${authorDateAgo})","markdownDescription":"Template for the blame information editor decoration. Supported variables:\n\n* `hash`: Commit hash\n\n* `hashShort`: First N characters of the commit hash according to `#git.commitShortHashLength#`\n\n* `subject`: First line of the commit message\n\n* `authorName`: Author name\n\n* `authorEmail`: Author email\n\n* `authorDate`: Author date\n\n* `authorDateAgo`: Time difference between now and the author date\n\n"},"git.blame.editorDecoration.disableHover":{"type":"boolean","default":false,"markdownDescription":"Controls whether to disable the blame information editor decoration hover."},"git.blame.statusBarItem.enabled":{"type":"boolean","default":true,"markdownDescription":"Controls whether to show blame information in the status bar."},"git.blame.statusBarItem.template":{"type":"string","default":"${authorName} (${authorDateAgo})","markdownDescription":"Template for the blame information status bar item. Supported variables:\n\n* `hash`: Commit hash\n\n* `hashShort`: First N characters of the commit hash according to `#git.commitShortHashLength#`\n\n* `subject`: First line of the commit message\n\n* `authorName`: Author name\n\n* `authorEmail`: Author email\n\n* `authorDate`: Author date\n\n* `authorDateAgo`: Time difference between now and the author date\n\n"},"git.blame.ignoreWhitespace":{"type":"boolean","default":false,"markdownDescription":"Controls whether to ignore whitespace changes when computing blame information."},"git.commitShortHashLength":{"type":"number","default":7,"minimum":7,"maximum":40,"markdownDescription":"Controls the length of the commit short hash.","scope":"resource"},"git.diagnosticsCommitHook.enabled":{"type":"boolean","default":false,"markdownDescription":"Controls whether to check for unresolved diagnostics before committing.","scope":"resource"},"git.diagnosticsCommitHook.sources":{"type":"object","additionalProperties":{"type":"string","enum":["error","warning","information","hint","none"]},"default":{"*":"error"},"markdownDescription":"Controls the list of sources (**Item**) and the minimum severity (**Value**) to be considered before committing. **Note:** To ignore diagnostics from a particular source, add the source to the list and set the minimum severity to `none`.","scope":"resource"},"git.discardUntrackedChangesToTrash":{"type":"boolean","default":true,"markdownDescription":"Controls whether discarding untracked changes moves the file(s) to the Recycle Bin (Windows), Trash (macOS, Linux) instead of deleting them permanently. **Note:** This setting has no effect when connected to a remote or when running in Linux as a snap package."},"git.showReferenceDetails":{"type":"boolean","default":true,"markdownDescription":"Controls whether to show the details of the last commit for Git refs in the checkout, branch, and tag pickers."}}},"colors":[{"id":"gitDecoration.addedResourceForeground","description":"Color for added resources.","defaults":{"light":"#587c0c","dark":"#81b88b","highContrast":"#a1e3ad","highContrastLight":"#374e06"}},{"id":"gitDecoration.modifiedResourceForeground","description":"Color for modified resources.","defaults":{"light":"#895503","dark":"#E2C08D","highContrast":"#E2C08D","highContrastLight":"#895503"}},{"id":"gitDecoration.deletedResourceForeground","description":"Color for deleted resources.","defaults":{"light":"#ad0707","dark":"#c74e39","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.renamedResourceForeground","description":"Color for renamed or copied resources.","defaults":{"light":"#007100","dark":"#73C991","highContrast":"#73C991","highContrastLight":"#007100"}},{"id":"gitDecoration.untrackedResourceForeground","description":"Color for untracked resources.","defaults":{"light":"#007100","dark":"#73C991","highContrast":"#73C991","highContrastLight":"#007100"}},{"id":"gitDecoration.ignoredResourceForeground","description":"Color for ignored resources.","defaults":{"light":"#8E8E90","dark":"#8C8C8C","highContrast":"#A7A8A9","highContrastLight":"#8e8e90"}},{"id":"gitDecoration.stageModifiedResourceForeground","description":"Color for modified resources which have been staged.","defaults":{"light":"#895503","dark":"#E2C08D","highContrast":"#E2C08D","highContrastLight":"#895503"}},{"id":"gitDecoration.stageDeletedResourceForeground","description":"Color for deleted resources which have been staged.","defaults":{"light":"#ad0707","dark":"#c74e39","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.conflictingResourceForeground","description":"Color for resources with conflicts.","defaults":{"light":"#ad0707","dark":"#e4676b","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.submoduleResourceForeground","description":"Color for submodule resources.","defaults":{"light":"#1258a7","dark":"#8db9e2","highContrast":"#8db9e2","highContrastLight":"#1258a7"}},{"id":"git.blame.editorDecorationForeground","description":"Color for the blame editor decoration.","defaults":{"dark":"editorInlayHint.foreground","light":"editorInlayHint.foreground","highContrast":"editorInlayHint.foreground","highContrastLight":"editorInlayHint.foreground"}}],"configurationDefaults":{"[git-commit]":{"editor.rulers":[50,72],"editor.wordWrap":"off","workbench.editor.restoreViewState":false},"[git-rebase]":{"workbench.editor.restoreViewState":false}},"viewsWelcome":[{"view":"scm","contents":"If you would like to use Git features, please enable Git in your [settings](command:workbench.action.openSettings?%5B%22git.enabled%22%5D).\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"!config.git.enabled"},{"view":"scm","contents":"Install Git, a popular source control system, to track code changes and collaborate with others. Learn more in our [Git guides](https://aka.ms/vscode-scm).","when":"config.git.enabled && git.missing && remoteName != ''"},{"view":"scm","contents":"[Download Git for macOS](https://git-scm.com/download/mac)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isMac"},{"view":"scm","contents":"[Download Git for Windows](https://git-scm.com/download/win)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isWindows"},{"view":"scm","contents":"Source control depends on Git being installed.\n[Download Git for Linux](https://git-scm.com/download/linux)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isLinux"},{"view":"scm","contents":"In order to use Git features, you can open a folder containing a Git repository or clone from a URL.\n[Open Folder](command:vscode.openFolder)\n[Clone Repository](command:git.cloneRecursive)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && workbenchState == empty && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0","enablement":"git.state == initialized","group":"2_open@1"},{"view":"scm","contents":"The workspace currently open doesn't have any folders containing Git repositories.\n[Add Folder to Workspace](command:workbench.action.addRootFolder)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && workbenchState == workspace && workspaceFolderCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0","enablement":"git.state == initialized","group":"2_open@1"},{"view":"scm","contents":"Scanning folder for Git repositories...","when":"config.git.enabled && !git.missing && workbenchState == folder && workspaceFolderCount != 0 && git.state != initialized"},{"view":"scm","contents":"Scanning workspace for Git repositories...","when":"config.git.enabled && !git.missing && workbenchState == workspace && workspaceFolderCount != 0 && git.state != initialized"},{"view":"scm","contents":"The folder currently open doesn't have a Git repository. You can initialize a repository which will enable source control features powered by Git.\n[Initialize Repository](command:git.init?%5Btrue%5D)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && workbenchState == folder && scm.providerCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0 && remoteName != 'codespaces'","group":"5_scm@1"},{"view":"scm","contents":"The workspace currently open doesn't have any folders containing Git repositories. You can initialize a repository on a folder which will enable source control features powered by Git.\n[Initialize Repository](command:git.init)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && workbenchState == workspace && workspaceFolderCount != 0 && scm.providerCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0 && remoteName != 'codespaces'","group":"5_scm@1"},{"view":"scm","contents":"A Git repository was found in the parent folders of the workspace or the open file(s).\n[Open Repository](command:git.openRepositoriesInParentFolders)\nUse the [git.openRepositoryInParentFolders](command:workbench.action.openSettings?%5B%22git.openRepositoryInParentFolders%22%5D) setting to control whether Git repositories in parent folders of workspaces or open files are opened. To learn more [read our docs](https://aka.ms/vscode-git-repository-in-parent-folders).","when":"config.git.enabled && !git.missing && git.state == initialized && git.parentRepositoryCount == 1"},{"view":"scm","contents":"Git repositories were found in the parent folders of the workspace or the open file(s).\n[Open Repository](command:git.openRepositoriesInParentFolders)\nUse the [git.openRepositoryInParentFolders](command:workbench.action.openSettings?%5B%22git.openRepositoryInParentFolders%22%5D) setting to control whether Git repositories in parent folders of workspace or open files are opened. To learn more [read our docs](https://aka.ms/vscode-git-repository-in-parent-folders).","when":"config.git.enabled && !git.missing && git.state == initialized && git.parentRepositoryCount > 1"},{"view":"scm","contents":"The detected Git repository is potentially unsafe as the folder is owned by someone other than the current user.\n[Manage Unsafe Repositories](command:git.manageUnsafeRepositories)\nTo learn more about unsafe repositories [read our docs](https://aka.ms/vscode-git-unsafe-repository).","when":"config.git.enabled && !git.missing && git.state == initialized && git.unsafeRepositoryCount == 1"},{"view":"scm","contents":"The detected Git repositories are potentially unsafe as the folders are owned by someone other than the current user.\n[Manage Unsafe Repositories](command:git.manageUnsafeRepositories)\nTo learn more about unsafe repositories [read our docs](https://aka.ms/vscode-git-unsafe-repository).","when":"config.git.enabled && !git.missing && git.state == initialized && git.unsafeRepositoryCount > 1"},{"view":"scm","contents":"A Git repository was found that was previously closed.\n[Reopen Closed Repository](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && git.closedRepositoryCount == 1"},{"view":"scm","contents":"Git repositories were found that were previously closed.\n[Reopen Closed Repositories](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && git.closedRepositoryCount > 1"},{"view":"explorer","contents":"You can clone a repository locally.\n[Clone Repository](command:git.clone 'Clone a repository once the Git extension has activated')","when":"config.git.enabled && git.state == initialized && scm.providerCount == 0","group":"5_scm@1"},{"view":"explorer","contents":"To learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && git.state == initialized && scm.providerCount == 0","group":"5_scm@10"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"allowScripts":{"@vscode/fs-copyfile@2.0.0":true},"originalEnabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","canonicalUriProvider","contribEditSessions","contribEditorContentMenu","contribMergeEditorMenus","contribMultiDiffEditorMenus","contribDiffEditorGutterToolBarMenus","contribSourceControlArtifactGroupMenu","contribSourceControlArtifactMenu","contribSourceControlHistoryItemMenu","contribSourceControlHistoryTitleMenu","contribSourceControlInputBoxMenu","contribSourceControlTitleMenu","contribViewsWelcome","editSessionIdentityProvider","envIsConnectionMetered","findFiles2","quickDiffProvider","quickPickSortByLabel","scmActionButton","scmArtifactProvider","scmHistoryProvider","scmMultiDiffEditor","scmProviderOptions","scmSelectedProvider","scmTextDocument","scmValidation","statusBarItemTooltip","taskRunOptions","tabInputMultiDiff","tabInputTextMerge","textEditorDiffInformation","timeline","workspaceTrust"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/git","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.git-base"},"manifest":{"name":"git-base","displayName":"Git Base","description":"Git static contributions and pickers.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Other"],"activationEvents":["*"],"main":"./dist/extension.js","browser":"./dist/browser/extension.js","icon":"resources/icons/git.png","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"commands":[{"command":"git-base.api.getRemoteSources","title":"Get Remote Sources","category":"Git Base API"}],"menus":{"commandPalette":[{"command":"git-base.api.getRemoteSources","when":"false"}]},"languages":[{"id":"git-commit","aliases":["Git Commit Message","git-commit"],"filenames":["COMMIT_EDITMSG","MERGE_MSG"],"configuration":"./languages/git-commit.language-configuration.json"},{"id":"git-rebase","aliases":["Git Rebase Message","git-rebase"],"filenames":["git-rebase-todo"],"filenamePatterns":["**/rebase-merge/done"],"configuration":"./languages/git-rebase.language-configuration.json"},{"id":"ignore","aliases":["Ignore","ignore"],"extensions":[".gitignore_global",".gitignore",".git-blame-ignore-revs"],"configuration":"./languages/ignore.language-configuration.json"}],"grammars":[{"language":"git-commit","scopeName":"text.git-commit","path":"./syntaxes/git-commit.tmLanguage.json"},{"language":"git-rebase","scopeName":"text.git-rebase","path":"./syntaxes/git-rebase.tmLanguage.json"},{"language":"ignore","scopeName":"source.ignore","path":"./syntaxes/ignore.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/git-base","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.github"},"manifest":{"name":"github","displayName":"GitHub","description":"GitHub features for VS Code","publisher":"vscode","license":"MIT","version":"0.0.1","engines":{"vscode":"^1.41.0"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","icon":"images/icon.png","categories":["Other"],"activationEvents":["*"],"extensionDependencies":["vscode.git-base"],"type":"module","main":"./dist/extension.js","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["canonicalUriProvider","chatSessionsProvider","contribEditSessions","contribShareMenu","contribSourceControlHistoryItemMenu","scmHistoryProvider","shareProvider","timeline"],"contributes":{"commands":[{"command":"github.publish","title":"Publish to GitHub"},{"command":"github.copyVscodeDevLink","title":"Copy vscode.dev Link"},{"command":"github.copyVscodeDevLinkFile","title":"Copy vscode.dev Link"},{"command":"github.copyVscodeDevLinkWithoutRange","title":"Copy vscode.dev Link"},{"command":"github.openOnVscodeDev","title":"Open in vscode.dev","icon":"$(globe)"},{"command":"github.graph.openOnGitHub","title":"Open on GitHub","icon":"$(github)"},{"command":"github.timeline.openOnGitHub","title":"Open on GitHub","icon":"$(github)"},{"command":"github.createPullRequest","title":"Create PR","icon":"$(git-pull-request)"},{"command":"github.openPullRequest","title":"Open PR","icon":"$(git-pull-request)"}],"continueEditSession":[{"command":"github.openOnVscodeDev","when":"github.hasGitHubRepo","qualifiedName":"Continue Working in vscode.dev","category":"Remote Repositories","remoteGroup":"virtualfs_44_vscode-vfs_2_web@2"}],"menus":{"commandPalette":[{"command":"github.publish","when":"git-base.gitEnabled && workspaceFolderCount != 0 && remoteName != 'codespaces'"},{"command":"github.createPullRequest","when":"false"},{"command":"github.openPullRequest","when":"false"},{"command":"github.graph.openOnGitHub","when":"false"},{"command":"github.copyVscodeDevLink","when":"false"},{"command":"github.copyVscodeDevLinkFile","when":"false"},{"command":"github.copyVscodeDevLinkWithoutRange","when":"false"},{"command":"github.openOnVscodeDev","when":"false"},{"command":"github.timeline.openOnGitHub","when":"false"}],"file/share":[{"command":"github.copyVscodeDevLinkFile","when":"github.hasGitHubRepo && remoteName != 'codespaces'","group":"0_vscode@0"}],"editor/context/share":[{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'","group":"0_vscode@0"}],"explorer/context/share":[{"command":"github.copyVscodeDevLinkWithoutRange","when":"github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'","group":"0_vscode@0"}],"editor/lineNumber/context":[{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editors.files.textFileEditor && config.editor.lineNumbers == on && remoteName != 'codespaces'","group":"1_cutcopypaste@2"},{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editor.notebook && remoteName != 'codespaces'","group":"1_cutcopypaste@2"}],"editor/title/context/share":[{"command":"github.copyVscodeDevLinkWithoutRange","when":"github.hasGitHubRepo && resourceScheme != untitled && remoteName != 'codespaces'","group":"0_vscode@0"}],"scm/historyItem/context":[{"command":"github.graph.openOnGitHub","when":"github.hasGitHubRepo","group":"0_view@2"}],"timeline/item/context":[{"command":"github.timeline.openOnGitHub","group":"1_actions@3","when":"github.hasGitHubRepo && timelineItem =~ /git:file:commit\\b/"}],"agents/changes/actions/primary":[]},"configuration":[{"title":"GitHub","properties":{"github.branchProtection":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to query repository rules for GitHub repositories"},"github.gitAuthentication":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to enable automatic GitHub authentication for git commands within VS Code."},"github.gitProtocol":{"type":"string","enum":["https","ssh"],"default":"https","description":"Controls which protocol is used to clone a GitHub repository"},"github.showAvatar":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to show the GitHub avatar of the commit author in various hovers (ex: Git blame, Timeline, Source Control Graph, etc.)"}}}],"viewsWelcome":[{"view":"scm","contents":"You can directly publish this folder to a GitHub repository. Once published, you'll have access to source control features powered by Git and GitHub.\n[$(github) Publish to GitHub](command:github.publish)","when":"config.git.enabled && git.state == initialized && workbenchState == folder && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0"},{"view":"scm","contents":"You can directly publish a workspace folder to a GitHub repository. Once published, you'll have access to source control features powered by Git and GitHub.\n[$(github) Publish to GitHub](command:github.publish)","when":"config.git.enabled && git.state == initialized && workbenchState == workspace && workspaceFolderCount != 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0"}],"markdown.previewStyles":["./markdown.css"]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["canonicalUriProvider","chatSessionsProvider","contribEditSessions","contribShareMenu","contribSourceControlHistoryItemMenu","scmHistoryProvider","shareProvider","timeline"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/github","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.github-authentication"},"manifest":{"name":"github-authentication","displayName":"GitHub Authentication","description":"GitHub Authentication Provider","publisher":"vscode","license":"MIT","version":"0.0.2","engines":{"vscode":"^1.41.0"},"icon":"images/icon.png","categories":["Other"],"api":"none","extensionKind":["ui","workspace"],"enabledApiProposals":["authIssuers","authProviderSpecific","authSessionAccountIcon"],"activationEvents":[],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","restrictedConfigurations":["github-enterprise.uri"]}},"contributes":{"authentication":[{"label":"GitHub","id":"github","authorizationServerGlobs":["https://github.com/login/oauth"]},{"label":"GitHub Enterprise Server","id":"github-enterprise","authorizationServerGlobs":["*"]}],"configuration":[{"title":"GHE.com & GitHub Enterprise Server Authentication","properties":{"github-enterprise.uri":{"type":"string","markdownDescription":"The URI for your GHE.com or GitHub Enterprise Server instance.\n\nExamples:\n* GHE.com: `https://octocat.ghe.com`\n* GitHub Enterprise Server: `https://github.octocat.com`\n\n> **Note:** This should _not_ be set to a GitHub.com URI. If your account exists on GitHub.com or is a GitHub Enterprise Managed User, you do not need any additional configuration and can simply log in to GitHub.","pattern":"^(?:$|(https?)://(?!github\\.com).*)"},"github-authentication.useElectronFetch":{"type":"boolean","default":true,"scope":"application","markdownDescription":"When true, uses Electron's built-in fetch function for HTTP requests. When false, uses the Node.js global fetch function. This setting only applies when running in the Electron environment. **Note:** A restart is required for this setting to take effect."},"github-authentication.preferDeviceCodeFlow":{"type":"boolean","default":false,"scope":"application","markdownDescription":"When true, prioritize the device code flow for authentication instead of other available flows. This is useful for environments like WSL where the local server or URL handler flows may not work as expected."}}}]},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","main":"./dist/extension.js","browser":"./dist/browser/extension.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["authIssuers","authProviderSpecific","authSessionAccountIcon"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/github-authentication","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.go"},"manifest":{"name":"go","displayName":"Go Language Basics","description":"Provides syntax highlighting and bracket matching in Go files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin worlpaker/go-syntax syntaxes/go.tmLanguage.json ./syntaxes/go.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"go","extensions":[".go"],"aliases":["Go"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"go","scopeName":"source.go","path":"./syntaxes/go.tmLanguage.json"}],"configurationDefaults":{"[go]":{"editor.insertSpaces":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/go","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.groovy"},"manifest":{"name":"groovy","displayName":"Groovy Language Basics","description":"Provides snippets, syntax highlighting and bracket matching in Groovy files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/groovy.tmbundle Syntaxes/Groovy.tmLanguage ./syntaxes/groovy.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"groovy","aliases":["Groovy","groovy"],"extensions":[".groovy",".gvy",".gradle",".jenkinsfile",".nf"],"filenames":["Jenkinsfile"],"filenamePatterns":["Jenkinsfile*"],"firstLine":"^#!.*\\bgroovy\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"groovy","scopeName":"source.groovy","path":"./syntaxes/groovy.tmLanguage.json"}],"snippets":[{"language":"groovy","path":"./snippets/groovy.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/groovy","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.grunt"},"manifest":{"name":"grunt","publisher":"vscode","description":"Extension to add Grunt capabilities to VS Code.","displayName":"Grunt support for VS Code","version":"10.0.0","private":true,"icon":"images/grunt.png","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:grunt"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"grunt","type":"object","title":"Grunt","properties":{"grunt.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Grunt task detection. Grunt task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"grunt","required":["task"],"properties":{"task":{"type":"string","description":"The Grunt task to customize."},"args":{"type":"array","description":"Command line arguments to pass to the grunt task"},"file":{"type":"string","description":"The Grunt file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/grunt","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.gulp"},"manifest":{"name":"gulp","publisher":"vscode","description":"Extension to add Gulp capabilities to VSCode.","displayName":"Gulp support for VSCode","version":"10.0.0","icon":"images/gulp.png","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:gulp"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"gulp","type":"object","title":"Gulp","properties":{"gulp.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Gulp task detection. Gulp task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"gulp","required":["task"],"properties":{"task":{"type":"string","description":"The Gulp task to customize."},"file":{"type":"string","description":"The Gulp file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/gulp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.handlebars"},"manifest":{"name":"handlebars","displayName":"Handlebars Language Basics","description":"Provides syntax highlighting and bracket matching in Handlebars files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin daaain/Handlebars grammars/Handlebars.json ./syntaxes/Handlebars.tmLanguage.json"},"categories":["Programming Languages"],"extensionKind":["ui","workspace"],"contributes":{"languages":[{"id":"handlebars","extensions":[".handlebars",".hbs",".hjs"],"aliases":["Handlebars","handlebars"],"mimetypes":["text/x-handlebars-template"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"handlebars","scopeName":"text.html.handlebars","path":"./syntaxes/Handlebars.tmLanguage.json"}],"htmlLanguageParticipants":[{"languageId":"handlebars","autoInsert":true}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/handlebars","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[[2,"property `extensionKind` can be defined only if property `main` is also defined."]],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.hlsl"},"manifest":{"name":"hlsl","displayName":"HLSL Language Basics","description":"Provides syntax highlighting and bracket matching in HLSL files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin tgjones/shaders-tmLanguage grammars/hlsl.json ./syntaxes/hlsl.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"hlsl","extensions":[".hlsl",".hlsli",".fx",".fxh",".vsh",".psh",".cginc",".compute"],"aliases":["HLSL","hlsl"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"hlsl","path":"./syntaxes/hlsl.tmLanguage.json","scopeName":"source.hlsl"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/hlsl","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.html"},"manifest":{"name":"html","displayName":"HTML Language Basics","description":"Provides syntax highlighting, bracket matching & snippets in HTML files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"html","extensions":[".html",".htm",".shtml",".xhtml",".xht",".mdoc",".jsp",".asp",".aspx",".jshtm",".volt",".ejs",".rhtml"],"aliases":["HTML","htm","html","xhtml"],"mimetypes":["text/html","text/x-jshtm","text/template","text/ng-template","application/xhtml+xml"],"configuration":"./language-configuration.json"}],"grammars":[{"scopeName":"text.html.basic","path":"./syntaxes/html.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.css":"css","source.js":"javascript","source.python":"python","source.smarty":"smarty"},"tokenTypes":{"meta.tag string.quoted":"other"}},{"language":"html","scopeName":"text.html.derivative","path":"./syntaxes/html-derivative.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.css":"css","source.js":"javascript","source.python":"python","source.smarty":"smarty"},"tokenTypes":{"meta.tag string.quoted":"other"}}],"snippets":[{"language":"html","path":"./snippets/html.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/html","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.html-language-features"},"manifest":{"name":"html-language-features","displayName":"HTML Language Features","description":"Provides rich language support for HTML and Handlebar files","version":"10.0.0","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.77.0"},"icon":"icons/html.png","activationEvents":["onLanguage:html","onLanguage:handlebars"],"enabledApiProposals":["extensionsAny"],"main":"./client/dist/node/htmlClientMain","browser":"./client/dist/browser/htmlClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"categories":["Programming Languages"],"contributes":{"configuration":{"id":"html","order":20,"type":"object","title":"HTML","properties":{"html.completion.attributeDefaultValue":{"type":"string","scope":"resource","enum":["doublequotes","singlequotes","empty"],"enumDescriptions":["Attribute value is set to \"\".","Attribute value is set to ''.","Attribute value is not set."],"default":"doublequotes","markdownDescription":"Controls the default value for attributes when completion is accepted."},"html.customData":{"type":"array","markdownDescription":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-html-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its HTML support for the custom HTML tags, attributes and attribute values you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","default":[],"items":{"type":"string"},"scope":"resource"},"html.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default HTML formatter."},"html.format.wrapLineLength":{"type":"integer","scope":"resource","default":120,"description":"Maximum amount of characters per line (0 = disable)."},"html.format.unformatted":{"type":["string","null"],"scope":"resource","default":"wbr","markdownDescription":"List of tags, comma separated, that shouldn't be reformatted. `null` defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content."},"html.format.contentUnformatted":{"type":["string","null"],"scope":"resource","default":"pre,code,textarea","markdownDescription":"List of tags, comma separated, where the content shouldn't be reformatted. `null` defaults to the `pre` tag."},"html.format.indentInnerHtml":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Indent `` and `` sections."},"html.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text."},"html.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk. Use `null` for unlimited."},"html.format.indentHandlebars":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Format and indent `{{#foo}}` and `{{/foo}}`."},"html.format.extraLiners":{"type":["string","null"],"scope":"resource","default":"head, body, /html","markdownDescription":"List of tags, comma separated, that should have an extra newline before them. `null` defaults to `\"head, body, /html\"`."},"html.format.wrapAttributes":{"type":"string","scope":"resource","default":"auto","enum":["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"],"enumDescriptions":["Wrap attributes only when line length is exceeded.","Wrap each attribute except first.","Wrap each attribute except first and keep aligned.","Wrap each attribute.","Wrap when line length is exceeded, align attributes vertically.","Preserve wrapping of attributes.","Preserve wrapping of attributes but align."],"description":"Wrap attributes."},"html.format.wrapAttributesIndentSize":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Indent wrapped attributes to after N characters. Use `null` to use the default indent size. Ignored if `#html.format.wrapAttributes#` is set to `aligned`."},"html.format.templating":{"type":"boolean","scope":"resource","default":false,"description":"Honor django, erb, handlebars and php templating language tags."},"html.format.unformattedContentDelimiter":{"type":"string","scope":"resource","default":"","markdownDescription":"Keep text content together between this string."},"html.suggest.html5":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support suggests HTML5 tags, properties and values."},"html.suggest.hideEndTagSuggestions":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether the built-in HTML language support suggests closing tags. When disabled, end tag completions like `` will not be shown."},"html.validate.scripts":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support validates embedded scripts."},"html.validate.styles":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support validates embedded styles."},"html.autoCreateQuotes":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Enable/disable auto creation of quotes for HTML attribute assignment. The type of quotes can be configured by `#html.completion.attributeDefaultValue#`."},"html.autoClosingTags":{"type":"boolean","scope":"resource","default":true,"description":"Enable/disable autoclosing of HTML tags."},"html.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show tag and attribute documentation in hover."},"html.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in hover."},"html.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the HTML language server."}}},"configurationDefaults":{"[html]":{"editor.suggest.insertMode":"replace"},"[handlebars]":{"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.html-data.json","url":"https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json"},{"fileMatch":"package.json","url":"./schemas/package.schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["extensionsAny"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/html-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ini"},"manifest":{"name":"ini","displayName":"Ini Language Basics","description":"Provides syntax highlighting and bracket matching in Ini files.","version":"10.0.0","private":true,"publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/ini.tmbundle Syntaxes/Ini.plist ./syntaxes/ini.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"ini","extensions":[".ini"],"aliases":["Ini","ini"],"configuration":"./ini.language-configuration.json"},{"id":"properties","extensions":[".conf",".properties",".cfg",".directory",".gitattributes",".gitconfig",".gitmodules",".editorconfig",".repo"],"filenames":["gitconfig"],"filenamePatterns":["**/.config/git/config","**/.git/config"],"aliases":["Properties","properties"],"configuration":"./properties.language-configuration.json"}],"grammars":[{"language":"ini","scopeName":"source.ini","path":"./syntaxes/ini.tmLanguage.json"},{"language":"properties","scopeName":"source.ini","path":"./syntaxes/ini.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/ini","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ipynb"},"manifest":{"name":"ipynb","displayName":".ipynb Support","description":"Provides basic support for opening and reading Jupyter's .ipynb notebook files","publisher":"vscode","version":"10.0.0","license":"MIT","icon":"media/icon.png","engines":{"vscode":"^1.57.0"},"enabledApiProposals":["diffContentOptions"],"activationEvents":["onNotebook:jupyter-notebook","onNotebookSerializer:interactive","onNotebookSerializer:repl"],"extensionKind":["workspace","ui"],"main":"./dist/ipynbMain.node.js","browser":"./dist/browser/ipynbMain.browser.js","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":[{"properties":{"ipynb.pasteImagesAsAttachments.enabled":{"type":"boolean","scope":"resource","markdownDescription":"Enable/disable pasting of images into Markdown cells in ipynb notebook files. Pasted images are inserted as attachments to the cell.","default":true},"ipynb.experimental.serialization":{"type":"boolean","scope":"resource","markdownDescription":"Experimental feature to serialize the Jupyter notebook in a worker thread.","default":true,"tags":["experimental"]}}}],"commands":[{"command":"ipynb.newUntitledIpynb","title":"New Jupyter Notebook","shortTitle":"Jupyter Notebook","category":"Create"},{"command":"ipynb.openIpynbInNotebookEditor","title":"Open IPYNB File In Notebook Editor"},{"command":"ipynb.cleanInvalidImageAttachment","title":"Clean Invalid Image Attachment Reference"},{"command":"notebook.cellOutput.copy","title":"Copy Cell Output","category":"Notebook"},{"command":"notebook.cellOutput.addToChat","title":"Add Cell Output to Chat","category":"Notebook","enablement":"chatIsEnabled"},{"command":"notebook.cellOutput.openInTextEditor","title":"Open Cell Output in Text Editor","category":"Notebook"}],"notebooks":[{"type":"jupyter-notebook","displayName":"Jupyter Notebook","selector":[{"filenamePattern":"*.ipynb"}],"priority":"default"}],"notebookRenderer":[{"id":"vscode.markdown-it-cell-attachment-renderer","displayName":"Markdown-It ipynb Cell Attachment renderer","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/cellAttachmentRenderer.js"}}],"menus":{"file/newFile":[{"command":"ipynb.newUntitledIpynb","group":"notebook"}],"commandPalette":[{"command":"ipynb.newUntitledIpynb"},{"command":"ipynb.openIpynbInNotebookEditor","when":"false"},{"command":"ipynb.cleanInvalidImageAttachment","when":"false"},{"command":"notebook.cellOutput.copy","when":"notebookCellHasOutputs"},{"command":"notebook.cellOutput.openInTextEditor","when":"false"}],"webview/context":[{"command":"notebook.cellOutput.copy","when":"webviewId == 'notebook.output' && webviewSection == 'image'","group":"context@1"},{"command":"notebook.cellOutput.copy","when":"webviewId == 'notebook.output' && webviewSection == 'text'"},{"command":"notebook.cellOutput.addToChat","when":"webviewId == 'notebook.output' && (webviewSection == 'text' || webviewSection == 'image')","group":"context@2"},{"command":"notebook.cellOutput.openInTextEditor","when":"webviewId == 'notebook.output' && webviewSection == 'text'"}]}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["diffContentOptions"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/ipynb","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.jake"},"manifest":{"name":"jake","publisher":"vscode","description":"Extension to add Jake capabilities to VS Code.","displayName":"Jake support for VS Code","icon":"images/cowboy_hat.png","version":"10.0.0","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:jake"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"jake","type":"object","title":"Jake","properties":{"jake.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Jake task detection. Jake task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"jake","required":["task"],"properties":{"task":{"type":"string","description":"The Jake task to customize."},"file":{"type":"string","description":"The Jake file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/jake","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.java"},"manifest":{"name":"java","displayName":"Java Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Java files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin redhat-developer/vscode-java language-support/java/java.tmLanguage.json ./syntaxes/java.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"java","extensions":[".java",".jav"],"aliases":["Java","java"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"java","scopeName":"source.java","path":"./syntaxes/java.tmLanguage.json"}],"snippets":[{"language":"java","path":"./snippets/java.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/java","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.javascript"},"manifest":{"name":"javascript","displayName":"JavaScript Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in JavaScript files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Programming Languages"],"contributes":{"configurationDefaults":{"[javascript]":{"editor.maxTokenizationLineLength":2500}},"languages":[{"id":"javascriptreact","aliases":["JavaScript JSX","JavaScript React","jsx"],"extensions":[".jsx"],"configuration":"./javascript-language-configuration.json"},{"id":"javascript","aliases":["JavaScript","javascript","js"],"extensions":[".js",".es6",".mjs",".cjs",".pac"],"filenames":["jakefile"],"firstLine":"^#!.*\\bnode","mimetypes":["text/javascript"],"configuration":"./javascript-language-configuration.json"},{"id":"jsx-tags","aliases":[],"configuration":"./tags-language-configuration.json"}],"grammars":[{"language":"javascriptreact","scopeName":"source.js.jsx","path":"./syntaxes/JavaScriptReact.tmLanguage.json","embeddedLanguages":{"meta.tag.js":"jsx-tags","meta.tag.without-attributes.js":"jsx-tags","meta.tag.attributes.js.jsx":"javascriptreact","meta.embedded.expression.js":"javascriptreact"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"language":"javascript","scopeName":"source.js","path":"./syntaxes/JavaScript.tmLanguage.json","embeddedLanguages":{"meta.tag.js":"jsx-tags","meta.tag.without-attributes.js":"jsx-tags","meta.tag.attributes.js":"javascript","meta.embedded.expression.js":"javascript"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"scopeName":"source.js.regexp","path":"./syntaxes/Regular Expressions (JavaScript).tmLanguage"}],"semanticTokenScopes":[{"language":"javascript","scopes":{"property":["variable.other.property.js"],"property.readonly":["variable.other.constant.property.js"],"variable":["variable.other.readwrite.js"],"variable.readonly":["variable.other.constant.object.js"],"function":["entity.name.function.js"],"namespace":["entity.name.type.module.js"],"variable.defaultLibrary":["support.variable.js"],"function.defaultLibrary":["support.function.js"]}},{"language":"javascriptreact","scopes":{"property":["variable.other.property.jsx"],"property.readonly":["variable.other.constant.property.jsx"],"variable":["variable.other.readwrite.jsx"],"variable.readonly":["variable.other.constant.object.jsx"],"function":["entity.name.function.jsx"],"namespace":["entity.name.type.module.jsx"],"variable.defaultLibrary":["support.variable.js"],"function.defaultLibrary":["support.function.js"]}}],"snippets":[{"language":"javascript","path":"./snippets/javascript.code-snippets"},{"language":"javascriptreact","path":"./snippets/javascript.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/javascript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.json"},"manifest":{"name":"json","displayName":"JSON Language Basics","description":"Provides syntax highlighting & bracket matching in JSON files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"json","aliases":["JSON","json"],"extensions":[".json",".bowerrc",".jscsrc",".webmanifest",".js.map",".css.map",".ts.map",".har",".jslintrc",".jsonld",".geojson",".ipynb",".vuerc"],"filenames":["composer.lock",".watchmanconfig"],"mimetypes":["application/json","application/manifest+json"],"configuration":"./language-configuration.json"},{"id":"jsonc","aliases":["JSON with Comments"],"extensions":[".jsonc",".eslintrc",".eslintrc.json",".jsfmtrc",".jshintrc",".swcrc",".hintrc",".babelrc",".toolset.jsonc"],"filenames":["babel.config.json","bun.lock",".babelrc.json",".ember-cli","typedoc.json"],"filenamePatterns":["**/.github/hooks/*.json"],"configuration":"./language-configuration.json"},{"id":"jsonl","aliases":["JSON Lines"],"extensions":[".jsonl",".ndjson"],"filenames":[],"configuration":"./language-configuration.json"},{"id":"snippets","aliases":["Code Snippets"],"extensions":[".code-snippets"],"filenamePatterns":["**/User/snippets/*.json","**/User/profiles/*/snippets/*.json","**/snippets*.json"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"json","scopeName":"source.json","path":"./syntaxes/JSON.tmLanguage.json"},{"language":"jsonc","scopeName":"source.json.comments","path":"./syntaxes/JSONC.tmLanguage.json"},{"language":"jsonl","scopeName":"source.json.lines","path":"./syntaxes/JSONL.tmLanguage.json"},{"language":"snippets","scopeName":"source.json.comments.snippets","path":"./syntaxes/snippets.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/json","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.json-language-features"},"manifest":{"name":"json-language-features","displayName":"JSON Language Features","description":"Provides rich language support for JSON files.","version":"10.0.0","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.77.0"},"enabledApiProposals":["extensionsAny"],"icon":"icons/json.png","activationEvents":["onLanguage:json","onLanguage:jsonc","onLanguage:snippets","onCommand:json.validate"],"main":"./client/dist/node/jsonClientMain","browser":"./client/dist/browser/jsonClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","description":"The extension requires workspace trust to load schemas from http and https."}},"categories":["Programming Languages"],"contributes":{"configuration":{"id":"json","order":20,"type":"object","title":"JSON","properties":{"json.schemas":{"type":"array","scope":"resource","description":"Associate schemas to JSON files in the current project.","items":{"type":"object","default":{"fileMatch":["/myfile"],"url":"schemaURL"},"properties":{"url":{"type":"string","default":"/user.schema.json","markdownDescription":"A URL or absolute file path to a schema. Can be a relative path (starting with `./`) in workspace and workspace folder settings."},"fileMatch":{"type":"array","items":{"type":"string","default":"MyFile.json","markdownDescription":"A file pattern that can contain `*` and `**` to match against when resolving JSON files to schemas. When beginning with `!`, it defines an exclusion pattern."},"minItems":1,"markdownDescription":"An array of file patterns to match against when resolving JSON files to schemas. `*` and `**` can be used as a wildcard. Exclusion patterns can also be defined and start with `!`. A file matches when there is at least one matching pattern and the last matching pattern is not an exclusion pattern."},"schema":{"$ref":"http://json-schema.org/draft-07/schema#","description":"The schema definition for the given URL. The schema only needs to be provided to avoid accesses to the schema URL."}}}},"json.validate.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable JSON validation."},"json.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default JSON formatter"},"json.format.keepLines":{"type":"boolean","scope":"window","default":false,"description":"Keep all existing new lines when formatting."},"json.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the JSON language server."},"json.colorDecorators.enable":{"type":"boolean","scope":"window","default":true,"description":"Enables or disables color decorators","deprecationMessage":"The setting `json.colorDecorators.enable` has been deprecated in favor of `editor.colorDecorators`."},"json.maxItemsComputed":{"type":"number","default":5000,"description":"The maximum number of outline symbols and folding regions computed (limited for performance reasons)."},"json.schemaDownload.enable":{"type":"boolean","default":true,"description":"When enabled, JSON schemas can be fetched from http and https locations.","tags":["usesOnlineServices"]},"json.schemaDownload.trustedDomains":{"type":"object","default":{"https://schemastore.azurewebsites.net/":true,"https://raw.githubusercontent.com/microsoft/vscode/":true,"https://raw.githubusercontent.com/devcontainers/spec/":true,"https://www.schemastore.org/":true,"https://json.schemastore.org/":true,"https://json-schema.org/":true,"https://developer.microsoft.com/json-schemas/":true},"additionalProperties":{"type":"boolean"},"markdownDescription":"List of trusted domains for downloading JSON schemas over http(s). Use `*` to trust all domains. `*` can also be used as a wildcard in domain names.","tags":["usesOnlineServices"]}}},"configurationDefaults":{"[json]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"},"[jsonc]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"},"[snippets]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.schema.json","url":"http://json-schema.org/draft-07/schema#"}],"jsonValidationRegistry":[{"url":"vscode://schemas-associations/schemas-associations.json"}],"commands":[{"command":"json.clearCache","title":"Clear Schema Cache","category":"JSON"},{"command":"json.sort","title":"Sort Document","category":"JSON"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["extensionsAny"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/json-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.julia"},"manifest":{"name":"julia","displayName":"Julia Language Basics","description":"Provides syntax highlighting & bracket matching in Julia files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin JuliaEditorSupport/atom-language-julia variants/julia_vscode.json ./syntaxes/julia.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"julia","aliases":["Julia","julia"],"extensions":[".jl"],"firstLine":"^#!\\s*/.*\\bjulia[0-9.-]*\\b","configuration":"./language-configuration.json"},{"id":"juliamarkdown","aliases":["Julia Markdown","juliamarkdown"],"extensions":[".jmd"]}],"grammars":[{"language":"julia","scopeName":"source.julia","path":"./syntaxes/julia.tmLanguage.json","embeddedLanguages":{"meta.embedded.inline.cpp":"cpp","meta.embedded.inline.javascript":"javascript","meta.embedded.inline.python":"python","meta.embedded.inline.r":"r","meta.embedded.inline.sql":"sql"}}],"configurationDefaults":{"[julia]":{"editor.defaultColorDecorators":"never"}}}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/julia","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.latex"},"manifest":{"name":"latex","displayName":"LaTeX Language Basics","description":"Provides syntax highlighting and bracket matching for TeX, LaTeX and BibTeX.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"tex","aliases":["TeX","tex"],"extensions":[".sty",".cls",".bbx",".cbx"],"configuration":"latex-language-configuration.json"},{"id":"latex","aliases":["LaTeX","latex"],"extensions":[".tex",".ltx",".ctx"],"configuration":"latex-language-configuration.json"},{"id":"bibtex","aliases":["BibTeX","bibtex"],"extensions":[".bib"]},{"id":"cpp_embedded_latex","configuration":"latex-cpp-embedded-language-configuration.json","aliases":[]},{"id":"markdown_latex_combined","configuration":"markdown-latex-combined-language-configuration.json","aliases":[]}],"grammars":[{"language":"tex","scopeName":"text.tex","path":"./syntaxes/TeX.tmLanguage.json","unbalancedBracketScopes":["keyword.control.ifnextchar.tex","punctuation.math.operator.tex"]},{"language":"latex","scopeName":"text.tex.latex","path":"./syntaxes/LaTeX.tmLanguage.json","unbalancedBracketScopes":["keyword.control.ifnextchar.tex","punctuation.math.operator.tex"],"embeddedLanguages":{"source.cpp":"cpp_embedded_latex","source.css":"css","text.html":"html","source.java":"java","source.js":"javascript","source.julia":"julia","source.lua":"lua","source.python":"python","source.ruby":"ruby","source.ts":"typescript","text.xml":"xml","source.yaml":"yaml","meta.embedded.markdown_latex_combined":"markdown_latex_combined"}},{"language":"bibtex","scopeName":"text.bibtex","path":"./syntaxes/Bibtex.tmLanguage.json"},{"language":"markdown_latex_combined","scopeName":"text.tex.markdown_latex_combined","path":"./syntaxes/markdown-latex-combined.tmLanguage.json"},{"language":"cpp_embedded_latex","scopeName":"source.cpp.embedded.latex","path":"./syntaxes/cpp-grammar-bailout.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/latex","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.less"},"manifest":{"name":"less","displayName":"Less Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Less files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"less","aliases":["Less","less"],"extensions":[".less"],"mimetypes":["text/x-less","text/less"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"less","scopeName":"source.css.less","path":"./syntaxes/less.tmLanguage.json"}],"problemMatchers":[{"name":"lessc","label":"Lessc compiler","owner":"lessc","source":"less","fileLocation":"absolute","pattern":{"regexp":"(.*)\\sin\\s(.*)\\son line\\s(\\d+),\\scolumn\\s(\\d+)","message":1,"file":2,"line":3,"column":4}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/less","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.log"},"manifest":{"name":"log","displayName":"Log","description":"Provides syntax highlighting for files with .log extension.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin emilast/vscode-logfile-highlighter syntaxes/log.tmLanguage ./syntaxes/log.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"log","extensions":[".log","*.log.?"],"aliases":["Log"]}],"grammars":[{"language":"log","scopeName":"text.log","path":"./syntaxes/log.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/log","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.lua"},"manifest":{"name":"lua","displayName":"Lua Language Basics","description":"Provides syntax highlighting and bracket matching in Lua files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin sumneko/lua.tmbundle Syntaxes/Lua.plist ./syntaxes/lua.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"lua","extensions":[".lua"],"aliases":["Lua","lua"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"lua","scopeName":"source.lua","path":"./syntaxes/lua.tmLanguage.json","tokenTypes":{"comment.line.double-dash.doc.lua":"other"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/lua","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.make"},"manifest":{"name":"make","displayName":"Make Language Basics","description":"Provides syntax highlighting and bracket matching in Make files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin fadeevab/make.tmbundle Syntaxes/Makefile.plist ./syntaxes/make.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"makefile","aliases":["Makefile","makefile"],"extensions":[".mak",".mk"],"filenames":["Makefile","makefile","GNUmakefile","OCamlMakefile"],"firstLine":"^#!\\s*/usr/bin/make","configuration":"./language-configuration.json"}],"grammars":[{"language":"makefile","scopeName":"source.makefile","path":"./syntaxes/make.tmLanguage.json","tokenTypes":{"string.interpolated":"other"}}],"configurationDefaults":{"[makefile]":{"editor.insertSpaces":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/make","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown"},"manifest":{"name":"markdown","displayName":"Markdown Language Basics","description":"Provides snippets and syntax highlighting for Markdown.","version":"30.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.20.0"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"markdown","aliases":["Markdown","markdown"],"extensions":[".md",".mkd",".mkdn",".mdwn",".mdown",".markdown",".markdn",".mdtxt",".mdtext",".litcoffee",".ron",".ronn",".workbook"],"filenamePatterns":["**/.cursor/**/*.mdc"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"markdown","scopeName":"text.html.markdown","path":"./syntaxes/markdown.tmLanguage.json","embeddedLanguages":{"meta.embedded.block.html":"html","source.js":"javascript","source.css":"css","meta.embedded.block.frontmatter":"yaml","meta.embedded.block.css":"css","meta.embedded.block.ini":"ini","meta.embedded.block.java":"java","meta.embedded.block.lua":"lua","meta.embedded.block.makefile":"makefile","meta.embedded.block.perl":"perl","meta.embedded.block.r":"r","meta.embedded.block.ruby":"ruby","meta.embedded.block.php":"php","meta.embedded.block.sql":"sql","meta.embedded.block.vs_net":"vs_net","meta.embedded.block.xml":"xml","meta.embedded.block.xsl":"xsl","meta.embedded.block.yaml":"yaml","meta.embedded.block.dosbatch":"dosbatch","meta.embedded.block.clojure":"clojure","meta.embedded.block.coffee":"coffee","meta.embedded.block.c":"c","meta.embedded.block.cpp":"cpp","meta.embedded.block.diff":"diff","meta.embedded.block.dockerfile":"dockerfile","meta.embedded.block.go":"go","meta.embedded.block.groovy":"groovy","meta.embedded.block.pug":"jade","meta.embedded.block.ignore":"ignore","meta.embedded.block.javascript":"javascript","meta.embedded.block.json":"json","meta.embedded.block.jsonc":"jsonc","meta.embedded.block.jsonl":"jsonl","meta.embedded.block.latex":"latex","meta.embedded.block.less":"less","meta.embedded.block.objc":"objc","meta.embedded.block.scss":"scss","meta.embedded.block.perl6":"perl6","meta.embedded.block.powershell":"powershell","meta.embedded.block.python":"python","meta.embedded.block.restructuredtext":"restructuredtext","meta.embedded.block.rust":"rust","meta.embedded.block.scala":"scala","meta.embedded.block.shellscript":"shellscript","meta.embedded.block.typescript":"typescript","meta.embedded.block.typescriptreact":"typescriptreact","meta.embedded.block.csharp":"csharp","meta.embedded.block.fsharp":"fsharp"},"unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown","keyword.operator.relational.cs","keyword.operator.arrow.cs","punctuation.accessor.pointer.cs","keyword.operator.bitwise.shift.cs","keyword.operator.assignment.compound.bitwise.cs","keyword.operator.relational.ts","storage.type.function.arrow.ts","keyword.operator.bitwise.shift.ts","keyword.operator.assignment.compound.bitwise.ts","keyword.operator.relational.tsx","storage.type.function.arrow.tsx","keyword.operator.bitwise.shift.tsx","keyword.operator.assignment.compound.bitwise.tsx"]}],"snippets":[{"language":"markdown","path":"./snippets/markdown.code-snippets"}],"configurationDefaults":{"[markdown]":{"editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false}}},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin microsoft/vscode-markdown-tm-grammar syntaxes/markdown.tmLanguage ./syntaxes/markdown.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/markdown-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown-language-features"},"manifest":{"name":"markdown-language-features","displayName":"Markdown Language Features","description":"Provides rich language support for Markdown.","version":"10.0.0","icon":"icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["agentEditorComments","customEditorDiffs","documentDiff","documentSyntaxHighlighting","externalUriOpener","linkPresentation","textEditorDiffInformation"],"engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension","categories":["Programming Languages"],"activationEvents":["onLanguage:markdown","onLanguage:prompt","onLanguage:instructions","onLanguage:chatagent","onLanguage:skill","onCommand:markdown.api.render","onCommand:markdown.api.reloadPlugins","onWebviewPanel:markdown.preview"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","description":"Required for loading styles configured in the workspace.","restrictedConfigurations":["markdown.styles"]}},"contributes":{"linkPresentationProviders":[{"id":"markdown.gitCommitLinkPresentations","kind":"commit","uriPattern":"^(?:commit:[^?#]+|https?://[^\\s?#]+/(?:commit|-/commit)/[^/?#]+)(?:[?#].*)?$"},{"id":"markdown.workspaceFileLinkPresentations","kind":"file","uriPattern":"^(?:(?:file|vscode-remote|vscode-vfs):[^?#]*|(?!(?:[a-z][a-z0-9+.-]*:|#))[^?#]+)(?:[?#].*)?$"}],"notebookRenderer":[{"id":"vscode.markdown-it-renderer","displayName":"Markdown it renderer","entrypoint":"./notebook-out/index.js","mimeTypes":["text/markdown","text/latex","text/x-css","text/x-html","text/x-json","text/x-typescript","text/x-abap","text/x-apex","text/x-azcli","text/x-bat","text/x-cameligo","text/x-clojure","text/x-coffee","text/x-cpp","text/x-csharp","text/x-csp","text/x-css","text/x-dart","text/x-dockerfile","text/x-ecl","text/x-fsharp","text/x-go","text/x-graphql","text/x-handlebars","text/x-hcl","text/x-html","text/x-ini","text/x-java","text/x-javascript","text/x-julia","text/x-kotlin","text/x-less","text/x-lexon","text/x-lua","text/x-m3","text/x-markdown","text/x-mips","text/x-msdax","text/x-mysql","text/x-objective-c/objective","text/x-pascal","text/x-pascaligo","text/x-perl","text/x-pgsql","text/x-php","text/x-postiats","text/x-powerquery","text/x-powershell","text/x-pug","text/x-python","text/x-r","text/x-razor","text/x-redis","text/x-redshift","text/x-restructuredtext","text/x-ruby","text/x-rust","text/x-sb","text/x-scala","text/x-scheme","text/x-scss","text/x-shell","text/x-solidity","text/x-sophia","text/x-sql","text/x-st","text/x-swift","text/x-systemverilog","text/x-tcl","text/x-twig","text/x-typescript","text/x-vb","text/x-xml","text/x-yaml","application/json"]}],"commands":[{"command":"_markdown.copyImage","title":"Copy Image","category":"Markdown"},{"command":"_markdown.openImage","title":"Open Image","category":"Markdown"},{"command":"_markdown.openFrontMatterSettings","title":"Configure Frontmatter Visibility","category":"Markdown"},{"command":"markdown.showPreview","title":"Open Preview","category":"Markdown","icon":{"light":"./media/preview-light.svg","dark":"./media/preview-dark.svg"}},{"command":"markdown.showPreviewToSide","title":"Open Preview to the Side","category":"Markdown","icon":"$(open-preview)"},{"command":"markdown.showLockedPreviewToSide","title":"Open Locked Preview to the Side","category":"Markdown","icon":"$(open-preview)"},{"command":"markdown.showSource","title":"Open Source File","category":"Markdown","icon":"$(file-code)"},{"command":"markdown.showPreviewSecuritySelector","title":"Change Preview Security Settings","category":"Markdown"},{"command":"markdown.preview.refresh","title":"Refresh Preview","category":"Markdown"},{"command":"markdown.preview.toggleLock","title":"Toggle Preview Locking","category":"Markdown"},{"command":"markdown.findAllFileReferences","title":"Find File References","category":"Markdown"},{"command":"markdown.reopenAsPreview","title":"Open as Preview","category":"Markdown","icon":"$(preview)"},{"command":"markdown.reopenAsSource","title":"Reopen as source file","category":"Markdown","icon":"$(file-code)"},{"command":"markdown.togglePreview","title":"Toggle Preview","category":"Markdown"},{"command":"markdown.editor.insertLinkFromWorkspace","title":"Insert Link to File in Workspace","category":"Markdown","enablement":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !activeEditorIsReadonly"},{"command":"markdown.editor.insertImageFromWorkspace","title":"Insert Image from Workspace","category":"Markdown","enablement":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !activeEditorIsReadonly"},{"command":"markdown.editor.cursorLeft","title":"Move Cursor Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorRight","title":"Move Cursor Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorUp","title":"Move Cursor Up","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDown","title":"Move Cursor Down","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLeftSelect","title":"Select Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorRightSelect","title":"Select Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorUpSelect","title":"Select Up","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDownSelect","title":"Select Down","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordLeft","title":"Move Cursor Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordRight","title":"Move Cursor Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","title":"Select Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","title":"Select Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","title":"Move Cursor to Visual Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","title":"Move Cursor to Visual Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","title":"Select to Visual Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","title":"Select to Visual Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","title":"Move Cursor to Logical Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","title":"Move Cursor to Logical Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","title":"Select to Logical Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","title":"Select to Logical Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentStart","title":"Move Cursor to Document Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","title":"Move Cursor to Document End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","title":"Select to Document Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","title":"Select to Document End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.selectAll","title":"Select All","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLeft","title":"Delete Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteRight","title":"Delete Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteWordLeft","title":"Delete Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteWordRight","title":"Delete Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLineLeft","title":"Delete All Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLineRight","title":"Delete All Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.undo","title":"Undo","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.redo","title":"Redo","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertTab","title":"Insert Tab","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.outdent","title":"Outdent","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.toggleTabFocus","title":"Toggle Tab Key Moves Focus","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.smartEnter","title":"Insert Paragraph","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertHardLineBreak","title":"Insert Hard Line Break","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertParagraph","title":"Insert Paragraph Without Continuing Markup","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true}],"menus":{"webview/context":[{"command":"_markdown.copyImage","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && (webviewSection == 'image' || webviewSection == 'localImage')"},{"command":"_markdown.openImage","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && webviewSection == 'localImage'"},{"command":"_markdown.openFrontMatterSettings","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && webviewSection == 'frontMatter'"}],"editor/title":[{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview","alt":"markdown.showPreview","group":"navigation@1"},{"command":"markdown.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview && !isSessionsWindow","group":"navigation@2"},{"command":"markdown.showSource","when":"activeWebviewPanelId == 'markdown.preview'","group":"navigation@2"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor' && !activeCustomEditorTextDiff && !isSessionsWindow","group":"navigation@2"},{"command":"markdown.preview.refresh","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"},{"command":"markdown.preview.toggleLock","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"},{"command":"markdown.showPreviewSecuritySelector","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"}],"modalEditor/editorTitle":[{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview","alt":"markdown.showPreview","group":"navigation"},{"command":"markdown.reopenAsPreview","when":"(activeEditor == workbench.editors.files.textFileEditor || activeEditor == workbench.editors.textDiffEditor) && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview && !isSessionsWindow","group":"navigation"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor' && !activeCustomEditorTextDiff && !isSessionsWindow","group":"navigation"}],"explorer/context":[{"command":"markdown.showPreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !hasCustomMarkdownPreview","group":"navigation"},{"command":"markdown.findAllFileReferences","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/","group":"4_search"}],"editor/title/context":[{"command":"markdown.showPreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !hasCustomMarkdownPreview","group":"1_open"},{"command":"markdown.findAllFileReferences","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"}],"commandPalette":[{"command":"_markdown.openImage","when":"false"},{"command":"_markdown.copyImage","when":"false"},{"command":"markdown.showPreview","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showLockedPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showSource","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"navigation"},{"command":"markdown.showPreviewSecuritySelector","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.showPreviewSecuritySelector","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.preview.toggleLock","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.preview.refresh","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.preview.refresh","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.findAllFileReferences","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"},{"command":"markdown.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/","group":"navigation"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"navigation"},{"command":"markdown.togglePreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"},{"command":"markdown.editor.cursorLeft","when":"false","$generated":true},{"command":"markdown.editor.cursorRight","when":"false","$generated":true},{"command":"markdown.editor.cursorUp","when":"false","$generated":true},{"command":"markdown.editor.cursorDown","when":"false","$generated":true},{"command":"markdown.editor.cursorLeftSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorRightSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorUpSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDownSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorWordLeft","when":"false","$generated":true},{"command":"markdown.editor.cursorWordRight","when":"false","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentStart","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","when":"false","$generated":true},{"command":"markdown.editor.selectAll","when":"false","$generated":true},{"command":"markdown.editor.deleteLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteRight","when":"false","$generated":true},{"command":"markdown.editor.deleteWordLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteWordRight","when":"false","$generated":true},{"command":"markdown.editor.deleteLineLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteLineRight","when":"false","$generated":true},{"command":"markdown.editor.undo","when":"false","$generated":true},{"command":"markdown.editor.redo","when":"false","$generated":true},{"command":"markdown.editor.insertTab","when":"false","$generated":true},{"command":"markdown.editor.outdent","when":"false","$generated":true},{"command":"markdown.editor.toggleTabFocus","when":"false","$generated":true},{"command":"markdown.editor.smartEnter","when":"false","$generated":true},{"command":"markdown.editor.insertHardLineBreak","when":"false","$generated":true},{"command":"markdown.editor.insertParagraph","when":"false","$generated":true}]},"keybindings":[{"command":"markdown.showPreviewToSide","key":"ctrl+k v","mac":"cmd+k v","when":"editorFocus && editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.togglePreview","key":"shift+ctrl+v","mac":"shift+cmd+v","when":"!terminalFocus && ((editorFocus && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused) || activeCustomEditorId == 'vscode.markdown.preview.editor')"},{"command":"markdown.editor.cursorLeft","key":"ctrl+b","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLeft","key":"left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorRight","key":"ctrl+f","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorRight","key":"right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorUp","key":"ctrl+p","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorUp","key":"up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorDown","key":"ctrl+n","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDown","key":"down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorLeftSelect","key":"shift+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorRightSelect","key":"shift+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorUpSelect","key":"shift+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorDownSelect","key":"shift+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorWordLeft","key":"alt+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordLeft","key":"ctrl+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordRight","key":"alt+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordRight","key":"ctrl+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","key":"shift+alt+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","key":"ctrl+shift+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","key":"shift+alt+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","key":"ctrl+shift+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","key":"cmd+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","key":"home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","key":"cmd+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","key":"end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","key":"shift+cmd+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","key":"shift+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","key":"shift+cmd+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","key":"shift+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","key":"ctrl+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","key":"ctrl+e","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","key":"ctrl+shift+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","key":"ctrl+shift+e","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStart","key":"cmd+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStart","key":"ctrl+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","key":"cmd+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","key":"ctrl+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","key":"shift+cmd+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","key":"ctrl+shift+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","key":"shift+cmd+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","key":"ctrl+shift+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.selectAll","key":"cmd+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.selectAll","key":"ctrl+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"ctrl+h","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"ctrl+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteLeft","key":"shift+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteRight","key":"ctrl+d","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteRight","key":"ctrl+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteRight","key":"delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteWordLeft","key":"alt+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteWordLeft","key":"ctrl+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteWordRight","key":"alt+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteWordRight","key":"ctrl+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteLineLeft","key":"cmd+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLineRight","key":"cmd+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLineRight","key":"ctrl+k","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.undo","key":"cmd+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.undo","key":"ctrl+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.redo","key":"shift+cmd+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.redo","key":"ctrl+shift+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.redo","key":"ctrl+y","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.smartEnter","key":"enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.insertHardLineBreak","key":"shift+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.insertParagraph","key":"cmd+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.insertParagraph","key":"ctrl+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true}],"configuration":[{"title":"Language Features","order":20,"properties":{"markdown.experimental.richLinks.enabled":{"type":"boolean","default":true,"description":"Controls whether supported links in the Markdown editor are rendered as rich links with live metadata. Enabling this may make authenticated requests to services such as GitHub.","scope":"window","tags":["experimental","onExP"]},"markdown.links.openLocation":{"type":"string","default":"currentGroup","description":"Controls where links in Markdown files should be opened.","scope":"resource","enum":["currentGroup","beside"],"enumDescriptions":["Open links in the active editor group.","Open links beside the active editor."]},"markdown.suggest.paths.enabled":{"type":"boolean","default":true,"description":"Controls whether path suggestions are shown while writing links in Markdown files.","scope":"resource"},"markdown.suggest.paths.includeWorkspaceHeaderCompletions":{"type":"string","default":"onDoubleHash","scope":"resource","markdownDescription":"Enable suggestions for headers in other Markdown files in the current workspace. Accepting one of these suggestions inserts the full path to header in that file, for example: `[link text](/path/to/file.md#header)`.","enum":["never","onDoubleHash","onSingleOrDoubleHash"],"markdownEnumDescriptions":["Disable workspace header suggestions.","Enable workspace header suggestions after typing `##` in a path, for example: `[link text](##`.","Enable workspace header suggestions after typing either `##` or `#` in a path, for example: `[link text](#` or `[link text](##`."]},"markdown.editor.drop.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether dropping files into a Markdown editor while holding Shift inserts Markdown links. Requires enabling `#editor.dropIntoEditor.enabled#`.","default":"smart","enum":["always","smart","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not dropping into a code block or other special element. Use the drop widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.drop.copyIntoWorkspace":{"type":"string","markdownDescription":"Controls if files outside of the workspace that are dropped into a Markdown editor should be copied into the workspace.\n\nUse `#markdown.copyFiles.destination#` to configure where copied dropped files should be created","default":"mediaFiles","enum":["mediaFiles","never"],"markdownEnumDescriptions":["Try to copy external image and video files into the workspace.","Do not copy external files into the workspace."]},"markdown.editor.filePaste.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether pasting files into a Markdown editor creates Markdown links. Requires enabling `#editor.pasteAs.enabled#`.","default":"smart","enum":["always","smart","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.filePaste.copyIntoWorkspace":{"type":"string","markdownDescription":"Controls if files outside of the workspace that are pasted into a Markdown editor should be copied into the workspace.\n\nUse `#markdown.copyFiles.destination#` to configure where copied files should be created.","default":"mediaFiles","enum":["mediaFiles","never"],"markdownEnumDescriptions":["Try to copy external image and video files into the workspace.","Do not copy external files into the workspace."]},"markdown.editor.filePaste.videoSnippet":{"type":"string","markdownDescription":"Snippet used when adding videos to Markdown. This snippet can use the following variables:\n- `${src}` — The resolved path of the video file.\n- `${title}` — The title used for the video. A snippet placeholder will automatically be created for this variable.","default":""},"markdown.editor.filePaste.audioSnippet":{"type":"string","markdownDescription":"Snippet used when adding audio to Markdown. This snippet can use the following variables:\n- `${src}` — The resolved path of the audio file.\n- `${title}` — The title used for the audio. A snippet placeholder will automatically be created for this variable.","default":""},"markdown.editor.pasteUrlAsFormattedLink.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls if Markdown links are created when URLs are pasted into a Markdown editor. Requires enabling `#editor.pasteAs.enabled#`.","default":"smartWithSelection","enum":["always","smart","smartWithSelection","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Smartly create Markdown links by default when you have selected text and are not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.updateLinksOnPaste.enabled":{"type":"boolean","markdownDescription":"Enable/disable a paste option that updates links and reference in text that is copied and pasted between Markdown editors.\n\nTo use this feature, after pasting text that contains updatable links, just click on the Paste Widget and select `Paste and update pasted links`.","scope":"resource","default":true},"markdown.updateLinksOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each file move.","Always update links automatically.","Never try to update link and don't prompt."],"default":"never","markdownDescription":"Try to update links in Markdown files when a file is renamed/moved in the workspace. Use `#markdown.updateLinksOnFileMove.include#` to configure which files trigger link updates.","scope":"window"},"markdown.updateLinksOnFileMove.include":{"type":"array","markdownDescription":"Glob patterns that specifies files that trigger automatic link updates. See `#markdown.updateLinksOnFileMove.enabled#` for details about this feature.","scope":"window","items":{"type":"string","description":"The glob pattern to match file paths against. Set to true to enable the pattern."},"default":["**/*.{md,mkd,mdwn,mdown,markdown,markdn,mdtxt,mdtext,workbook}","**/*.{jpg,jpe,jpeg,png,bmp,gif,ico,webp,avif,tiff,svg,mp4}"]},"markdown.updateLinksOnFileMove.enableForDirectories":{"type":"boolean","default":true,"description":"Enable updating links when a directory is moved or renamed in the workspace.","scope":"window"},"markdown.occurrencesHighlight.enabled":{"type":"boolean","default":false,"description":"Controls whether link occurrences in the current document are highlighted.","scope":"resource"},"markdown.copyFiles.destination":{"type":"object","markdownDescription":"Configures the path and file name of files created by copy/paste or drag and drop. This is a map of globs that match against a Markdown document path to the destination path where the new file should be created.\n\nThe destination path may use the following variables:\n\n- `${documentDirName}` — Absolute parent directory path of the Markdown document, e.g. `/Users/me/myProject/docs`.\n- `${documentRelativeDirName}` — Relative parent directory path of the Markdown document, e.g. `docs`. This is the same as `${documentDirName}` if the file is not part of a workspace.\n- `${documentFileName}` — The full filename of the Markdown document, e.g. `README.md`.\n- `${documentBaseName}` — The basename of the Markdown document, e.g. `README`.\n- `${documentExtName}` — The extension of the Markdown document, e.g. `md`.\n- `${documentFilePath}` — Absolute path of the Markdown document, e.g. `/Users/me/myProject/docs/README.md`.\n- `${documentRelativeFilePath}` — Relative path of the Markdown document, e.g. `docs/README.md`. This is the same as `${documentFilePath}` if the file is not part of a workspace.\n- `${documentWorkspaceFolder}` — The workspace folder for the Markdown document, e.g. `/Users/me/myProject`. This is the same as `${documentDirName}` if the file is not part of a workspace.\n- `${fileName}` — The file name of the dropped file, e.g. `image.png`.\n- `${fileExtName}` — The extension of the dropped file, e.g. `png`.\n- `${unixTime}` — The current Unix timestamp in milliseconds.\n- `${isoTime}` — The current time in ISO 8601 format, e.g. '2025-06-06T08:40:32.123Z'.","additionalProperties":{"type":"string"}},"markdown.copyFiles.overwriteBehavior":{"type":"string","markdownDescription":"Controls if files created by drop or paste should overwrite existing files.","default":"nameIncrementally","enum":["nameIncrementally","overwrite"],"markdownEnumDescriptions":["If a file with the same name already exists, append a number to the file name, for example: `image.png` becomes `image-1.png`.","If a file with the same name already exists, overwrite it."]},"markdown.preferredMdPathExtensionStyle":{"type":"string","default":"auto","markdownDescription":"Controls if file extensions (for example `.md`) are added or not for links to Markdown files. This setting is used when file paths are added by tooling such as path completions or file renames.","enum":["auto","includeExtension","removeExtension"],"markdownEnumDescriptions":["For existing paths, try to maintain the file extension style. For new paths, add file extensions.","Prefer including the file extension. For example, path completions to a file named `file.md` will insert `file.md`.","Prefer removing the file extension. For example, path completions to a file named `file.md` will insert `file` without the `.md`."]}}},{"title":"Validation","order":22,"properties":{"markdown.validate.enabled":{"order":0,"type":"boolean","scope":"resource","description":"Controls whether error reporting is enabled in Markdown files.","default":false},"markdown.validate.referenceLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether reference links in Markdown files are validated, for example: `[link][ref]`. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fragmentLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether fragment links to headers in the current Markdown file are validated, for example: `[link](#header)`. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fileLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether links to other files in Markdown files are validated, for example `[link](/path/to/file.md)`. This checks that the target files exist. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fileLinks.markdownFragmentLinks":{"type":"string","scope":"resource","markdownDescription":"Validate the fragment part of links to headers in other files in Markdown files, for example: `[link](/path/to/file.md#header)`. Inherits the setting value from `#markdown.validate.fragmentLinks.enabled#` by default.","default":"inherit","enum":["inherit","ignore","warning","error"]},"markdown.validate.ignoredLinks":{"type":"array","scope":"resource","markdownDescription":"Configure links that should not be validated. For example adding `/about` would not validate the link `[about](/about)`, while the glob `/assets/**/*.svg` would let you skip validation for any link to `.svg` files under the `assets` directory.","items":{"type":"string"}},"markdown.validate.unusedLinkDefinitions.enabled":{"type":"string","scope":"resource","markdownDescription":"Validate link definitions that are unused in the current file.","default":"hint","enum":["ignore","hint","warning","error"]},"markdown.validate.duplicateLinkDefinitions.enabled":{"type":"string","scope":"resource","markdownDescription":"Validate duplicated definitions in the current file.","default":"warning","enum":["ignore","warning","error"]}}},{"title":"Preview","order":23,"properties":{"markdown.styles":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"A list of URLs or local paths to CSS style sheets to use from the Markdown preview. Relative paths are interpreted relative to the folder open in the Explorer. If there is no open folder, they are interpreted relative to the location of the Markdown file. All `\\` need to be written as `\\\\`.","scope":"resource"},"markdown.preview.breaks":{"type":"boolean","default":false,"markdownDescription":"Sets how line-breaks are rendered in the Markdown preview. Setting it to `true` creates a `
` for newlines inside paragraphs.","scope":"resource"},"markdown.preview.linkify":{"type":"boolean","default":true,"description":"Convert URL-like text to links in the Markdown preview.","scope":"resource"},"markdown.preview.typographer":{"type":"boolean","default":false,"description":"Enable some language-neutral replacement and quotes beautification in the Markdown preview.","scope":"resource"},"markdown.preview.fontFamily":{"type":"string","default":"-apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif","description":"Controls the font family used in the Markdown preview.","scope":"resource"},"markdown.preview.fontSize":{"type":"number","default":14,"description":"Controls the font size in pixels used in the Markdown preview.","scope":"resource"},"markdown.preview.lineHeight":{"type":"number","default":1.6,"description":"Controls the line height used in the Markdown preview. This number is relative to the font size.","scope":"resource"},"markdown.preview.scrollPreviewWithEditor":{"type":"boolean","default":true,"description":"When a Markdown editor is scrolled, update the view of the preview.","scope":"resource"},"markdown.preview.markEditorSelection":{"type":"boolean","default":false,"description":"Mark the current editor selection in the Markdown preview.","scope":"resource"},"markdown.preview.scrollEditorWithPreview":{"type":"boolean","default":true,"description":"When a Markdown preview is scrolled, update the view of the editor.","scope":"resource"},"markdown.preview.doubleClickToSwitchToEditor":{"type":"boolean","default":false,"description":"Double-click in the Markdown preview to switch to the editor.","scope":"resource"},"markdown.preview.openMarkdownLinks":{"type":"string","default":"inPreview","description":"Controls how links to other Markdown files in the Markdown preview should be opened.","scope":"resource","enum":["inPreview","inEditor"],"enumDescriptions":["Try to open links in the Markdown preview.","Try to open links in the editor."]},"markdown.preview.frontMatter":{"type":"string","default":"table","scope":"resource","markdownDescription":"Controls how YAML frontmatter (delimited by `---`) at the start of a Markdown file is rendered in the preview.","enum":["hide","codeBlock","table"],"enumDescriptions":["Do not render frontmatter.","Render frontmatter as a code block.","Render frontmatter as a table of keys and values."]}}},{"title":"Advanced","order":24,"properties":{"markdown.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the Markdown language server."},"markdown.server.log":{"type":"string","scope":"window","enum":["off","debug","trace"],"default":"off","description":"Controls the logging level of the Markdown language server."}}}],"configurationDefaults":{"[markdown]":{"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"off","other":"off"}}},"jsonValidation":[{"fileMatch":"package.json","url":"./schemas/package.schema.json"}],"markdown.previewStyles":["./media/markdown.css","./media/highlight.css"],"markdown.previewScripts":[{"path":"./media/index.js","type":"module"}],"customEditors":[{"viewType":"vscode.markdown.preview.editor","displayName":"Markdown Preview","priority":{"diffEditor":"option","textEditor":"option"},"selector":[{"filenamePattern":"*.md"}]},{"viewType":"vscode.markdown.editor","displayName":"Markdown Editor","priority":{"diffEditor":"explicit","textEditor":"option"},"selector":[{"filenamePattern":"*.md"}]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["agentEditorComments","customEditorDiffs","documentDiff","documentSyntaxHighlighting","externalUriOpener","linkPresentation","textEditorDiffInformation"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/markdown-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown-math"},"manifest":{"name":"markdown-math","displayName":"Markdown Math","description":"Adds math support to Markdown in notebooks.","version":"10.0.0","icon":"icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.54.0"},"categories":["Other","Programming Languages"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"main":"./dist/extension","browser":"./dist/browser/extension","activationEvents":[],"contributes":{"languages":[{"id":"markdown-math","aliases":[]}],"grammars":[{"language":"markdown-math","scopeName":"text.html.markdown.math","path":"./syntaxes/md-math.tmLanguage.json"},{"scopeName":"markdown.math.block","path":"./syntaxes/md-math-block.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex"}},{"scopeName":"markdown.math.inline","path":"./syntaxes/md-math-inline.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex","punctuation.definition.math.end.markdown":"latex"}},{"scopeName":"markdown.math.codeblock","path":"./syntaxes/md-math-fence.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex"}}],"notebookRenderer":[{"id":"vscode.markdown-it-katex-extension","displayName":"Markdown it KaTeX renderer","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/katex.js"}}],"markdown.markdownItPlugins":true,"markdown.previewStyles":["./notebook-out/katex.min.css","./preview-styles/index.css"],"configuration":[{"title":"Markdown Math","properties":{"markdown.math.enabled":{"type":"boolean","default":true,"description":"Enable/disable rendering math in the built-in Markdown preview."},"markdown.math.macros":{"type":"object","additionalProperties":{"type":"string"},"default":{},"description":"A collection of custom macros. Each macro is a key-value pair where the key is a new command name and the value is the expansion of the macro.","scope":"resource"}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/markdown-math","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.media-preview"},"manifest":{"name":"media-preview","displayName":"Media Preview","description":"Provides VS Code's built-in previews for images, audio, and video","extensionKind":["ui","workspace"],"version":"10.0.0","publisher":"vscode","icon":"icon.png","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension.js","categories":["Other"],"activationEvents":[],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"type":"object","title":"Media Previewer","properties":{"mediaPreview.video.autoPlay":{"type":"boolean","default":false,"markdownDescription":"Start playing videos on mute automatically."},"mediaPreview.video.loop":{"type":"boolean","default":false,"markdownDescription":"Loop videos over again automatically."}}},"customEditors":[{"viewType":"imagePreview.previewEditor","displayName":"Image Preview","priority":"builtin","selector":[{"filenamePattern":"*.{jpg,jpe,jpeg,png,bmp,gif,ico,webp,avif,svg}"}]},{"viewType":"vscode.audioPreview","displayName":"Audio Preview","priority":"builtin","selector":[{"filenamePattern":"*.{mp3,wav,ogg,oga}"}]},{"viewType":"vscode.videoPreview","displayName":"Video Preview","priority":"builtin","selector":[{"filenamePattern":"*.{mp4,webm}"}]}],"commands":[{"command":"imagePreview.zoomIn","title":"Zoom in","category":"Image Preview"},{"command":"imagePreview.zoomOut","title":"Zoom out","category":"Image Preview"},{"command":"imagePreview.copyImage","title":"Copy","category":"Image Preview"},{"command":"imagePreview.reopenAsPreview","title":"Reopen as image preview","category":"Image Preview","icon":"$(preview)"},{"command":"imagePreview.reopenAsText","title":"Reopen as source text","category":"Image Preview","icon":"$(go-to-file)"}],"menus":{"commandPalette":[{"command":"imagePreview.zoomIn","when":"activeCustomEditorId == 'imagePreview.previewEditor'","group":"1_imagePreview"},{"command":"imagePreview.zoomOut","when":"activeCustomEditorId == 'imagePreview.previewEditor'","group":"1_imagePreview"},{"command":"imagePreview.copyImage","when":"false"},{"command":"imagePreview.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceExtname == '.svg' && !hasCustomImagePreview","group":"navigation"},{"command":"imagePreview.reopenAsText","when":"activeCustomEditorId == 'imagePreview.previewEditor' && resourceExtname == '.svg'","group":"navigation"}],"webview/context":[{"command":"imagePreview.copyImage","when":"webviewId == 'imagePreview.previewEditor'"}],"editor/title":[{"command":"imagePreview.reopenAsPreview","when":"editorFocus && resourceExtname == '.svg' && !hasCustomImagePreview","group":"navigation"},{"command":"imagePreview.reopenAsText","when":"activeCustomEditorId == 'imagePreview.previewEditor' && resourceExtname == '.svg'","group":"navigation"}]}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/media-preview","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.merge-conflict"},"manifest":{"name":"merge-conflict","publisher":"vscode","displayName":"Merge Conflict","description":"Highlighting and commands for inline merge conflicts.","icon":"media/icon.png","version":"10.0.0","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.5.0"},"categories":["Other"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onStartupFinished"],"main":"./dist/mergeConflictMain","browser":"./dist/browser/mergeConflictMain","contributes":{"commands":[{"category":"Merge Conflict","title":"Accept All Current","original":"Accept All Current","command":"merge-conflict.accept.all-current","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept All Incoming","original":"Accept All Incoming","command":"merge-conflict.accept.all-incoming","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept All Both","original":"Accept All Both","command":"merge-conflict.accept.all-both","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Current","original":"Accept Current","command":"merge-conflict.accept.current","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Incoming","original":"Accept Incoming","command":"merge-conflict.accept.incoming","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Selection","original":"Accept Selection","command":"merge-conflict.accept.selection","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Both","original":"Accept Both","command":"merge-conflict.accept.both","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Next Conflict","original":"Next Conflict","command":"merge-conflict.next","enablement":"!isMergeEditor","icon":"$(arrow-down)"},{"category":"Merge Conflict","title":"Previous Conflict","original":"Previous Conflict","command":"merge-conflict.previous","enablement":"!isMergeEditor","icon":"$(arrow-up)"},{"category":"Merge Conflict","title":"Compare Current Conflict","original":"Compare Current Conflict","command":"merge-conflict.compare","enablement":"!isMergeEditor"}],"menus":{"scm/resourceState/context":[{"command":"merge-conflict.accept.all-current","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"merge-conflict.accept.all-incoming","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"}],"editor/title":[{"command":"merge-conflict.previous","group":"navigation@1","when":"!isMergeEditor && mergeConflictsCount && mergeConflictsCount != 0"},{"command":"merge-conflict.next","group":"navigation@2","when":"!isMergeEditor && mergeConflictsCount && mergeConflictsCount != 0"}]},"configuration":{"title":"Merge Conflict","properties":{"merge-conflict.codeLens.enabled":{"type":"boolean","description":"Create a CodeLens for merge conflict blocks within editor.","default":true},"merge-conflict.decorators.enabled":{"type":"boolean","description":"Create decorators for merge conflict blocks within editor.","default":true},"merge-conflict.autoNavigateNextConflict.enabled":{"type":"boolean","description":"Whether to automatically navigate to the next merge conflict after resolving a merge conflict.","default":false},"merge-conflict.diffViewPosition":{"type":"string","enum":["Current","Beside","Below"],"description":"Controls where the diff view should be opened when comparing changes in merge conflicts.","enumDescriptions":["Open the diff view in the current editor group.","Open the diff view next to the current editor group.","Open the diff view below the current editor group."],"default":"Current"}}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/merge-conflict","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.mermaid-markdown-features"},"manifest":{"name":"mermaid-markdown-features","displayName":"Mermaid Markdown Features","description":"Adds Mermaid diagram support to built-in chats, Markdown previews, and notebooks.","version":"10.0.0","publisher":"vscode","license":"MIT","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.104.0"},"enabledApiProposals":["chatOutputRenderer","chatParticipantPrivate"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"main":"./dist/extension","browser":"./dist/browser/extension","activationEvents":["onWebviewPanel:vscode.mermaid-markdown-features.preview"],"contributes":{"commands":[{"command":"_mermaid-markdown.resetPanZoom","title":"Reset Pan and Zoom"},{"command":"_mermaid-markdown.openInEditor","title":"Open Diagram in Editor"},{"command":"_mermaid-markdown.copySource","title":"Copy Diagram Source"}],"menus":{"commandPalette":[{"command":"_mermaid-markdown.resetPanZoom","when":"false"},{"command":"_mermaid-markdown.openInEditor","when":"false"},{"command":"_mermaid-markdown.copySource","when":"false"}],"webview/context":[{"command":"_mermaid-markdown.openInEditor","when":"webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || (webviewSection == 'mermaid' && (webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor' || webviewId == 'notebook.output'))","group":"navigation@1"},{"command":"_mermaid-markdown.copySource","when":"webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || webviewId == 'vscode.mermaid-markdown-features.preview' || (webviewSection == 'mermaid' && (webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor' || webviewId == 'notebook.output'))","group":"navigation@2"},{"command":"_mermaid-markdown.resetPanZoom","when":"!mermaidError && (webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || webviewId == 'vscode.mermaid-markdown-features.preview')","group":"navigation@3"}]},"configuration":{"title":"Mermaid","properties":{"markdown-mermaid.lightModeTheme":{"order":0,"type":"string","enum":["vscode","base","forest","dark","default","neutral"],"enumDescriptions":["Mermaid theme derived from the current VS Code color theme.","Built-in Mermaid theme. The only Mermaid theme that can be customized with theme variables.","Built-in Mermaid theme using shades of green.","Built-in Mermaid theme for dark backgrounds.","The default built-in Mermaid theme. Works well with light backgrounds.","Built-in Mermaid theme using a neutral grayscale palette. Suitable for black and white prints."],"default":"vscode","description":"Default Mermaid theme for light mode."},"markdown-mermaid.darkModeTheme":{"order":1,"type":"string","enum":["vscode","base","forest","dark","default","neutral"],"enumDescriptions":["Mermaid theme derived from the current VS Code color theme.","Built-in Mermaid theme. The only Mermaid theme that can be customized with theme variables.","Built-in Mermaid theme using shades of green.","Built-in Mermaid theme for dark backgrounds.","The default built-in Mermaid theme. Works well with light backgrounds.","Built-in Mermaid theme using a neutral grayscale palette. Suitable for black and white prints."],"default":"vscode","description":"Default Mermaid theme for dark mode."},"markdown-mermaid.languages":{"order":2,"type":"array","default":["mermaid"],"description":"Default languages in Markdown."},"markdown-mermaid.maxTextSize":{"order":3,"type":"number","default":50000,"description":"The maximum allowed size of the user's text diagram."},"markdown-mermaid.mouseNavigation.enabled":{"type":"string","description":"Controls when mouse-based navigation is enabled on Mermaid diagrams.","enum":["always","alt","never"],"default":"alt","markdownEnumDescriptions":["Always enable mouse navigation on Mermaid diagrams.","Only enable mouse navigation when holding down Alt (Option on macOS). Gestures such as pinch-to-zoom will still work without Alt.","Disable mouse navigation."]},"markdown-mermaid.controls.show":{"type":"string","description":"Controls showing UI controls on Mermaid diagrams.","enum":["never","onHoverOrFocus","always"],"enumDescriptions":["Never show controls.","Show zoom controls when hovering over or focusing a diagram.","Always show zoom controls."],"default":"onHoverOrFocus"},"markdown-mermaid.resizable":{"type":"boolean","default":true,"description":"Allow diagrams to be resized vertically by dragging the bottom edge."},"markdown-mermaid.maxHeight":{"type":"string","default":"","markdownDescription":"Maximum height for diagrams. Must be a CSS value with units such as `80vh` or `400px`. Leave empty to try to automatically size diagrams based on their content."}}},"markdown.previewScripts":[{"path":"./markdown-preview-out/index.js","type":"module"}],"notebookRenderer":[{"id":"vscode.markdown-it.mermaid-extension","displayName":"Markdown-It Mermaid Renderer","requiresMessaging":"optional","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/index.js"}}],"markdown.markdownItPlugins":true,"chatOutputRenderers":[{"viewType":"vscode.mermaid-markdown-features.chatOutputItem","mimeTypes":["text/vnd.mermaid"],"codeBlockLanguageIdentifiers":["mermaid"]}],"languageModelTools":[{"name":"renderMermaidDiagram","displayName":"Mermaid Renderer","toolReferenceName":"renderMermaidDiagram","legacyToolReferenceFullNames":["vscode.mermaid-chat-features/renderMermaidDiagram"],"canBeReferencedInPrompt":true,"modelDescription":"Renders a Mermaid diagram from Mermaid.js markup.","userDescription":"Render a Mermaid.js diagram from markup.","when":"chatSessionType == local","inputSchema":{"type":"object","properties":{"markup":{"type":"string","description":"The mermaid diagram markup to render as a Mermaid diagram. This should only be the markup of the diagram. Do not include a wrapping code block."},"title":{"type":"string","description":"A short title that describes the diagram."}}}}]},"overrides":{"lodash-es":"4.18.1"},"allowScripts":{"fsevents@2.3.3":true},"originalEnabledApiProposals":["chatOutputRenderer","chatParticipantPrivate"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/mermaid-markdown-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.microsoft-authentication"},"manifest":{"name":"microsoft-authentication","publisher":"vscode","license":"MIT","displayName":"Microsoft Account","description":"Microsoft authentication provider","version":"0.0.1","engines":{"vscode":"^1.42.0"},"icon":"media/icon.png","categories":["Other"],"activationEvents":[],"enabledApiProposals":["nativeWindowHandle","authIssuers","authenticationChallenges"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","restrictedConfigurations":["microsoft-sovereign-cloud.environment","microsoft-sovereign-cloud.customEnvironment"]}},"extensionKind":["ui","workspace"],"contributes":{"authentication":[{"label":"Microsoft","id":"microsoft","authorizationServerGlobs":["https://login.microsoftonline.com/*","https://login.microsoftonline.com/*/v2.0"]},{"label":"Microsoft Sovereign Cloud","id":"microsoft-sovereign-cloud"}],"configuration":[{"title":"Microsoft Sovereign Cloud","properties":{"microsoft-sovereign-cloud.environment":{"type":"string","markdownDescription":"The Sovereign Cloud to use for authentication. If you select `custom`, you must also set the `#microsoft-sovereign-cloud.customEnvironment#` setting.","enum":["ChinaCloud","USGovernment","custom"],"enumDescriptions":["Azure China","Azure US Government","A custom Microsoft Sovereign Cloud"]},"microsoft-sovereign-cloud.customEnvironment":{"type":"object","additionalProperties":true,"markdownDescription":"The custom configuration for the Sovereign Cloud to use with the Microsoft Sovereign Cloud authentication provider. This along with setting `#microsoft-sovereign-cloud.environment#` to `custom` is required to use this feature.","properties":{"name":{"type":"string","description":"The name of the custom Sovereign Cloud."},"portalUrl":{"type":"string","description":"The portal URL for the custom Sovereign Cloud."},"managementEndpointUrl":{"type":"string","description":"The management endpoint for the custom Sovereign Cloud."},"resourceManagerEndpointUrl":{"type":"string","description":"The resource manager endpoint for the custom Sovereign Cloud."},"activeDirectoryEndpointUrl":{"type":"string","description":"The Active Directory endpoint for the custom Sovereign Cloud."},"activeDirectoryResourceId":{"type":"string","description":"The Active Directory resource ID for the custom Sovereign Cloud."}},"required":["name","portalUrl","managementEndpointUrl","resourceManagerEndpointUrl","activeDirectoryEndpointUrl","activeDirectoryResourceId"]}}},{"title":"Microsoft","properties":{"microsoft-authentication.implementation":{"type":"string","default":"msal","enum":["msal","msal-no-broker"],"enumDescriptions":["Use the Microsoft Authentication Library (MSAL) to sign in with a Microsoft account.","Use the Microsoft Authentication Library (MSAL) to sign in with a Microsoft account using a browser. This is useful if you are having issues with the native broker."],"markdownDescription":"The authentication implementation to use for signing in with a Microsoft account.","tags":["onExP"]}}}]},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","main":"./dist/extension.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"allowScripts":{"@azure/msal-node-runtime@0.20.1":true,"@azure/msal-node-extensions@5.3.2":true},"originalEnabledApiProposals":["nativeWindowHandle","authIssuers","authenticationChallenges"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/microsoft-authentication","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.js-debug"},"manifest":{"name":"js-debug","displayName":"JavaScript Debugger","version":"1.117.0","publisher":"ms-vscode","author":{"name":"Microsoft Corporation"},"keywords":["pwa","javascript","node","chrome","debugger"],"description":"An extension for debugging Node.js programs and Chrome.","license":"MIT","engines":{"vscode":"^1.80.0","node":">=10"},"icon":"resources/logo.png","categories":["Debuggers"],"private":true,"repository":{"type":"git","url":"https://github.com/Microsoft/vscode-pwa.git"},"bugs":{"url":"https://github.com/Microsoft/vscode-pwa/issues"},"main":"./src/extension.js","enabledApiProposals":["portsAttributes","workspaceTrust","tunnels","browser"],"extensionKind":["workspace"],"overrides":{"serialize-javascript":">=7.0.5"},"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":"limited","description":"Trust is required to debug code in this workspace."}},"activationEvents":["onDebugDynamicConfigurations","onDebugInitialConfigurations","onFileSystem:jsDebugNetworkFs","onDebugResolve:pwa-node","onDebugResolve:node-terminal","onDebugResolve:pwa-extensionHost","onDebugResolve:pwa-chrome","onDebugResolve:pwa-msedge","onDebugResolve:pwa-editor-browser","onDebugResolve:node","onDebugResolve:chrome","onDebugResolve:extensionHost","onDebugResolve:msedge","onDebugResolve:editor-browser","onCommand:extension.js-debug.clearAutoAttachVariables","onCommand:extension.js-debug.setAutoAttachVariables","onCommand:extension.js-debug.autoAttachToProcess","onCommand:extension.js-debug.pickNodeProcess","onCommand:extension.js-debug.requestCDPProxy","onCommand:extension.js-debug.completion.nodeTool"],"contributes":{"menus":{"commandPalette":[{"command":"extension.js-debug.prettyPrint","title":"Pretty print for debugging","when":"debugType == pwa-extensionHost && debugState == stopped || debugType == node-terminal && debugState == stopped || debugType == pwa-node && debugState == stopped || debugType == pwa-chrome && debugState == stopped || debugType == pwa-msedge && debugState == stopped || debugType == pwa-editor-browser && debugState == stopped"},{"command":"extension.js-debug.startProfile","title":"Take Performance Profile","when":"debugType == pwa-extensionHost && inDebugMode && !jsDebugIsProfiling || debugType == node-terminal && inDebugMode && !jsDebugIsProfiling || debugType == pwa-node && inDebugMode && !jsDebugIsProfiling || debugType == pwa-chrome && inDebugMode && !jsDebugIsProfiling || debugType == pwa-msedge && inDebugMode && !jsDebugIsProfiling || debugType == pwa-editor-browser && inDebugMode && !jsDebugIsProfiling"},{"command":"extension.js-debug.stopProfile","title":"Stop Performance Profile","when":"debugType == pwa-extensionHost && inDebugMode && jsDebugIsProfiling || debugType == node-terminal && inDebugMode && jsDebugIsProfiling || debugType == pwa-node && inDebugMode && jsDebugIsProfiling || debugType == pwa-chrome && inDebugMode && jsDebugIsProfiling || debugType == pwa-msedge && inDebugMode && jsDebugIsProfiling || debugType == pwa-editor-browser && inDebugMode && jsDebugIsProfiling"},{"command":"extension.js-debug.revealPage","when":"false"},{"command":"extension.js-debug.debugLink","title":"Open Link","when":"!isWeb"},{"command":"extension.js-debug.createDiagnostics","title":"Diagnose Breakpoint Problems","when":"debugType == pwa-extensionHost && inDebugMode || debugType == node-terminal && inDebugMode || debugType == pwa-node && inDebugMode || debugType == pwa-chrome && inDebugMode || debugType == pwa-msedge && inDebugMode || debugType == pwa-editor-browser && inDebugMode"},{"command":"extension.js-debug.getDiagnosticLogs","title":"Save Diagnostic JS Debug Logs","when":"debugType == pwa-extensionHost && inDebugMode || debugType == node-terminal && inDebugMode || debugType == pwa-node && inDebugMode || debugType == pwa-chrome && inDebugMode || debugType == pwa-msedge && inDebugMode || debugType == pwa-editor-browser && inDebugMode"},{"command":"extension.js-debug.openEdgeDevTools","title":"Open Browser Devtools","when":"debugType == pwa-msedge"},{"command":"extension.js-debug.callers.add","title":"Exclude caller from pausing in the current location","when":"debugType == pwa-extensionHost && debugState == \"stopped\" || debugType == node-terminal && debugState == \"stopped\" || debugType == pwa-node && debugState == \"stopped\" || debugType == pwa-chrome && debugState == \"stopped\" || debugType == pwa-msedge && debugState == \"stopped\" || debugType == pwa-editor-browser && debugState == \"stopped\""},{"command":"extension.js-debug.callers.goToCaller","when":"false"},{"command":"extension.js-debug.callers.gotToTarget","when":"false"},{"command":"extension.js-debug.network.copyUri","when":"false"},{"command":"extension.js-debug.network.openBody","when":"false"},{"command":"extension.js-debug.network.openBodyInHex","when":"false"},{"command":"extension.js-debug.network.replayXHR","when":"false"},{"command":"extension.js-debug.network.viewRequest","when":"false"},{"command":"extension.js-debug.network.clear","when":"false"},{"command":"extension.js-debug.enableSourceMapStepping","when":"jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.disableSourceMapStepping","when":"!jsDebugIsMapSteppingDisabled"}],"debug/callstack/context":[{"command":"extension.js-debug.revealPage","group":"navigation","when":"debugType == pwa-chrome && callStackItemType == 'session' || debugType == pwa-msedge && callStackItemType == 'session' || debugType == pwa-editor-browser && callStackItemType == 'session'"},{"command":"extension.js-debug.toggleSkippingFile","group":"navigation","when":"debugType == pwa-extensionHost && callStackItemType == 'session' || debugType == node-terminal && callStackItemType == 'session' || debugType == pwa-node && callStackItemType == 'session' || debugType == pwa-chrome && callStackItemType == 'session' || debugType == pwa-msedge && callStackItemType == 'session' || debugType == pwa-editor-browser && callStackItemType == 'session'"},{"command":"extension.js-debug.startProfile","group":"navigation","when":"debugType == pwa-extensionHost && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == node-terminal && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-node && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-chrome && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-msedge && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-editor-browser && !jsDebugIsProfiling && callStackItemType == 'session'"},{"command":"extension.js-debug.stopProfile","group":"navigation","when":"debugType == pwa-extensionHost && jsDebugIsProfiling && callStackItemType == 'session' || debugType == node-terminal && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-node && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-chrome && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-msedge && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-editor-browser && jsDebugIsProfiling && callStackItemType == 'session'"},{"command":"extension.js-debug.startProfile","group":"inline","when":"debugType == pwa-extensionHost && !jsDebugIsProfiling || debugType == node-terminal && !jsDebugIsProfiling || debugType == pwa-node && !jsDebugIsProfiling || debugType == pwa-chrome && !jsDebugIsProfiling || debugType == pwa-msedge && !jsDebugIsProfiling || debugType == pwa-editor-browser && !jsDebugIsProfiling"},{"command":"extension.js-debug.stopProfile","group":"inline","when":"debugType == pwa-extensionHost && jsDebugIsProfiling || debugType == node-terminal && jsDebugIsProfiling || debugType == pwa-node && jsDebugIsProfiling || debugType == pwa-chrome && jsDebugIsProfiling || debugType == pwa-msedge && jsDebugIsProfiling || debugType == pwa-editor-browser && jsDebugIsProfiling"},{"command":"extension.js-debug.callers.add","when":"debugType == pwa-extensionHost && callStackItemType == 'stackFrame' || debugType == node-terminal && callStackItemType == 'stackFrame' || debugType == pwa-node && callStackItemType == 'stackFrame' || debugType == pwa-chrome && callStackItemType == 'stackFrame' || debugType == pwa-msedge && callStackItemType == 'stackFrame' || debugType == pwa-editor-browser && callStackItemType == 'stackFrame'"}],"debug/toolBar":[{"command":"extension.js-debug.stopProfile","when":"debugType == pwa-extensionHost && jsDebugIsProfiling || debugType == node-terminal && jsDebugIsProfiling || debugType == pwa-node && jsDebugIsProfiling || debugType == pwa-chrome && jsDebugIsProfiling || debugType == pwa-msedge && jsDebugIsProfiling || debugType == pwa-editor-browser && jsDebugIsProfiling"},{"command":"extension.js-debug.openEdgeDevTools","when":"debugType == pwa-msedge"},{"command":"extension.js-debug.enableSourceMapStepping","when":"jsDebugIsMapSteppingDisabled"}],"view/title":[{"command":"extension.js-debug.addCustomBreakpoints","when":"view == jsBrowserBreakpoints","group":"navigation"},{"command":"extension.js-debug.removeAllCustomBreakpoints","when":"view == jsBrowserBreakpoints","group":"navigation"},{"command":"extension.js-debug.callers.removeAll","group":"navigation","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.disableSourceMapStepping","group":"navigation","when":"debugType == pwa-extensionHost && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == node-terminal && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-node && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-chrome && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-msedge && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-editor-browser && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.enableSourceMapStepping","group":"navigation","when":"debugType == pwa-extensionHost && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == node-terminal && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-node && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-chrome && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-msedge && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-editor-browser && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.network.clear","group":"navigation","when":"view == jsDebugNetworkTree"}],"view/item/context":[{"command":"extension.js-debug.addXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.editXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint","group":"inline"},{"command":"extension.js-debug.editXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.removeXHRBreakpoint","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint","group":"inline"},{"command":"extension.js-debug.removeXHRBreakpoint","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.addXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrCategory","group":"inline"},{"command":"extension.js-debug.callers.goToCaller","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.callers.gotToTarget","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.callers.remove","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.network.viewRequest","group":"inline@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.openBody","group":"body@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.openBodyInHex","group":"body@2","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.copyUri","group":"other@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.replayXHR","group":"other@2","when":"view == jsDebugNetworkTree"}],"editor/title":[{"command":"extension.js-debug.prettyPrint","group":"navigation","when":"jsDebugCanPrettyPrint"}]},"breakpoints":[{"language":"javascript"},{"language":"typescript"},{"language":"typescriptreact"},{"language":"javascriptreact"},{"language":"fsharp"},{"language":"html"},{"language":"wat"},{"language":"c"},{"language":"cpp"},{"language":"rust"},{"language":"zig"}],"debuggers":[{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","type":"string"},"attachExistingChildren":{"default":false,"description":"Whether to attempt to attach to already-spawned child processes.","type":"boolean"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"continueOnAttach":{"default":true,"markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","type":"boolean"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"port":{"default":9229,"description":"Debug port to attach to. Default is 9229.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"processId":{"default":"${command:PickProcess}","description":"ID of process to attach to.","type":"string"},"remoteHostHeader":{"description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header.","type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"websocketAddress":{"description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port.","type":"string"}}},"launch":{"properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[],"deprecated":"Please use type node instead","label":"Node.js","languages":["javascript","typescript","javascriptreact","typescriptreact"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-node","variables":{"PickProcess":"extension.js-debug.pickNodeProcess"}},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","type":"string"},"attachExistingChildren":{"default":false,"description":"Whether to attempt to attach to already-spawned child processes.","type":"boolean"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"continueOnAttach":{"default":true,"markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","type":"boolean"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"port":{"default":9229,"description":"Debug port to attach to. Default is 9229.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"processId":{"default":"${command:PickProcess}","description":"ID of process to attach to.","type":"string"},"remoteHostHeader":{"description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header.","type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"websocketAddress":{"description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port.","type":"string"}}},"launch":{"properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[{"body":{"name":"${1:Attach}","port":9229,"request":"attach","skipFiles":["/**"],"type":"node"},"description":"Attach to a running node program","label":"Node.js: Attach"},{"body":{"address":"${2:TCP/IP address of process to be debugged}","localRoot":"^\"\\${workspaceFolder}\"","name":"${1:Attach to Remote}","port":9229,"remoteRoot":"${3:Absolute path to the remote directory containing the program}","request":"attach","skipFiles":["/**"],"type":"node"},"description":"Attach to the debug port of a remote node program","label":"Node.js: Attach to Remote Program"},{"body":{"name":"${1:Attach by Process ID}","processId":"^\"\\${command:PickProcess}\"","request":"attach","skipFiles":["/**"],"type":"node"},"description":"Open process picker to select node process to attach to","label":"Node.js: Attach to Process"},{"body":{"name":"${2:Launch Program}","program":"^\"\\${workspaceFolder}/${1:app.js}\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Launch a node program in debug mode","label":"Node.js: Launch Program"},{"body":{"name":"${1:Launch via NPM}","request":"launch","runtimeArgs":["run-script","debug"],"runtimeExecutable":"npm","skipFiles":["/**"],"type":"node"},"label":"Node.js: Launch via npm","markdownDescription":"Launch a node program through an npm `debug` script"},{"body":{"console":"integratedTerminal","internalConsoleOptions":"neverOpen","name":"nodemon","program":"^\"\\${workspaceFolder}/${1:app.js}\"","request":"launch","restart":true,"runtimeExecutable":"nodemon","skipFiles":["/**"],"type":"node"},"description":"Use nodemon to relaunch a debug session on source changes","label":"Node.js: Nodemon Setup"},{"body":{"args":["-u","tdd","--timeout","999999","--colors","^\"\\${workspaceFolder}/${1:test}\""],"internalConsoleOptions":"openOnSessionStart","name":"Mocha Tests","program":"^\"mocha\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Debug mocha tests","label":"Node.js: Mocha Tests"},{"body":{"args":["${1:generator}"],"console":"integratedTerminal","internalConsoleOptions":"neverOpen","name":"Yeoman ${1:generator}","program":"^\"\\${workspaceFolder}/node_modules/yo/lib/cli.js\"","request":"launch","skipFiles":["/**"],"type":"node"},"label":"Node.js: Yeoman generator","markdownDescription":"Debug yeoman generator (install by running `npm link` in project folder)"},{"body":{"args":["${1:task}"],"name":"Gulp ${1:task}","program":"^\"\\${workspaceFolder}/node_modules/gulp/bin/gulp.js\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Debug gulp task (make sure to have a local gulp installed in your project)","label":"Node.js: Gulp task"},{"body":{"name":"Electron Main","program":"^\"\\${workspaceFolder}/main.js\"","request":"launch","runtimeExecutable":"^\"electron\"","skipFiles":["/**"],"type":"node"},"description":"Debug the Electron main process","label":"Node.js: Electron Main"}],"label":"Node.js","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"node","variables":{"PickProcess":"extension.js-debug.pickNodeProcess"}},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[{"body":{"command":"npm start","name":"Run npm start","request":"launch","type":"node-terminal"},"description":"Run \"npm start\" in a debug terminal","label":"Run \"npm start\" in a debug terminal"}],"label":"JavaScript Debug Terminal","languages":[],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"node-terminal"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"args":{"default":["--extensionDevelopmentPath=${workspaceFolder}"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":"array"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"debugWebWorkerHost":{"default":true,"markdownDescription":"Configures whether we should try to attach to the web worker extension host.","type":["boolean"]},"debugWebviews":{"default":true,"markdownDescription":"Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.","type":["boolean"]},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"rendererDebugOptions":{"default":{"webRoot":"${workspaceFolder}"},"markdownDescription":"Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.","properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"type":"object"},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeExecutable":{"default":"node","markdownDescription":"Absolute path to VS Code.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"testConfiguration":{"default":"${workspaceFolder}/.vscode-test.js","markdownDescription":"Path to a test configuration file for the [test CLI](https://code.visualstudio.com/api/working-with-extensions/testing-extension#quick-setup-the-test-cli).","type":"string"},"testConfigurationLabel":{"default":"","markdownDescription":"A single configuration to run from the file. If not specified, you may be asked to pick.","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"required":[]}},"configurationSnippets":[],"deprecated":"Please use type extensionHost instead","label":"VS Code Extension Development","languages":["javascript","typescript","javascriptreact","typescriptreact"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-extensionHost"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"args":{"default":["--extensionDevelopmentPath=${workspaceFolder}"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":"array"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"debugWebWorkerHost":{"default":true,"markdownDescription":"Configures whether we should try to attach to the web worker extension host.","type":["boolean"]},"debugWebviews":{"default":true,"markdownDescription":"Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.","type":["boolean"]},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"rendererDebugOptions":{"default":{"webRoot":"${workspaceFolder}"},"markdownDescription":"Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.","properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"type":"object"},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeExecutable":{"default":"node","markdownDescription":"Absolute path to VS Code.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"testConfiguration":{"default":"${workspaceFolder}/.vscode-test.js","markdownDescription":"Path to a test configuration file for the [test CLI](https://code.visualstudio.com/api/working-with-extensions/testing-extension#quick-setup-the-test-cli).","type":"string"},"testConfigurationLabel":{"default":"","markdownDescription":"A single configuration to run from the file. If not specified, you may be asked to pick.","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"required":[]}},"configurationSnippets":[{"body":{"args":["^\"--extensionDevelopmentPath=\\${workspaceFolder}\""],"name":"Launch Extension","outFiles":["^\"\\${workspaceFolder}/out/**/*.js\""],"preLaunchTask":"npm","request":"launch","type":"extensionHost"},"description":"Launch a VS Code extension in debug mode","label":"VS Code Extension Development"}],"label":"VS Code Extension Development","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"extensionHost"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":0,"description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[],"deprecated":"Please use type chrome instead","label":"Web App (Chrome)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-chrome"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":0,"description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[{"body":{"name":"Launch Chrome","request":"launch","type":"chrome","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch Chrome to debug a URL","label":"Chrome: Launch"},{"body":{"name":"Attach to Chrome","port":9222,"request":"attach","type":"chrome","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an instance of Chrome already in debug mode","label":"Chrome: Attach"}],"label":"Web App (Chrome)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"chrome"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":{"pipeName":"MyPipeName"},"description":"An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"","properties":{"pipeName":{"type":"string"}},"type":"object"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"address":{"default":"localhost","description":"When debugging webviews, the IP address or hostname the webview is listening on. Will be automatically discovered if not set.","type":"string"},"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"When debugging webviews, the port the webview debugger is listening on. Will be automatically discovered if not set.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":false,"description":"When 'true', the debugger will treat the runtime executable as a host application that contains a WebView allowing you to debug the WebView script content.","type":"boolean"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[],"deprecated":"Please use type msedge instead","label":"Web App (Edge)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-msedge"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":{"pipeName":"MyPipeName"},"description":"An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"","properties":{"pipeName":{"type":"string"}},"type":"object"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"address":{"default":"localhost","description":"When debugging webviews, the IP address or hostname the webview is listening on. Will be automatically discovered if not set.","type":"string"},"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"When debugging webviews, the port the webview debugger is listening on. Will be automatically discovered if not set.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":false,"description":"When 'true', the debugger will treat the runtime executable as a host application that contains a WebView allowing you to debug the WebView script content.","type":"boolean"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[{"body":{"name":"Launch Edge","request":"launch","type":"msedge","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch Edge to debug a URL","label":"Edge: Launch"},{"body":{"name":"Attach to Edge","port":9222,"request":"attach","type":"msedge","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an instance of Edge already in debug mode","label":"Edge: Attach"}],"label":"Web App (Edge)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"msedge"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"required":["url"]}},"configurationSnippets":[],"deprecated":"Please use type editor-browser instead","label":"Web App (Integrated Browser)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-editor-browser","when":"!isWeb"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"required":["url"]}},"configurationSnippets":[{"body":{"name":"Launch Integrated Browser","request":"launch","type":"editor-browser","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch a VS Code integrated browser to debug a URL","label":"Integrated Browser: Launch"},{"body":{"name":"Attach to Integrated Browser","request":"attach","type":"editor-browser","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an open VS Code integrated browser","label":"Integrated Browser: Attach"}],"label":"Web App (Integrated Browser)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"editor-browser","when":"!isWeb"}],"commands":[{"command":"extension.js-debug.prettyPrint","title":"Pretty print for debugging","category":"Debug","icon":"$(json)"},{"command":"extension.js-debug.toggleSkippingFile","title":"Toggle Skipping this File","category":"Debug"},{"command":"extension.js-debug.addCustomBreakpoints","title":"Toggle Event Listener Breakpoints","icon":"$(add)"},{"command":"extension.js-debug.removeAllCustomBreakpoints","title":"Remove All Event Listener Breakpoints","icon":"$(close-all)"},{"command":"extension.js-debug.addXHRBreakpoints","title":"Add XHR/fetch Breakpoint","icon":"$(add)"},{"command":"extension.js-debug.removeXHRBreakpoint","title":"Remove XHR/fetch Breakpoint","icon":"$(remove)"},{"command":"extension.js-debug.editXHRBreakpoints","title":"Edit XHR/fetch Breakpoint","icon":"$(edit)"},{"command":"extension.pwa-node-debug.attachNodeProcess","title":"Attach to Node Process","category":"Debug"},{"command":"extension.js-debug.npmScript","title":"Debug npm Script","category":"Debug"},{"command":"extension.js-debug.createDebuggerTerminal","title":"JavaScript Debug Terminal","category":"Debug"},{"command":"extension.js-debug.startProfile","title":"Take Performance Profile","category":"Debug","icon":"$(record)"},{"command":"extension.js-debug.stopProfile","title":"Stop Performance Profile","category":"Debug","icon":"resources/dark/stop-profiling.svg"},{"command":"extension.js-debug.revealPage","title":"Focus Tab","category":"Debug"},{"command":"extension.js-debug.debugLink","title":"Open Link","category":"Debug"},{"command":"extension.js-debug.createDiagnostics","title":"Diagnose Breakpoint Problems","category":"Debug"},{"command":"extension.js-debug.getDiagnosticLogs","title":"Save Diagnostic JS Debug Logs","category":"Debug"},{"command":"extension.node-debug.startWithStopOnEntry","title":"Start Debugging and Stop on Entry","category":"Debug"},{"command":"extension.js-debug.openEdgeDevTools","title":"Open Browser Devtools","icon":"$(inspect)","category":"Debug"},{"command":"extension.js-debug.callers.add","title":"Exclude Caller","category":"Debug"},{"command":"extension.js-debug.callers.remove","title":"Remove excluded caller","icon":"$(close)"},{"command":"extension.js-debug.callers.removeAll","title":"Remove all excluded callers","icon":"$(clear-all)"},{"command":"extension.js-debug.callers.goToCaller","title":"Go to caller location","icon":"$(call-outgoing)"},{"command":"extension.js-debug.callers.gotToTarget","title":"Go to target location","icon":"$(call-incoming)"},{"command":"extension.js-debug.enableSourceMapStepping","title":"Enable Source Mapped Stepping","icon":"$(compass-dot)"},{"command":"extension.js-debug.disableSourceMapStepping","title":"Disable Source Mapped Stepping","icon":"$(compass)"},{"command":"extension.js-debug.network.viewRequest","title":"View Request as cURL","icon":"$(arrow-right)"},{"command":"extension.js-debug.network.clear","title":"Clear Network Log","icon":"$(clear-all)"},{"command":"extension.js-debug.network.openBody","title":"Open Response Body"},{"command":"extension.js-debug.network.openBodyInHex","title":"Open Response Body in Hex Editor"},{"command":"extension.js-debug.network.replayXHR","title":"Replay Request"},{"command":"extension.js-debug.network.copyUri","title":"Copy Request URL"}],"keybindings":[{"command":"extension.node-debug.startWithStopOnEntry","key":"F10","mac":"F10","when":"debugConfigurationType == pwa-node && !inDebugMode || debugConfigurationType == pwa-extensionHost && !inDebugMode || debugConfigurationType == node && !inDebugMode"},{"command":"extension.node-debug.startWithStopOnEntry","key":"F11","mac":"F11","when":"debugConfigurationType == pwa-node && !inDebugMode && activeViewlet == workbench.view.debug || debugConfigurationType == pwa-extensionHost && !inDebugMode && activeViewlet == workbench.view.debug || debugConfigurationType == node && !inDebugMode && activeViewlet == workbench.view.debug"}],"configuration":{"title":"JavaScript Debugger","properties":{"debug.javascript.codelens.npmScripts":{"enum":["top","all","never"],"default":"top","description":"Where a \"Run\" and \"Debug\" code lens should be shown in your npm scripts. It may be on \"all\", scripts, on \"top\" of the script section, or \"never\"."},"debug.javascript.terminalOptions":{"type":"object","description":"Default launch options for the JavaScript debug terminal and npm scripts.","default":{},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"command":{"type":["string","null"],"description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","default":"npm start","tags":["setup"]}}},"debug.javascript.automaticallyTunnelRemoteServer":{"type":"boolean","description":"When debugging a remote web app, configures whether to automatically tunnel the remote server to your local machine.","default":true},"debug.javascript.debugByLinkOptions":{"default":"on","description":"Options used when debugging open links clicked from inside the JavaScript Debug Terminal. Can be set to \"off\" to disable this behavior, or \"always\" to enable debugging in all terminals.","oneOf":[{"type":"string","enum":["on","off","always"]},{"type":"object","properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":null,"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"disableNetworkCache":{"type":"boolean","description":"Controls whether to skip the network cache for each request","default":true},"pathMapping":{"type":"object","description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","default":{}},"webRoot":{"type":"string","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","default":"${workspaceFolder}","tags":["setup"]},"urlFilter":{"type":"string","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","default":""},"url":{"type":"string","description":"Will search for a tab with this exact url and attach to it, if found","default":"http://localhost:8080","tags":["setup"]},"inspectUri":{"type":["string","null"],"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","default":null},"vueComponentPaths":{"type":"array","description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","default":["${workspaceFolder}/**/*.vue"]},"server":{"oneOf":[{"type":"object","description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","additionalProperties":false,"default":{"program":"node my-server.js"},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"program":{"type":"string","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","default":"","tags":["setup"]},"stopOnEntry":{"type":["boolean","string"],"description":"Automatically stop program after launch.","default":true},"console":{"type":"string","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"description":"Where to launch the debug target.","default":"internalConsole"},"args":{"type":["array","string"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"default":[],"tags":["setup"]},"restart":{"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","properties":{"delay":{"type":"number","minimum":0,"default":1000},"maxAttempts":{"type":"number","minimum":0,"default":10}}}]},"runtimeExecutable":{"type":["string","null"],"markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","default":"node"},"runtimeVersion":{"type":"string","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","default":"default"},"runtimeArgs":{"type":"array","description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"default":[],"tags":["setup"]},"profileStartup":{"type":"boolean","description":"If true, will start profiling as soon as the process launches","default":true},"attachSimplePort":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\${.*}$"}],"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","default":9229},"killBehavior":{"type":"string","enum":["forceful","polite","none"],"default":"forceful","markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen."},"experimentalNetworking":{"type":"string","default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"]}}},{"type":"object","description":"JavaScript Debug Terminal","additionalProperties":false,"default":{"program":"npm start"},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"command":{"type":["string","null"],"description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","default":"npm start","tags":["setup"]}}}]},"perScriptSourcemaps":{"type":"string","default":"auto","enum":["yes","no","auto"],"description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate."},"port":{"type":"number","description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","default":0},"file":{"type":"string","description":"A local html file to open in the browser","default":"${workspaceFolder}/index.html","tags":["setup"]},"userDataDir":{"type":["string","boolean"],"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","default":true},"includeDefaultArgs":{"type":"boolean","description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","default":true},"includeLaunchArgs":{"type":"boolean","description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","default":true},"runtimeExecutable":{"type":["string","null"],"description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","default":"stable"},"runtimeArgs":{"type":"array","description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"default":[]},"env":{"type":"object","description":"Optional dictionary of environment key/value pairs for the browser.","default":{}},"cwd":{"type":"string","description":"Optional working directory for the runtime executable.","default":null},"profileStartup":{"type":"boolean","description":"If true, will start profiling soon as the process launches","default":true},"cleanUp":{"type":"string","enum":["wholeBrowser","onlyTab"],"description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","default":"wholeBrowser"},"killBehavior":{"type":"string","enum":["forceful","polite","none"],"default":"forceful","markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen."},"browserLaunchLocation":{"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","default":null,"oneOf":[{"type":"null"},{"type":"string","enum":["ui","workspace"]}]},"enabled":{"type":"string","enum":["on","off","always"]}}}]},"debug.javascript.pickAndAttachOptions":{"type":"object","default":{},"markdownDescription":"Default options used when debugging a process through the `Debug: Attach to Node.js Process` command","properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"address":{"type":"string","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","default":"localhost"},"port":{"description":"Debug port to attach to. Default is 9229.","default":9229,"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\${.*}$"}],"tags":["setup"]},"websocketAddress":{"type":"string","description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port."},"remoteHostHeader":{"type":"string","description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header."},"restart":{"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","properties":{"delay":{"type":"number","minimum":0,"default":1000},"maxAttempts":{"type":"number","minimum":0,"default":10}}}]},"processId":{"type":"string","description":"ID of process to attach to.","default":"${command:PickProcess}"},"attachExistingChildren":{"type":"boolean","description":"Whether to attempt to attach to already-spawned child processes.","default":false},"continueOnAttach":{"type":"boolean","markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","default":true}}},"debug.javascript.autoAttachFilter":{"type":"string","default":"disabled","enum":["always","smart","onlyWithFlag","disabled"],"enumDescriptions":["Auto attach to every Node.js process launched in the terminal.","Auto attach when running scripts that aren't in a node_modules folder.","Only auto attach when the `--inspect` is given.","Auto attach is disabled and not shown in status bar."],"markdownDescription":"Configures which processes to automatically attach and debug when `#debug.node.autoAttach#` is on. A Node process launched with the `--inspect` flag will always be attached to, regardless of this setting."},"debug.javascript.autoAttachSmartPattern":{"type":"array","items":{"type":"string"},"default":["${workspaceFolder}/**","!**/node_modules/**","**/$KNOWN_TOOLS$/**"],"markdownDescription":"Configures glob patterns for determining when to attach in \"smart\" `#debug.javascript.autoAttachFilter#` mode. `$KNOWN_TOOLS$` is replaced with a list of names of common test and code runners. [Read more on the VS Code docs](https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_auto-attach-smart-patterns)."},"debug.javascript.breakOnConditionalError":{"type":"boolean","default":false,"markdownDescription":"Whether to stop when conditional breakpoints throw an error."},"debug.javascript.unmapMissingSources":{"type":"boolean","default":false,"description":"Configures whether sourcemapped file where the original file can't be read will automatically be unmapped. If this is false (default), a prompt is shown."},"debug.javascript.defaultRuntimeExecutable":{"type":"object","default":{"pwa-node":"node"},"markdownDescription":"The default `runtimeExecutable` used for launch configurations, if unspecified. This can be used to config custom paths to Node.js or browser installations.","properties":{"pwa-node":{"type":"string"},"pwa-chrome":{"type":"string"},"pwa-msedge":{"type":"string"}}},"debug.javascript.resourceRequestOptions":{"type":"object","default":{},"markdownDescription":"Request options to use when loading resources, such as source maps, in the debugger. You may need to configure this if your sourcemaps require authentication or use a self-signed certificate, for instance. Options are used to create a request using the [`got`](https://github.com/sindresorhus/got) library.\n\nA common case to disable certificate verification can be done by passing `{ \"https\": { \"rejectUnauthorized\": false } }`."},"debug.javascript.enableNetworkView":{"type":"boolean","default":true,"description":"Enables the experimental network view for targets that support it."}}},"grammars":[{"language":"wat","scopeName":"text.wat","path":"./src/ui/basic-wat.tmLanguage.json"}],"languages":[{"id":"wat","extensions":[".wat",".wasm"],"aliases":["WebAssembly Text Format"],"firstLine":"^\\(module","mimetypes":["text/wat"],"configuration":"./src/ui/basic-wat.configuration.json"}],"terminal":{"profiles":[{"id":"extension.js-debug.debugTerminal","title":"JavaScript Debug Terminal","icon":"$(debug)"}]},"views":{"debug":[{"id":"jsBrowserBreakpoints","name":"Browser Options","when":"debugType == pwa-chrome || debugType == pwa-msedge || debugType == pwa-editor-browser"},{"id":"jsExcludedCallers","name":"Excluded Callers","when":"debugType == pwa-extensionHost && jsDebugHasExcludedCallers || debugType == node-terminal && jsDebugHasExcludedCallers || debugType == pwa-node && jsDebugHasExcludedCallers || debugType == pwa-chrome && jsDebugHasExcludedCallers || debugType == pwa-msedge && jsDebugHasExcludedCallers || debugType == pwa-editor-browser && jsDebugHasExcludedCallers"},{"id":"jsDebugNetworkTree","name":"Network","when":"jsDebugNetworkAvailable"}]},"viewsWelcome":[{"view":"debug","contents":"[JavaScript Debug Terminal](command:extension.js-debug.createDebuggerTerminal)\n\nYou can use the JavaScript Debug Terminal to debug Node.js processes run on the command line.\n\n[Debug URL](command:extension.js-debug.debugLink)","when":"debugStartLanguage == javascript && !isWeb || debugStartLanguage == typescript && !isWeb || debugStartLanguage == javascriptreact && !isWeb || debugStartLanguage == typescriptreact && !isWeb"},{"view":"debug","contents":"[JavaScript Debug Terminal](command:extension.js-debug.createDebuggerTerminal)\n\nYou can use the JavaScript Debug Terminal to debug Node.js processes run on the command line.","when":"debugStartLanguage == javascript && isWeb || debugStartLanguage == typescript && isWeb || debugStartLanguage == javascriptreact && isWeb || debugStartLanguage == typescriptreact && isWeb"}]},"originalEnabledApiProposals":["portsAttributes","workspaceTrust","tunnels","browser"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/ms-vscode.js-debug","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.js-debug-companion"},"manifest":{"name":"js-debug-companion","displayName":"JavaScript Debugger Companion Extension","description":"Companion extension to js-debug that provides capability for remote debugging","version":"1.1.3","publisher":"ms-vscode","engines":{"vscode":"^1.90.0"},"icon":"resources/logo.png","categories":["Other"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode-js-debug-companion.git"},"author":"Connor Peet ","license":"MIT","bugs":{"url":"https://github.com/microsoft/vscode-js-debug-companion/issues"},"homepage":"https://github.com/microsoft/vscode-js-debug-companion#readme","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onCommand:js-debug-companion.launchAndAttach","onCommand:js-debug-companion.kill","onCommand:js-debug-companion.launch","onCommand:js-debug-companion.defaultBrowser"],"main":"./out/extension.js","contributes":{},"extensionKind":["ui"],"api":"none","prettier":{"trailingComma":"all","singleQuote":true,"printWidth":100,"tabWidth":2,"arrowParens":"avoid"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/ms-vscode.js-debug-companion","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.vscode-js-profile-table"},"manifest":{"name":"vscode-js-profile-table","version":"1.0.11","displayName":"Table Visualizer for JavaScript Profiles","description":"Text visualizer for profiles taken from the JavaScript debugger","author":"Connor Peet ","homepage":"https://github.com/microsoft/vscode-js-profile-visualizer#readme","license":"MIT","main":"out/extension.js","browser":"out/extension.web.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode-js-profile-visualizer.git"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"icon":"resources/icon.png","publisher":"ms-vscode","sideEffects":false,"engines":{"vscode":"^1.74.0"},"contributes":{"customEditors":[{"viewType":"jsProfileVisualizer.cpuprofile.table","displayName":"CPU Profile Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.cpuprofile"}]},{"viewType":"jsProfileVisualizer.heapprofile.table","displayName":"Heap Profile Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.heapprofile"}]},{"viewType":"jsProfileVisualizer.heapsnapshot.table","displayName":"Heap Snapshot Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.heapsnapshot"}]}],"commands":[{"command":"extension.jsProfileVisualizer.table.clearCodeLenses","title":"Clear Profile Code Lenses"}],"menus":{"commandPalette":[{"command":"extension.jsProfileVisualizer.table.clearCodeLenses","when":"jsProfileVisualizer.hasCodeLenses == true"}]}},"bugs":{"url":"https://github.com/microsoft/vscode-js-profile-visualizer/issues"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/ms-vscode.vscode-js-profile-table","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.builtin-notebook-renderers"},"manifest":{"name":"builtin-notebook-renderers","displayName":"Builtin Notebook Output Renderers","description":"Provides basic output renderers for notebooks","publisher":"vscode","version":"10.0.0","license":"MIT","icon":"media/icon.png","engines":{"vscode":"^1.57.0"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"notebookRenderer":[{"id":"vscode.builtin-renderer","entrypoint":"./renderer-out/index.js","displayName":"VS Code Builtin Notebook Output Renderer","requiresMessaging":"never","mimeTypes":["image/gif","image/png","image/jpeg","image/git","image/svg+xml","text/html","application/javascript","application/vnd.code.notebook.error","application/vnd.code.notebook.stdout","application/x.notebook.stdout","application/x.notebook.stream","application/vnd.code.notebook.stderr","application/x.notebook.stderr","text/plain"]}]},"scripts":{"compile":"npx gulp compile-extension:notebook-renderers && npm run build-notebook","watch":"npx gulp compile-watch:notebook-renderers","build-notebook":"node ./esbuild.notebook.mts"},"devDependencies":{"@types/jsdom":"^21.1.0","@types/node":"24.x","@types/vscode-notebook-renderer":"^1.60.0","jsdom":"^28.1.0"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/notebook-renderers","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.npm"},"manifest":{"name":"npm","publisher":"vscode","displayName":"NPM support for VS Code","description":"Extension to add task support for npm scripts.","version":"10.0.0","private":true,"license":"MIT","engines":{"vscode":"0.10.x"},"icon":"images/npm_icon.png","categories":["Other"],"enabledApiProposals":["terminalQuickFixProvider"],"main":"./dist/npmMain","browser":"./dist/browser/npmBrowserMain","activationEvents":["onTaskType:npm","onLanguage:json","workspaceContains:package.json"],"capabilities":{"virtualWorkspaces":{"supported":"limited","description":"Functionality that requires running the 'npm' command is not available in virtual workspaces."},"untrustedWorkspaces":{"supported":"limited","description":"This extension executes tasks, which require trust to run."}},"contributes":{"languages":[{"id":"ignore","extensions":[".npmignore"]},{"id":"properties","extensions":[".npmrc"]}],"views":{"explorer":[{"id":"npm","name":"NPM Scripts","when":"npm:showScriptExplorer","icon":"$(json)","visibility":"hidden","contextualTitle":"NPM Scripts"}]},"commands":[{"command":"npm.runScript","title":"Run","icon":"$(run)"},{"command":"npm.debugScript","title":"Debug","icon":"$(debug)"},{"command":"npm.openScript","title":"Open"},{"command":"npm.runInstall","title":"Run Install"},{"command":"npm.refresh","title":"Refresh","icon":"$(refresh)"},{"command":"npm.runSelectedScript","title":"Run Script"},{"command":"npm.runScriptFromFolder","title":"Run NPM Script in Folder..."},{"command":"npm.packageManager","title":"Get Configured Package Manager"}],"menus":{"commandPalette":[{"command":"npm.refresh","when":"false"},{"command":"npm.runScript","when":"false"},{"command":"npm.debugScript","when":"false"},{"command":"npm.openScript","when":"false"},{"command":"npm.runInstall","when":"false"},{"command":"npm.runSelectedScript","when":"false"},{"command":"npm.runScriptFromFolder","when":"false"},{"command":"npm.packageManager","when":"false"}],"editor/context":[{"command":"npm.runSelectedScript","when":"resourceFilename == 'package.json' && resourceScheme == file","group":"navigation@+1"}],"view/title":[{"command":"npm.refresh","when":"view == npm","group":"navigation"}],"view/item/context":[{"command":"npm.openScript","when":"view == npm && viewItem == packageJSON","group":"navigation@1"},{"command":"npm.runInstall","when":"view == npm && viewItem == packageJSON","group":"navigation@2"},{"command":"npm.openScript","when":"view == npm && viewItem == script","group":"navigation@1"},{"command":"npm.runScript","when":"view == npm && viewItem == script","group":"navigation@2"},{"command":"npm.runScript","when":"view == npm && viewItem == script","group":"inline"},{"command":"npm.debugScript","when":"view == npm && viewItem == script","group":"inline"},{"command":"npm.debugScript","when":"view == npm && viewItem == script","group":"navigation@3"}],"explorer/context":[{"when":"config.npm.enableRunFromFolder && explorerViewletVisible && explorerResourceIsFolder && resourceScheme == file","command":"npm.runScriptFromFolder","group":"2_workspace"}]},"configuration":{"id":"npm","type":"object","title":"Npm","properties":{"npm.autoDetect":{"type":"string","enum":["off","on"],"default":"on","scope":"resource","description":"Controls whether npm scripts should be automatically detected."},"npm.runSilent":{"type":"boolean","default":false,"scope":"resource","markdownDescription":"Run npm commands with the `--silent` option."},"npm.packageManager":{"scope":"resource","type":"string","enum":["auto","npm","yarn","pnpm","bun"],"enumDescriptions":["Auto-detect which package manager to use based on lock files and installed package managers.","Use npm as the package manager.","Use yarn as the package manager.","Use pnpm as the package manager.","Use bun as the package manager."],"default":"auto","description":"The package manager used to install dependencies."},"npm.scriptRunner":{"scope":"resource","type":"string","enum":["auto","npm","yarn","pnpm","bun","node","vp"],"enumDescriptions":["Auto-detect which script runner to use based on lock files and installed package managers.","Use npm as the script runner.","Use yarn as the script runner.","Use pnpm as the script runner.","Use bun as the script runner.","Use Node.js as the script runner.","Use Vite+ (vp) as the script runner."],"default":"auto","description":"The script runner used to run scripts."},"npm.exclude":{"type":["string","array"],"items":{"type":"string"},"description":"Configure glob patterns for folders that should be excluded from automatic script detection.","scope":"resource"},"npm.enableRunFromFolder":{"type":"boolean","default":false,"scope":"resource","description":"Enable running npm scripts contained in a folder from the Explorer context menu."},"npm.scriptExplorerAction":{"type":"string","enum":["open","run"],"markdownDescription":"The default click action used in the NPM Scripts Explorer: `open` or `run`, the default is `open`.","scope":"window","default":"open"},"npm.scriptExplorerExclude":{"type":"array","items":{"type":"string"},"markdownDescription":"An array of regular expressions that indicate which scripts should be excluded from the NPM Scripts view.","scope":"resource","default":[]},"npm.fetchOnlinePackageInfo":{"type":"boolean","description":"Fetch data from https://registry.npmjs.org and https://registry.bower.io to provide auto-completion and information on hover features on npm dependencies.","default":true,"scope":"window","tags":["usesOnlineServices"]},"npm.scriptHover":{"type":"boolean","markdownDescription":"Display hover with `Run` and `Debug` commands for scripts.","default":true,"scope":"window"}}},"jsonValidation":[{"fileMatch":"package.json","url":"https://www.schemastore.org/package"},{"fileMatch":"bower.json","url":"https://www.schemastore.org/bower"}],"taskDefinitions":[{"type":"npm","required":["script"],"properties":{"script":{"type":"string","description":"The npm script to customize."},"path":{"type":"string","description":"The path to the folder of the package.json file that provides the script. Can be omitted."}},"when":"shellExecutionSupported"}],"terminalQuickFixes":[{"id":"ms-vscode.npm-command","commandLineMatcher":"npm","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":8,"lineMatcher":"Did you mean (?:this|one of these)\\?((?:\\n.+?npm .+ #.+)+)","offset":2}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalQuickFixProvider"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/npm","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.objective-c"},"manifest":{"name":"objective-c","displayName":"Objective-C Language Basics","description":"Provides syntax highlighting and bracket matching in Objective-C files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"objective-c","extensions":[".m"],"aliases":["Objective-C"],"configuration":"./language-configuration.json"},{"id":"objective-cpp","extensions":[".mm"],"aliases":["Objective-C++"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"objective-c","scopeName":"source.objc","path":"./syntaxes/objective-c.tmLanguage.json"},{"language":"objective-cpp","scopeName":"source.objcpp","path":"./syntaxes/objective-c++.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/objective-c","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.perl"},"manifest":{"name":"perl","displayName":"Perl Language Basics","description":"Provides syntax highlighting and bracket matching in Perl files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/perl.tmbundle Syntaxes/Perl.plist ./syntaxes/perl.tmLanguage.json Syntaxes/Perl%206.tmLanguage ./syntaxes/perl6.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"perl","aliases":["Perl","perl"],"extensions":[".pl",".pm",".pod",".t",".PL",".psgi"],"firstLine":"^#!.*\\bperl\\b","configuration":"./perl.language-configuration.json"},{"id":"raku","aliases":["Raku","Perl6","perl6"],"extensions":[".raku",".rakumod",".rakutest",".rakudoc",".nqp",".p6",".pl6",".pm6"],"firstLine":"(^#!.*\\bperl6\\b)|use\\s+v6|raku|=begin\\spod|my\\sclass","configuration":"./perl6.language-configuration.json"}],"grammars":[{"language":"perl","scopeName":"source.perl","path":"./syntaxes/perl.tmLanguage.json","unbalancedBracketScopes":["variable.other.predefined.perl"]},{"language":"raku","scopeName":"source.perl.6","path":"./syntaxes/perl6.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/perl","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.php"},"manifest":{"name":"php","displayName":"PHP Language Basics","description":"Provides syntax highlighting and bracket matching for PHP files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"php","extensions":[".php",".php4",".php5",".phtml",".ctp"],"aliases":["PHP","php"],"firstLine":"^#!\\s*/.*\\bphp\\b","mimetypes":["application/x-php"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"php","scopeName":"source.php","path":"./syntaxes/php.tmLanguage.json"},{"language":"php","scopeName":"text.html.php","path":"./syntaxes/html.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.php":"php","source.sql":"sql","text.xml":"xml","source.js":"javascript","source.json":"json","source.css":"css"}}],"snippets":[{"language":"php","path":"./snippets/php.code-snippets"}]},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/php","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.php-language-features"},"manifest":{"name":"php-language-features","displayName":"PHP Language Features","description":"Provides rich language support for PHP files.","version":"10.0.0","publisher":"vscode","license":"MIT","icon":"icons/logo.png","engines":{"vscode":"0.10.x"},"activationEvents":["onLanguage:php"],"main":"./dist/phpMain","categories":["Programming Languages"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":"limited","description":"The extension requires workspace trust when the `php.validate.executablePath` setting will load a version of PHP in the workspace.","restrictedConfigurations":["php.validate.executablePath"]}},"contributes":{"configuration":{"title":"PHP","type":"object","order":20,"properties":{"php.suggest.basic":{"type":"boolean","default":true,"description":"Controls whether the built-in PHP language suggestions are enabled. The support suggests PHP globals and variables."},"php.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable built-in PHP validation."},"php.validate.executablePath":{"type":["string","null"],"default":null,"description":"Points to the PHP executable.","scope":"machine-overridable"},"php.validate.run":{"type":"string","enum":["onSave","onType"],"default":"onSave","description":"Whether the linter is run on save or on type."}}},"jsonValidation":[{"fileMatch":"composer.json","url":"https://getcomposer.org/schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/php-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.powershell"},"manifest":{"name":"powershell","displayName":"Powershell Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Powershell files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"powershell","extensions":[".ps1",".psm1",".psd1",".pssc",".psrc"],"aliases":["PowerShell","powershell","ps","ps1","pwsh"],"firstLine":"^#!\\s*/.*\\bpwsh\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"powershell","scopeName":"source.powershell","path":"./syntaxes/powershell.tmLanguage.json"}]},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin PowerShell/EditorSyntax PowerShellSyntax.tmLanguage ./syntaxes/powershell.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/powershell","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.prompt"},"manifest":{"name":"prompt","displayName":"Prompt Language Basics","description":"Syntax highlighting for Prompt and Instructions documents.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.20.0"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"prompt","aliases":["Prompt","prompt"],"extensions":[".prompt.md"],"configuration":"./language-configuration.json"},{"id":"instructions","aliases":["Instructions","instructions"],"extensions":[".instructions.md","copilot-instructions.md"],"filenamePatterns":["**/.claude/rules/**/*.md"],"configuration":"./language-configuration.json"},{"id":"chatagent","aliases":["Agent","chat agent"],"extensions":[".agent.md",".chatmode.md"],"filenamePatterns":["**/.github/agents/*.md","**/.claude/agents/*.md"],"configuration":"./language-configuration.json"},{"id":"skill","aliases":["Skill","skill"],"filenames":["SKILL.md"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"prompt","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"instructions","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"chatagent","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"skill","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]}],"configurationDefaults":{"[prompt]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[instructions]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[chatagent]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[skill]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"}}},"scripts":{},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/prompt-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.pug"},"manifest":{"name":"pug","displayName":"Pug Language Basics","description":"Provides syntax highlighting and bracket matching in Pug files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin davidrios/pug-tmbundle Syntaxes/Pug.JSON-tmLanguage ./syntaxes/pug.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"jade","extensions":[".pug",".jade"],"aliases":["Pug","Jade","jade"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"jade","scopeName":"text.pug","path":"./syntaxes/pug.tmLanguage.json"}],"configurationDefaults":{"[jade]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/pug","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.python"},"manifest":{"name":"python","displayName":"Python Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Python files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"python","extensions":[".py",".rpy",".pyw",".cpy",".gyp",".gypi",".pyi",".ipy",".pyt"],"aliases":["Python","py"],"filenames":["SConstruct","SConscript"],"firstLine":"^#!\\s*/?.*\\bpython[0-9.-]*\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"python","scopeName":"source.python","path":"./syntaxes/MagicPython.tmLanguage.json"},{"scopeName":"source.regexp.python","path":"./syntaxes/MagicRegExp.tmLanguage.json"}],"configurationDefaults":{"[python]":{"diffEditor.ignoreTrimWhitespace":false,"editor.defaultColorDecorators":"never"}}},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin MagicStack/MagicPython grammars/MagicPython.tmLanguage ./syntaxes/MagicPython.tmLanguage.json grammars/MagicRegExp.tmLanguage ./syntaxes/MagicRegExp.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/python","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.r"},"manifest":{"name":"r","displayName":"R Language Basics","description":"Provides syntax highlighting and bracket matching in R files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin REditorSupport/vscode-R-syntax syntaxes/r.json ./syntaxes/r.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"r","extensions":[".R",".Rhistory",".Rprofile",".rt"],"aliases":["R","r"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"r","scopeName":"source.r","path":"./syntaxes/r.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/r","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.razor"},"manifest":{"name":"razor","displayName":"Razor Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Razor files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"razor","extensions":[".cshtml",".razor"],"aliases":["Razor","razor"],"mimetypes":["text/x-cshtml"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"razor","scopeName":"text.html.cshtml","path":"./syntaxes/cshtml.tmLanguage.json","embeddedLanguages":{"section.embedded.source.cshtml":"csharp","source.css":"css","source.js":"javascript"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/razor","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.references-view"},"manifest":{"name":"references-view","displayName":"Reference Search View","description":"Reference Search results as separate, stable view in the sidebar","icon":"media/icon.png","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.67.0"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"repository":{"type":"git","url":"https://github.com/Microsoft/vscode-references-view"},"bugs":{"url":"https://github.com/Microsoft/vscode-references-view/issues"},"activationEvents":["onCommand:references-view.find","onCommand:editor.action.showReferences"],"main":"./dist/extension","browser":"./dist/browser/extension","contributes":{"configuration":{"properties":{"references.preferredLocation":{"description":"Controls whether 'Peek References' or 'Find References' is invoked when selecting CodeLens references.","type":"string","default":"peek","enum":["peek","view"],"enumDescriptions":["Show references in peek editor.","Show references in separate view."]}}},"viewsContainers":{"activitybar":[{"id":"references-view","icon":"$(references)","title":"References"}]},"views":{"references-view":[{"id":"references-view.tree","name":"Reference Search Results","when":"reference-list.isActive"}]},"commands":[{"command":"references-view.findReferences","title":"Find All References","category":"References"},{"command":"references-view.findImplementations","title":"Find All Implementations","category":"References"},{"command":"references-view.clearHistory","title":"Clear History","category":"References","icon":"$(clear-all)"},{"command":"references-view.clear","title":"Clear","category":"References","icon":"$(clear-all)"},{"command":"references-view.refresh","title":"Refresh","category":"References","icon":"$(refresh)"},{"command":"references-view.pickFromHistory","title":"Show History","category":"References"},{"command":"references-view.removeReferenceItem","title":"Dismiss","icon":"$(close)"},{"command":"references-view.copy","title":"Copy"},{"command":"references-view.copyAll","title":"Copy All"},{"command":"references-view.copyPath","title":"Copy Path"},{"command":"references-view.refind","title":"Rerun","icon":"$(refresh)"},{"command":"references-view.showCallHierarchy","title":"Show Call Hierarchy","category":"Calls"},{"command":"references-view.showOutgoingCalls","title":"Show Outgoing Calls","category":"Calls","icon":"$(call-incoming)"},{"command":"references-view.showIncomingCalls","title":"Show Incoming Calls","category":"Calls","icon":"$(call-outgoing)"},{"command":"references-view.removeCallItem","title":"Dismiss","icon":"$(close)"},{"command":"references-view.next","title":"Go to Next Reference","enablement":"references-view.canNavigate"},{"command":"references-view.prev","title":"Go to Previous Reference","enablement":"references-view.canNavigate"},{"command":"references-view.showTypeHierarchy","title":"Show Type Hierarchy","category":"Types"},{"command":"references-view.showSupertypes","title":"Show Supertypes","category":"Types","icon":"$(type-hierarchy-super)"},{"command":"references-view.showSubtypes","title":"Show Subtypes","category":"Types","icon":"$(type-hierarchy-sub)"},{"command":"references-view.removeTypeItem","title":"Dismiss","icon":"$(close)"}],"menus":{"editor/context":[{"command":"references-view.findReferences","when":"editorHasReferenceProvider","group":"0_navigation@1"},{"command":"references-view.findImplementations","when":"editorHasImplementationProvider","group":"0_navigation@2"},{"command":"references-view.showCallHierarchy","when":"editorHasCallHierarchyProvider","group":"0_navigation@3"},{"command":"references-view.showTypeHierarchy","when":"editorHasTypeHierarchyProvider","group":"0_navigation@4"}],"view/title":[{"command":"references-view.clear","group":"navigation@3","when":"view == references-view.tree && reference-list.hasResult"},{"command":"references-view.clearHistory","group":"navigation@3","when":"view == references-view.tree && reference-list.hasHistory && !reference-list.hasResult"},{"command":"references-view.refresh","group":"navigation@2","when":"view == references-view.tree && reference-list.hasResult"},{"command":"references-view.showOutgoingCalls","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == callHierarchy && references-view.callHierarchyMode == showIncoming"},{"command":"references-view.showIncomingCalls","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == callHierarchy && references-view.callHierarchyMode == showOutgoing"},{"command":"references-view.showSupertypes","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == typeHierarchy && references-view.typeHierarchyMode != supertypes"},{"command":"references-view.showSubtypes","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == typeHierarchy && references-view.typeHierarchyMode != subtypes"}],"view/item/context":[{"command":"references-view.removeReferenceItem","group":"inline","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.removeCallItem","group":"inline","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.removeTypeItem","group":"inline","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.refind","group":"inline","when":"view == references-view.tree && viewItem == history-item"},{"command":"references-view.removeReferenceItem","group":"1","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.removeCallItem","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.removeTypeItem","group":"1","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.refind","group":"1","when":"view == references-view.tree && viewItem == history-item"},{"command":"references-view.copy","group":"2@1","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.copyPath","group":"2@2","when":"view == references-view.tree && viewItem == file-item"},{"command":"references-view.copyAll","group":"2@3","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.showOutgoingCalls","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.showIncomingCalls","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.showSupertypes","group":"1","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.showSubtypes","group":"1","when":"view == references-view.tree && viewItem == type-item"}],"commandPalette":[{"command":"references-view.removeReferenceItem","when":"never"},{"command":"references-view.removeCallItem","when":"never"},{"command":"references-view.removeTypeItem","when":"never"},{"command":"references-view.copy","when":"never"},{"command":"references-view.copyAll","when":"never"},{"command":"references-view.copyPath","when":"never"},{"command":"references-view.refind","when":"never"},{"command":"references-view.findReferences","when":"editorHasReferenceProvider"},{"command":"references-view.clear","when":"reference-list.hasResult"},{"command":"references-view.clearHistory","when":"reference-list.isActive && !reference-list.hasResult"},{"command":"references-view.refresh","when":"reference-list.hasResult"},{"command":"references-view.pickFromHistory","when":"reference-list.isActive"},{"command":"references-view.next","when":"never"},{"command":"references-view.prev","when":"never"}]},"keybindings":[{"command":"references-view.findReferences","when":"editorHasReferenceProvider","key":"shift+alt+f12"},{"command":"references-view.next","when":"reference-list.hasResult","key":"f4"},{"command":"references-view.prev","when":"reference-list.hasResult","key":"shift+f4"},{"command":"references-view.showCallHierarchy","when":"editorHasCallHierarchyProvider","key":"shift+alt+h"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/references-view","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.restructuredtext"},"manifest":{"name":"restructuredtext","displayName":"reStructuredText Language Basics","description":"Provides syntax highlighting in reStructuredText files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin trond-snekvik/vscode-rst syntaxes/rst.tmLanguage.json ./syntaxes/rst.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"restructuredtext","aliases":["reStructuredText"],"configuration":"./language-configuration.json","extensions":[".rst"]}],"grammars":[{"language":"restructuredtext","scopeName":"source.rst","path":"./syntaxes/rst.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/restructuredtext","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ruby"},"manifest":{"name":"ruby","displayName":"Ruby Language Basics","description":"Provides syntax highlighting and bracket matching in Ruby files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin Shopify/ruby-lsp vscode/grammars/ruby.cson.json ./syntaxes/ruby.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"ruby","extensions":[".rb",".rbx",".rjs",".gemspec",".rake",".ru",".erb",".podspec",".rbi"],"filenames":["rakefile","gemfile","guardfile","podfile","capfile","cheffile","hobofile","vagrantfile","appraisals","rantfile","berksfile","berksfile.lock","thorfile","puppetfile","dangerfile","brewfile","fastfile","appfile","deliverfile","matchfile","scanfile","snapfile","gymfile"],"aliases":["Ruby","rb"],"firstLine":"^#!\\s*/.*\\bruby\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"ruby","scopeName":"source.ruby","path":"./syntaxes/ruby.tmLanguage.json"}],"configurationDefaults":{"[ruby]":{"editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/ruby","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.rust"},"manifest":{"name":"rust","displayName":"Rust Language Basics","description":"Provides syntax highlighting and bracket matching in Rust files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"rust","extensions":[".rs"],"aliases":["Rust","rust"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"rust","path":"./syntaxes/rust.tmLanguage.json","scopeName":"source.rust"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/rust","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.scss"},"manifest":{"name":"scss","displayName":"SCSS Language Basics","description":"Provides syntax highlighting, bracket matching and folding in SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-sass grammars/scss.cson ./syntaxes/scss.tmLanguage.json grammars/sassdoc.cson ./syntaxes/sassdoc.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"scss","aliases":["SCSS","scss"],"extensions":[".scss"],"mimetypes":["text/x-scss","text/scss"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"scss","scopeName":"source.css.scss","path":"./syntaxes/scss.tmLanguage.json"},{"scopeName":"source.sassdoc","path":"./syntaxes/sassdoc.tmLanguage.json"}],"problemMatchers":[{"name":"node-sass","label":"Node Sass Compiler","owner":"node-sass","fileLocation":"absolute","pattern":[{"regexp":"^{$"},{"regexp":"\\s*\"status\":\\s\\d+,"},{"regexp":"\\s*\"file\":\\s\"(.*)\",","file":1},{"regexp":"\\s*\"line\":\\s(\\d+),","line":1},{"regexp":"\\s*\"column\":\\s(\\d+),","column":1},{"regexp":"\\s*\"message\":\\s\"(.*)\",","message":1},{"regexp":"\\s*\"formatted\":\\s(.*)"},{"regexp":"^}$"}]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/scss","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.search-result"},"manifest":{"name":"search-result","displayName":"Search Result","description":"Provides syntax highlighting and language features for tabbed search results.","version":"10.0.0","publisher":"vscode","license":"MIT","icon":"images/icon.png","engines":{"vscode":"^1.39.0"},"main":"./dist/extension.js","browser":"./dist/browser/extension","activationEvents":["onLanguage:search-result"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["documentFiltersExclusive"],"contributes":{"configurationDefaults":{"[search-result]":{"editor.lineNumbers":"off"}},"languages":[{"id":"search-result","extensions":[".code-search"],"aliases":["Search Result"]}],"grammars":[{"language":"search-result","scopeName":"text.searchResult","path":"./syntaxes/searchResult.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["documentFiltersExclusive"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/search-result","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.shaderlab"},"manifest":{"name":"shaderlab","displayName":"Shaderlab Language Basics","description":"Provides syntax highlighting and bracket matching in Shaderlab files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin tgjones/shaders-tmLanguage grammars/shaderlab.json ./syntaxes/shaderlab.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"shaderlab","extensions":[".shader"],"aliases":["ShaderLab","shaderlab"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"shaderlab","path":"./syntaxes/shaderlab.tmLanguage.json","scopeName":"source.shaderlab"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/shaderlab","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.shellscript"},"manifest":{"name":"shellscript","displayName":"Shell Script Language Basics","description":"Provides syntax highlighting and bracket matching in Shell Script files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin jeff-hykin/better-shell-syntax autogenerated/shell.tmLanguage.json ./syntaxes/shell-unix-bash.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"shellscript","aliases":["Shell Script","shellscript","bash","fish","sh","zsh","ksh","csh"],"extensions":[".sh",".bash",".bashrc",".bash_aliases",".bash_profile",".bash_login",".ebuild",".eclass",".profile",".bash_logout",".xprofile",".xsession",".xsessionrc",".Xsession",".zsh",".zshrc",".zprofile",".zlogin",".zlogout",".zshenv",".zsh-theme",".fish",".ksh",".csh",".cshrc",".tcshrc",".yashrc",".yash_profile"],"filenames":["APKBUILD","PKGBUILD",".envrc",".hushlogin","zshrc","zshenv","zlogin","zprofile","zlogout","bashrc_Apple_Terminal","zshrc_Apple_Terminal"],"firstLine":"^#!.*\\b(bash|fish|zsh|sh|ksh|dtksh|pdksh|mksh|ash|dash|yash|sh|csh|jcsh|tcsh|itcsh).*|^#\\s*-\\*-[^*]*mode:\\s*shell-script[^*]*-\\*-","configuration":"./language-configuration.json","mimetypes":["text/x-shellscript"]}],"grammars":[{"language":"shellscript","scopeName":"source.shell","path":"./syntaxes/shell-unix-bash.tmLanguage.json","balancedBracketScopes":["*"],"unbalancedBracketScopes":["meta.scope.case-pattern.shell"]}],"configurationDefaults":{"[shellscript]":{"files.eol":"\n","editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/shellscript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.simple-browser"},"manifest":{"name":"simple-browser","displayName":"Simple Browser","description":"A very basic built-in webview for displaying web content.","enabledApiProposals":["externalUriOpener"],"version":"10.0.0","icon":"media/icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension","categories":["Other"],"extensionKind":["ui","workspace"],"activationEvents":["onCommand:simpleBrowser.api.open","onOpenExternalUri:http","onOpenExternalUri:https","onWebviewPanel:simpleBrowser.view"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"commands":[{"command":"simpleBrowser.show","title":"Show","category":"Simple Browser"}],"menus":{"commandPalette":[{"command":"simpleBrowser.show","when":"isWeb"}]},"configuration":[{"title":"Simple Browser","properties":{"simpleBrowser.focusLockIndicator.enabled":{"type":"boolean","default":true,"title":"Focus Lock Indicator Enabled","description":"Enable/disable the floating indicator that shows when focused in the simple browser."}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["externalUriOpener"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/simple-browser","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.sql"},"manifest":{"name":"sql","displayName":"SQL Language Basics","description":"Provides syntax highlighting and bracket matching in SQL files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"sql","extensions":[".sql",".dsql"],"aliases":["MS SQL","T-SQL"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"sql","scopeName":"source.sql","path":"./syntaxes/sql.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/sql","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.swift"},"manifest":{"name":"swift","displayName":"Swift Language Basics","description":"Provides snippets, syntax highlighting and bracket matching in Swift files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin jtbandes/swift-tmlanguage Swift.tmLanguage.json ./syntaxes/swift.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"swift","aliases":["Swift","swift"],"extensions":[".swift"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"swift","scopeName":"source.swift","path":"./syntaxes/swift.tmLanguage.json"}],"snippets":[{"language":"swift","path":"./snippets/swift.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/swift","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.terminal-suggest"},"manifest":{"name":"terminal-suggest","publisher":"vscode","displayName":"Terminal Suggest for VS Code","description":"Extension to add terminal completions for zsh, bash, and fish terminals.","version":"1.0.1","private":true,"license":"MIT","icon":"./media/icon.png","engines":{"vscode":"^1.95.0"},"categories":["Other"],"enabledApiProposals":["terminalCompletionProvider","terminalShellEnv"],"contributes":{"commands":[{"command":"terminal.integrated.suggest.clearCachedGlobals","category":"Terminal","title":"Clear Suggest Cached Globals"}],"terminal":{"completionProviders":[{"description":"Show suggestions for commands, arguments, flags, and file paths based upon the Fig spec."}]}},"main":"./dist/terminalSuggestMain","activationEvents":["onTerminalShellIntegration:*"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalCompletionProvider","terminalShellEnv"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/terminal-suggest","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-abyss"},"manifest":{"name":"theme-abyss","displayName":"Abyss Theme","description":"Abyss theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Abyss","label":"Abyss","uiTheme":"vs-dark","path":"./themes/abyss-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-abyss","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-defaults"},"manifest":{"name":"theme-defaults","displayName":"Default Themes","description":"The default Visual Studio light and dark themes","categories":["Themes"],"version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"contributes":{"themes":[{"id":"Light 2026","label":"Light 2026","uiTheme":"vs","path":"./themes/2026-light.json"},{"id":"Dark 2026","label":"Dark 2026","uiTheme":"vs-dark","path":"./themes/2026-dark.json"},{"id":"Dark+","label":"Dark+","uiTheme":"vs-dark","path":"./themes/dark_plus.json"},{"id":"Dark Modern","label":"Dark Modern","uiTheme":"vs-dark","path":"./themes/dark_modern.json"},{"id":"Light+","label":"Light+","uiTheme":"vs","path":"./themes/light_plus.json"},{"id":"Light Modern","label":"Light Modern","uiTheme":"vs","path":"./themes/light_modern.json"},{"id":"Visual Studio Dark","label":"Dark (Visual Studio)","uiTheme":"vs-dark","path":"./themes/dark_vs.json"},{"id":"Visual Studio Light","label":"Light (Visual Studio)","uiTheme":"vs","path":"./themes/light_vs.json"},{"id":"Default High Contrast","label":"Dark High Contrast","uiTheme":"hc-black","path":"./themes/hc_black.json"},{"id":"Default High Contrast Light","label":"Light High Contrast","uiTheme":"hc-light","path":"./themes/hc_light.json"}],"iconThemes":[{"id":"vs-minimal","label":"Minimal (Visual Studio Code)","path":"./fileicons/vs_minimal-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-defaults","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-kimbie-dark"},"manifest":{"name":"theme-kimbie-dark","displayName":"Kimbie Dark Theme","description":"Kimbie dark theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Kimbie Dark","label":"Kimbie Dark","uiTheme":"vs-dark","path":"./themes/kimbie-dark-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-kimbie-dark","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vscode-modern-icons"},"manifest":{"name":"vscode-modern-icons","private":true,"version":"1.0.0","displayName":"VS Code Modern File Icons","description":"A modern file icon theme for Visual Studio Code","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"iconThemes":[{"id":"vscode-modern-icons","label":"VS Code Modern Icons","path":"./fileicons/vscode-modern-icons-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-modern-icons","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-monokai"},"manifest":{"name":"theme-monokai","displayName":"Monokai Theme","description":"Monokai theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Monokai","label":"Monokai","uiTheme":"vs-dark","path":"./themes/monokai-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-monokai","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-monokai-dimmed"},"manifest":{"name":"theme-monokai-dimmed","displayName":"Monokai Dimmed Theme","description":"Monokai dimmed theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Monokai Dimmed","label":"Monokai Dimmed","uiTheme":"vs-dark","path":"./themes/dimmed-monokai-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-monokai-dimmed","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-quietlight"},"manifest":{"name":"theme-quietlight","displayName":"Quiet Light Theme","description":"Quiet light theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Quiet Light","label":"Quiet Light","uiTheme":"vs","path":"./themes/quietlight-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-quietlight","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-red"},"manifest":{"name":"theme-red","displayName":"Red Theme","description":"Red theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Red","label":"Red","uiTheme":"vs-dark","path":"./themes/Red-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-red","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vscode-theme-seti"},"manifest":{"name":"vscode-theme-seti","private":true,"version":"10.0.0","displayName":"Seti File Icon Theme","description":"A file icon theme made out of the Seti UI file icons","publisher":"vscode","license":"MIT","icon":"icons/seti-circular-128x128.png","scripts":{"update":"node ./build/update-icon-theme.js"},"engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"iconThemes":[{"id":"vs-seti","label":"Seti (Visual Studio Code)","path":"./icons/vs-seti-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-seti","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-solarized-dark"},"manifest":{"name":"theme-solarized-dark","displayName":"Solarized Dark Theme","description":"Solarized dark theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Solarized Dark","label":"Solarized Dark","uiTheme":"vs-dark","path":"./themes/solarized-dark-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-solarized-dark","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-solarized-light"},"manifest":{"name":"theme-solarized-light","displayName":"Solarized Light Theme","description":"Solarized light theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Solarized Light","label":"Solarized Light","uiTheme":"vs","path":"./themes/solarized-light-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-solarized-light","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-tomorrow-night-blue"},"manifest":{"name":"theme-tomorrow-night-blue","displayName":"Tomorrow Night Blue Theme","description":"Tomorrow night blue theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Tomorrow Night Blue","label":"Tomorrow Night Blue","uiTheme":"vs-dark","path":"./themes/tomorrow-night-blue-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-tomorrow-night-blue","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.tunnel-forwarding"},"manifest":{"name":"tunnel-forwarding","displayName":"Local Tunnel Port Forwarding","description":"Allows forwarding local ports to be accessible over the internet.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.82.0"},"icon":"media/icon.png","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["resolvers","tunnelFactory"],"activationEvents":["onTunnel"],"contributes":{"commands":[{"category":"Port Forwarding","command":"tunnel-forwarding.showLog","title":"Show Log","enablement":"tunnelForwardingHasLog"},{"category":"Port Forwarding","command":"tunnel-forwarding.restart","title":"Restart Forwarding System","enablement":"tunnelForwardingIsRunning"}]},"main":"./dist/extension","prettier":{"printWidth":100,"trailingComma":"all","singleQuote":true,"arrowParens":"avoid"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["resolvers","tunnelFactory"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/tunnel-forwarding","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.typescript"},"manifest":{"name":"typescript","description":"Provides snippets, syntax highlighting, bracket matching and folding in TypeScript files.","displayName":"TypeScript Language Basics","version":"10.0.0","author":"vscode","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"typescript","aliases":["TypeScript","ts","typescript"],"extensions":[".ts",".cts",".mts"],"firstLine":"^#!.*\\b(deno|bun|ts-node)\\b","configuration":"./language-configuration.json"},{"id":"typescriptreact","aliases":["TypeScript JSX","TypeScript React","tsx"],"extensions":[".tsx"],"configuration":"./language-configuration.json"},{"id":"jsonc","filenames":["tsconfig.json","jsconfig.json"],"filenamePatterns":["tsconfig.*.json","jsconfig.*.json","tsconfig-*.json","jsconfig-*.json"]},{"id":"json","extensions":[".tsbuildinfo"]}],"grammars":[{"language":"typescript","scopeName":"source.ts","path":"./syntaxes/TypeScript.tmLanguage.json","unbalancedBracketScopes":["keyword.operator.relational","storage.type.function.arrow","keyword.operator.bitwise.shift","meta.brace.angle","punctuation.definition.tag","keyword.operator.assignment.compound.bitwise.ts"],"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"language":"typescriptreact","scopeName":"source.tsx","path":"./syntaxes/TypeScriptReact.tmLanguage.json","unbalancedBracketScopes":["keyword.operator.relational","storage.type.function.arrow","keyword.operator.bitwise.shift","punctuation.definition.tag","keyword.operator.assignment.compound.bitwise.ts"],"embeddedLanguages":{"meta.tag.tsx":"jsx-tags","meta.tag.without-attributes.tsx":"jsx-tags","meta.tag.attributes.tsx":"typescriptreact","meta.embedded.expression.tsx":"typescriptreact"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"scopeName":"documentation.injection.ts","path":"./syntaxes/jsdoc.ts.injection.tmLanguage.json","injectTo":["source.ts","source.tsx"]},{"scopeName":"documentation.injection.js.jsx","path":"./syntaxes/jsdoc.js.injection.tmLanguage.json","injectTo":["source.js","source.js.jsx"]}],"semanticTokenScopes":[{"language":"typescript","scopes":{"property":["variable.other.property.ts"],"property.readonly":["variable.other.constant.property.ts"],"variable":["variable.other.readwrite.ts"],"variable.readonly":["variable.other.constant.object.ts"],"function":["entity.name.function.ts"],"namespace":["entity.name.type.module.ts"],"variable.defaultLibrary":["support.variable.ts"],"function.defaultLibrary":["support.function.ts"]}},{"language":"typescriptreact","scopes":{"property":["variable.other.property.tsx"],"property.readonly":["variable.other.constant.property.tsx"],"variable":["variable.other.readwrite.tsx"],"variable.readonly":["variable.other.constant.object.tsx"],"function":["entity.name.function.tsx"],"namespace":["entity.name.type.module.tsx"],"variable.defaultLibrary":["support.variable.tsx"],"function.defaultLibrary":["support.function.tsx"]}}],"snippets":[{"language":"typescript","path":"./snippets/typescript.code-snippets"},{"language":"typescriptreact","path":"./snippets/typescript.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/typescript-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.typescript-language-features"},"manifest":{"name":"typescript-language-features","description":"Provides rich language support for JavaScript and TypeScript.","displayName":"JavaScript and TypeScript Language Features","version":"10.0.0","author":"vscode","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["workspaceTrust","multiDocumentHighlightProvider","codeActionAI","codeActionRanges","editorHoverVerbosityLevel"],"capabilities":{"virtualWorkspaces":{"supported":"limited","description":"In virtual workspaces, resolving and finding references across files is not supported."},"untrustedWorkspaces":{"supported":false,"description":"The extension requires workspace trust when the workspace version is used because it executes code specified by the workspace."}},"engines":{"vscode":"^1.30.0"},"icon":"media/icon.png","categories":["Programming Languages"],"activationEvents":["onLanguage:javascript","onLanguage:javascriptreact","onLanguage:typescript","onLanguage:typescriptreact","onLanguage:jsx-tags","onCommand:typescript.tsserverRequest","onCommand:_typescript.configurePlugin","onCommand:_typescript.learnMoreAboutRefactorings","onCommand:typescript.fileReferences","onTaskType:typescript","onLanguage:jsonc","onWalkthrough:nodejsWelcome"],"main":"./dist/extension","browser":"./dist/browser/extension","contributes":{"jsonValidation":[{"fileMatch":"package.json","url":"./schemas/package.schema.json"},{"fileMatch":"tsconfig.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"tsconfig.*.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig-*.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"tsconfig-*.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig.*.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"typings.json","url":"https://www.schemastore.org/typings"},{"fileMatch":".bowerrc","url":"https://www.schemastore.org/bowerrc"},{"fileMatch":".babelrc","url":"https://www.schemastore.org/babelrc"},{"fileMatch":".babelrc.json","url":"https://www.schemastore.org/babelrc"},{"fileMatch":"babel.config.json","url":"https://www.schemastore.org/babelrc"},{"fileMatch":"jsconfig.json","url":"https://www.schemastore.org/jsconfig"},{"fileMatch":"jsconfig.json","url":"./schemas/jsconfig.schema.json"},{"fileMatch":"jsconfig.*.json","url":"https://www.schemastore.org/jsconfig"},{"fileMatch":"jsconfig.*.json","url":"./schemas/jsconfig.schema.json"},{"fileMatch":".swcrc","url":"https://swc.rs/schema.json"},{"fileMatch":"typedoc.json","url":"https://typedoc.org/schema.json"}],"configuration":[{"type":"object","properties":{"js/ts.tsdk.path":{"type":"string","markdownDescription":"Specifies the folder path to the tsserver and `lib*.d.ts` files under a TypeScript install to use for IntelliSense, for example: `./node_modules/typescript/lib`.\n\n- When specified as a user setting, the TypeScript version from `js/ts.tsdk.path` automatically replaces the built-in TypeScript version.\n- When specified as a workspace setting, `js/ts.tsdk.path` allows you to switch to use that workspace version of TypeScript for IntelliSense with the `TypeScript: Select TypeScript version` command.\n\nSee the [TypeScript documentation](https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-newer-typescript-versions) for more detail about managing TypeScript versions.","scope":"window","order":1,"keywords":["TypeScript"]},"typescript.tsdk":{"type":"string","markdownDescription":"Specifies the folder path to the tsserver and `lib*.d.ts` files under a TypeScript install to use for IntelliSense, for example: `./node_modules/typescript/lib`.\n\n- When specified as a user setting, the TypeScript version from `js/ts.tsdk.path` automatically replaces the built-in TypeScript version.\n- When specified as a workspace setting, `js/ts.tsdk.path` allows you to switch to use that workspace version of TypeScript for IntelliSense with the `TypeScript: Select TypeScript version` command.\n\nSee the [TypeScript documentation](https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-newer-typescript-versions) for more detail about managing TypeScript versions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsdk.path#` instead.","scope":"window","order":1},"js/ts.experimental.useTsgo":{"type":"boolean","default":false,"markdownDescription":"Disables TypeScript and JavaScript language features to allow usage of the TypeScript Go experimental extension. Requires TypeScript Go to be installed and configured. Requires reloading extensions after changing this setting.","scope":"window","order":2,"keywords":["TypeScript","experimental"]},"typescript.experimental.useTsgo":{"type":"boolean","default":false,"markdownDescription":"Disables TypeScript and JavaScript language features to allow usage of the TypeScript Go experimental extension. Requires TypeScript Go to be installed and configured. Requires reloading extensions after changing this setting.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.experimental.useTsgo#` instead.","scope":"window","order":2,"keywords":["experimental"]},"js/ts.locale":{"type":"string","default":"auto","enum":["auto","de","es","en","fr","it","ja","ko","ru","zh-CN","zh-TW"],"enumDescriptions":["Use VS Code's configured display language.","Deutsch","español","English","français","italiano","日本語","한국어","русский","中文(简体)","中文(繁體)"],"markdownDescription":"Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VS Code's locale.","scope":"window","order":3,"keywords":["TypeScript"]},"typescript.locale":{"type":"string","default":"auto","enum":["auto","de","es","en","fr","it","ja","ko","ru","zh-CN","zh-TW"],"enumDescriptions":["Use VS Code's configured display language.","Deutsch","español","English","français","italiano","日本語","한국어","русский","中文(简体)","中文(繁體)"],"markdownDescription":"Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VS Code's locale.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.locale#` instead.","scope":"window","order":3},"js/ts.tsc.autoDetect":{"type":"string","default":"on","enum":["on","off","build","watch"],"markdownEnumDescriptions":["Create both build and watch tasks.","Disable this feature.","Only create single run compile tasks.","Only create compile and watch tasks."],"description":"Controls auto detection of tsc tasks.","scope":"window","order":4,"keywords":["TypeScript"]},"typescript.tsc.autoDetect":{"type":"string","default":"on","enum":["on","off","build","watch"],"markdownEnumDescriptions":["Create both build and watch tasks.","Disable this feature.","Only create single run compile tasks.","Only create compile and watch tasks."],"description":"Controls auto detection of tsc tasks.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsc.autoDetect#` instead.","scope":"window","order":4}}},{"type":"object","title":"Preferences","properties":{"js/ts.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.quoteStyle#` instead.","scope":"language-overridable"},"typescript.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.quoteStyle#` instead.","scope":"language-overridable"},"js/ts.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifier#` instead.","scope":"language-overridable"},"typescript.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifier#` instead.","scope":"language-overridable"},"js/ts.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifierEnding#` instead.","scope":"language-overridable"},"typescript.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifierEnding#` instead.","scope":"language-overridable"},"js/ts.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#js/ts.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#javascript.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.jsxAttributeCompletionStyle#` instead.","scope":"language-overridable"},"typescript.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#typescript.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.jsxAttributeCompletionStyle#` instead.","scope":"language-overridable"},"js/ts.preferences.includePackageJsonAutoImports":{"type":"string","enum":["auto","on","off"],"enumDescriptions":["Search dependencies based on estimated performance impact.","Always search dependencies.","Never search dependencies."],"default":"auto","markdownDescription":"Enable/disable searching `package.json` dependencies for available auto imports.","scope":"window","keywords":["TypeScript"]},"typescript.preferences.includePackageJsonAutoImports":{"type":"string","enum":["auto","on","off"],"enumDescriptions":["Search dependencies based on estimated performance impact.","Always search dependencies.","Never search dependencies."],"default":"auto","markdownDescription":"Enable/disable searching `package.json` dependencies for available auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.includePackageJsonAutoImports#` instead.","scope":"window"},"js/ts.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","scope":"resource","keywords":["JavaScript","TypeScript"]},"javascript.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportFileExcludePatterns#` instead.","scope":"resource"},"typescript.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportFileExcludePatterns#` instead.","scope":"resource"},"js/ts.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","scope":"resource","keywords":["JavaScript","TypeScript"]},"javascript.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportSpecifierExcludeRegexes#` instead.","scope":"resource"},"typescript.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportSpecifierExcludeRegexes#` instead.","scope":"resource"},"js/ts.preferences.preferTypeOnlyAutoImports":{"type":"boolean","default":false,"markdownDescription":"Include the `type` keyword in auto-imports whenever possible. Requires using TypeScript 5.3+ in the workspace.","scope":"resource","keywords":["TypeScript"]},"typescript.preferences.preferTypeOnlyAutoImports":{"type":"boolean","default":false,"markdownDescription":"Include the `type` keyword in auto-imports whenever possible. Requires using TypeScript 5.3+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.preferTypeOnlyAutoImports#` instead.","scope":"resource"},"js/ts.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.useAliasesForRenames#` instead.","scope":"language-overridable"},"typescript.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.useAliasesForRenames#` instead.","scope":"language-overridable"},"js/ts.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.renameMatchingJsxTags#` instead.","scope":"language-overridable"},"typescript.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.renameMatchingJsxTags#` instead.","scope":"language-overridable"},"js/ts.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","Sort imports case-insensitively.","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}},"keywords":["JavaScript","TypeScript"]},"javascript.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.organizeImports#` instead.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","Sort imports case-insensitively.","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}}},"typescript.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.organizeImports#` instead.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","%typescript.preferences.organizeImports.caseSensitivity.insensitive","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}}}}},{"type":"object","title":"Formatting","properties":{"js/ts.format.enabled":{"type":"boolean","default":true,"description":"Enable/disable the default JavaScript and TypeScript formatter.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.enable":{"type":"boolean","default":true,"description":"Enable/disable default JavaScript formatter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.enabled#` instead.","scope":"window"},"typescript.format.enable":{"type":"boolean","default":true,"description":"Enable/disable default TypeScript formatter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.enabled#` instead.","scope":"window"},"js/ts.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterCommaDelimiter#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterCommaDelimiter#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterConstructor#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterConstructor#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterSemicolonInForStatements#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterSemicolonInForStatements#` instead.","scope":"resource"},"js/ts.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeAndAfterBinaryOperators#` instead.","scope":"resource"},"typescript.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeAndAfterBinaryOperators#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions#` instead.","scope":"resource"},"js/ts.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeFunctionParenthesis#` instead.","scope":"resource"},"typescript.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeFunctionParenthesis#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterTypeAssertion":{"type":"boolean","default":false,"description":"Defines space handling after type assertions in TypeScript.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.format.insertSpaceAfterTypeAssertion":{"type":"boolean","default":false,"description":"Defines space handling after type assertions in TypeScript.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterTypeAssertion#` instead.","scope":"resource"},"js/ts.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForFunctions#` instead.","scope":"resource"},"typescript.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForFunctions#` instead.","scope":"resource"},"js/ts.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForControlBlocks#` instead.","scope":"resource"},"typescript.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForControlBlocks#` instead.","scope":"resource"},"js/ts.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","scope":"language-overridable","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."],"keywords":["JavaScript","TypeScript"]},"javascript.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.semicolons#` instead.","scope":"resource","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."]},"typescript.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.semicolons#` instead.","scope":"resource","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."]},"js/ts.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.indentSwitchCase#` instead.","scope":"resource"},"typescript.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.indentSwitchCase#` instead.","scope":"resource"}}},{"type":"object","title":"Validation","properties":{"js/ts.validate.enabled":{"type":"boolean","default":true,"description":"Enable/disable JavaScript and TypeScript validation.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"typescript.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable TypeScript validation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.validate.enabled#` instead.","scope":"window"},"javascript.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable JavaScript validation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.validate.enabled#` instead.","scope":"window"},"js/ts.reportStyleChecksAsWarnings":{"type":"boolean","default":true,"description":"Report style checks as warnings.","scope":"window","keywords":["TypeScript"]},"typescript.reportStyleChecksAsWarnings":{"type":"boolean","default":true,"description":"Report style checks as warnings.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.reportStyleChecksAsWarnings#` instead.","scope":"window"},"js/ts.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for JavaScript and TypeScript files in the editor.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for JavaScript files in the editor.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggestionActions.enabled#` instead.","scope":"resource"},"typescript.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for TypeScript files in the editor.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggestionActions.enabled#` instead.","scope":"resource"},"js/ts.tsserver.experimental.enableProjectDiagnostics":{"type":"boolean","default":false,"description":"Enables project wide error reporting.","scope":"window","keywords":["JavaScript","TypeScript","experimental"]},"typescript.tsserver.experimental.enableProjectDiagnostics":{"type":"boolean","default":false,"description":"Enables project wide error reporting.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.experimental.enableProjectDiagnostics#` instead.","scope":"window","keywords":["experimental"]}}},{"type":"object","title":"Implicit Project Config","properties":{"js/ts.implicitProjectConfig.module":{"type":"string","markdownDescription":"Sets the module system for the program. See more: https://www.typescriptlang.org/tsconfig#module.","default":"ESNext","enum":["CommonJS","AMD","System","UMD","ES6","ES2015","ES2020","ESNext","None","ES2022","Node12","NodeNext"],"scope":"window"},"js/ts.implicitProjectConfig.target":{"type":"string","default":"ES2024","markdownDescription":"Set target JavaScript language version for emitted JavaScript and include library declarations. See more: https://www.typescriptlang.org/tsconfig#target.","enum":["ES3","ES5","ES6","ES2015","ES2016","ES2017","ES2018","ES2019","ES2020","ES2021","ES2022","ES2023","ES2024","ESNext"],"scope":"window"},"js/ts.implicitProjectConfig.checkJs":{"type":"boolean","default":false,"markdownDescription":"Enable/disable semantic checking of JavaScript files. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.experimentalDecorators":{"type":"boolean","default":false,"markdownDescription":"Enable/disable `experimentalDecorators` in JavaScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strictNullChecks":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict null checks](https://www.typescriptlang.org/tsconfig#strictNullChecks) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strictFunctionTypes":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict function types](https://www.typescriptlang.org/tsconfig#strictFunctionTypes) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strict":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict mode](https://www.typescriptlang.org/tsconfig#strict) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"}}},{"type":"object","title":"Language Features","properties":{"js/ts.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","scope":"resource","keywords":["JavaScript","TypeScript"]},"typescript.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnFileMove.enabled#` instead.","scope":"resource"},"javascript.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnFileMove.enabled#` instead.","scope":"resource"},"js/ts.autoClosingTags.enabled":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"typescript.autoClosingTags":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.autoClosingTags.enabled#` instead.","scope":"language-overridable"},"javascript.autoClosingTags":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.autoClosingTags.enabled#` instead.","scope":"language-overridable"},"js/ts.workspaceSymbols.scope":{"type":"string","enum":["allOpenProjects","currentProject"],"enumDescriptions":["Search all open JavaScript or TypeScript projects for symbols.","Only search for symbols in the current JavaScript or TypeScript project."],"default":"allOpenProjects","markdownDescription":"Controls which files are searched by [Go to Symbol in Workspace](https://code.visualstudio.com/docs/editor/editingevolved#_open-symbol-by-name).","scope":"window","keywords":["TypeScript"]},"typescript.workspaceSymbols.scope":{"type":"string","enum":["allOpenProjects","currentProject"],"enumDescriptions":["Search all open JavaScript or TypeScript projects for symbols.","Only search for symbols in the current JavaScript or TypeScript project."],"default":"allOpenProjects","markdownDescription":"Controls which files are searched by [Go to Symbol in Workspace](https://code.visualstudio.com/docs/editor/editingevolved#_open-symbol-by-name).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.workspaceSymbols.scope#` instead.","scope":"window"},"js/ts.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","scope":"window","keywords":["JavaScript","TypeScript"]},"typescript.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferGoToSourceDefinition#` instead.","scope":"window"},"javascript.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferGoToSourceDefinition#` instead.","scope":"window"},"js/ts.workspaceSymbols.excludeLibrarySymbols":{"type":"boolean","default":true,"markdownDescription":"Exclude symbols that come from library files in `Go to Symbol in Workspace` results. Requires using TypeScript 5.3+ in the workspace.","scope":"window","keywords":["TypeScript"]},"typescript.workspaceSymbols.excludeLibrarySymbols":{"type":"boolean","default":true,"markdownDescription":"Exclude symbols that come from library files in `Go to Symbol in Workspace` results. Requires using TypeScript 5.3+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.workspaceSymbols.excludeLibrarySymbols#` instead.","scope":"window"},"js/ts.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","keywords":["JavaScript","TypeScript"]},"javascript.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnPaste.enabled#` instead."},"typescript.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnPaste.enabled#` instead."},"js/ts.hover.maximumLength":{"type":"number","default":500,"description":"The maximum number of characters in a hover. If the hover is longer than this, it will be truncated. Requires TypeScript 5.9+.","scope":"resource"}}},{"type":"object","title":"Suggestions","properties":{"js/ts.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.enabled#` instead.","scope":"language-overridable"},"typescript.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.enabled#` instead.","scope":"language-overridable"},"js/ts.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.autoImports#` instead.","scope":"resource"},"typescript.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.autoImports#` instead.","scope":"resource"},"js/ts.suggest.names":{"type":"boolean","default":true,"markdownDescription":"Enable/disable including unique names from the file in JavaScript suggestions. Note that name suggestions are always disabled in JavaScript code that is semantically checked using `@ts-check` or `checkJs`.","scope":"language-overridable","keywords":["JavaScript"]},"javascript.suggest.names":{"type":"boolean","default":true,"markdownDescription":"Enable/disable including unique names from the file in JavaScript suggestions. Note that name suggestions are always disabled in JavaScript code that is semantically checked using `@ts-check` or `checkJs`.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.names#` instead.","scope":"resource"},"js/ts.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.completeFunctionCalls#` instead.","scope":"resource"},"typescript.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.completeFunctionCalls#` instead.","scope":"resource"},"js/ts.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.paths#` instead.","scope":"resource"},"typescript.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.paths#` instead.","scope":"resource"},"js/ts.suggest.jsdoc.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.completeJSDocs":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.enabled#` instead.","scope":"language-overridable"},"typescript.suggest.completeJSDocs":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.enabled#` instead.","scope":"language-overridable"},"js/ts.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.generateReturns#` instead.","scope":"language-overridable"},"typescript.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.generateReturns#` instead.","scope":"language-overridable"},"js/ts.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeAutomaticOptionalChainCompletions#` instead.","scope":"resource"},"typescript.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeAutomaticOptionalChainCompletions#` instead.","scope":"resource"},"js/ts.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeCompletionsForImportStatements#` instead.","scope":"resource"},"typescript.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeCompletionsForImportStatements#` instead.","scope":"resource"},"js/ts.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.classMemberSnippets.enabled#` instead.","scope":"resource"},"typescript.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.classMemberSnippets.enabled#` instead.","scope":"resource"},"js/ts.suggest.objectLiteralMethodSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for methods in object literals.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.suggest.objectLiteralMethodSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for methods in object literals.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.objectLiteralMethodSnippets.enabled#` instead.","scope":"resource"}}},{"type":"object","title":"CodeLens","properties":{"js/ts.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.enabled#` instead.","scope":"window"},"typescript.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.enabled#` instead.","scope":"window"},"js/ts.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.showOnAllFunctions#` instead.","scope":"window"},"typescript.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.showOnAllFunctions#` instead.","scope":"window"},"js/ts.implementationsCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable implementations CodeLens in TypeScript files. This CodeLens shows the implementers of TypeScript interfaces.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable implementations CodeLens in TypeScript files. This CodeLens shows the implementers of TypeScript interfaces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.enabled#` instead.","scope":"window"},"js/ts.implementationsCodeLens.showOnInterfaceMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) on TypeScript interface methods.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.showOnInterfaceMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) on TypeScript interface methods.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.showOnInterfaceMethods#` instead.","scope":"window"},"js/ts.implementationsCodeLens.showOnAllClassMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable showing [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) above all TypeScript class methods instead of only on abstract methods.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.showOnAllClassMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable showing [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) above all TypeScript class methods instead of only on abstract methods.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.showOnAllClassMethods#` instead.","scope":"window"}}},{"type":"object","title":"Inlay Hints","properties":{"js/ts.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.enabled#` instead.","scope":"resource"},"typescript.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName#` instead.","scope":"resource"},"typescript.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName#` instead.","scope":"resource"},"js/ts.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName#` instead.","scope":"resource"},"typescript.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName#` instead.","scope":"resource"},"js/ts.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.propertyDeclarationTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.propertyDeclarationTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.functionLikeReturnTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.functionLikeReturnTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.enumMemberValues.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for member values in enum declarations:\n```typescript\n\nenum MyValue {\n\tA /* = 0 */;\n\tB /* = 1 */;\n}\n \n```","scope":"language-overridable","keywords":["TypeScript"]},"typescript.inlayHints.enumMemberValues.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for member values in enum declarations:\n```typescript\n\nenum MyValue {\n\tA /* = 0 */;\n\tB /* = 1 */;\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.enumMemberValues.enabled#` instead.","scope":"resource"}}},{"type":"object","title":"TS Server Advanced Settings","properties":{"js/ts.tsdk.promptToUseWorkspaceVersion":{"type":"boolean","default":false,"description":"Enables prompting of users to use the TypeScript version configured in the workspace for Intellisense.","scope":"window","keywords":["TypeScript"]},"typescript.enablePromptUseWorkspaceTsdk":{"type":"boolean","default":false,"description":"Enables prompting of users to use the TypeScript version configured in the workspace for Intellisense.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsdk.promptToUseWorkspaceVersion#` instead.","scope":"window"},"js/ts.tsserver.automaticTypeAcquisition.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable [automatic type acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition). Automatic type acquisition fetches `@types` packages from npm to improve IntelliSense for external libraries.","scope":"window","keywords":["TypeScript","usesOnlineServices"]},"typescript.disableAutomaticTypeAcquisition":{"type":"boolean","default":false,"markdownDescription":"Disables [automatic type acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition). Automatic type acquisition fetches `@types` packages from npm to improve IntelliSense for external libraries.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.automaticTypeAcquisition.enabled#` instead.","scope":"window","keywords":["usesOnlineServices"]},"js/ts.tsserver.node.path":{"type":"string","markdownDescription":"Run TS Server on a custom Node installation. This can be a path to a Node executable, or `node` if you want VS Code to detect a Node installation.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.nodePath":{"type":"string","markdownDescription":"Run TS Server on a custom Node installation. This can be a path to a Node executable, or `node` if you want VS Code to detect a Node installation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.node.path#` instead.","scope":"window"},"js/ts.tsserver.npm.path":{"type":"string","markdownDescription":"Specifies the path to the npm executable used for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","scope":"machine","keywords":["TypeScript"]},"typescript.npm":{"type":"string","markdownDescription":"Specifies the path to the npm executable used for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.npm.path#` instead.","scope":"machine"},"js/ts.tsserver.checkNpmIsInstalled":{"type":"boolean","default":true,"markdownDescription":"Check if npm is installed for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","scope":"window","keywords":["TypeScript"]},"typescript.check.npmIsInstalled":{"type":"boolean","default":true,"markdownDescription":"Check if npm is installed for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.checkNpmIsInstalled#` instead.","scope":"window"},"js/ts.tsserver.web.projectWideIntellisense.enabled":{"type":"boolean","default":true,"description":"Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.projectWideIntellisense.enabled":{"type":"boolean","default":true,"description":"Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.projectWideIntellisense.enabled#` instead.","scope":"window"},"js/ts.tsserver.web.projectWideIntellisense.suppressSemanticErrors":{"type":"boolean","default":false,"description":"Suppresses semantic errors on web even when project wide IntelliSense is enabled. This is always on when project wide IntelliSense is not enabled or available. See `#js/ts.tsserver.web.projectWideIntellisense.enabled#`","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.projectWideIntellisense.suppressSemanticErrors":{"type":"boolean","default":false,"description":"Suppresses semantic errors on web even when project wide IntelliSense is enabled. This is always on when project wide IntelliSense is not enabled or available. See `#js/ts.tsserver.web.projectWideIntellisense.enabled#`","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.projectWideIntellisense.suppressSemanticErrors#` instead.","scope":"window"},"js/ts.tsserver.web.typeAcquisition.enabled":{"type":"boolean","default":true,"description":"Enable/disable package acquisition on the web. This enables IntelliSense for imported packages. Requires `#js/ts.tsserver.web.projectWideIntellisense.enabled#`. Currently not supported for Safari.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.typeAcquisition.enabled":{"type":"boolean","default":true,"description":"Enable/disable package acquisition on the web. This enables IntelliSense for imported packages. Requires `#js/ts.tsserver.web.projectWideIntellisense.enabled#`. Currently not supported for Safari.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.typeAcquisition.enabled#` instead.","scope":"window"},"js/ts.tsserver.useSyntaxServer":{"type":"string","scope":"window","description":"Controls if TypeScript launches a dedicated server to more quickly handle syntax related operations, such as computing code folding.","default":"auto","enum":["always","never","auto"],"enumDescriptions":["Use a lighter weight syntax server to handle all IntelliSense operations. This disables project-wide features including auto-imports, cross-file completions, and go to definition for symbols in other files. Only use this for very large projects where performance is critical.","Don't use a dedicated syntax server. Use a single server to handle all IntelliSense operations.","Spawn both a full server and a lighter weight server dedicated to syntax operations. The syntax server is used to speed up syntax operations and provide IntelliSense while projects are loading."],"keywords":["TypeScript"]},"typescript.tsserver.useSyntaxServer":{"type":"string","scope":"window","description":"Controls if TypeScript launches a dedicated server to more quickly handle syntax related operations, such as computing code folding.","default":"auto","enum":["always","never","auto"],"enumDescriptions":["Use a lighter weight syntax server to handle all IntelliSense operations. This disables project-wide features including auto-imports, cross-file completions, and go to definition for symbols in other files. Only use this for very large projects where performance is critical.","Don't use a dedicated syntax server. Use a single server to handle all IntelliSense operations.","Spawn both a full server and a lighter weight server dedicated to syntax operations. The syntax server is used to speed up syntax operations and provide IntelliSense while projects are loading."],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.useSyntaxServer#` instead."},"js/ts.tsserver.maxMemory":{"type":"number","default":3072,"markdownDescription":"The maximum amount of memory (in MB) to allocate to the TypeScript server process. To use a memory limit greater than 4 GB, use `#js/ts.tsserver.node.path#` to run TS Server with a custom Node installation.","scope":"window","keywords":["TypeScript"]},"js/ts.tsserver.diagnosticDir":{"type":"string","markdownDescription":"Directory where TypeScript server writes Node diagnostic output by passing `--diagnostic-dir`.","scope":"machine","keywords":["TypeScript","diagnostic","memory"]},"typescript.tsserver.maxTsServerMemory":{"type":"number","default":3072,"markdownDescription":"The maximum amount of memory (in MB) to allocate to the TypeScript server process. To use a memory limit greater than 4 GB, use `#js/ts.tsserver.node.path#` to run TS Server with a custom Node installation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.maxMemory#` instead.","scope":"window"},"js/ts.tsserver.heapSnapshot":{"type":"number","default":0,"minimum":0,"markdownDescription":"Controls how many near-heap-limit snapshots TypeScript server writes by passing `--heapsnapshot-near-heap-limit`. Set to `0` to disable.","scope":"window","keywords":["TypeScript","memory","diagnostics"]},"js/ts.tsserver.heapProfile":{"type":"object","default":{"enabled":false},"markdownDescription":"Configures heap profiling for TypeScript server.","scope":"machine","properties":{"enabled":{"type":"boolean","default":false,"description":"Enable heap profiling for TypeScript server by passing `--heap-prof`."},"dir":{"type":"string","description":"Directory where TypeScript server writes heap profiles by passing `--heap-prof-dir`."},"interval":{"type":"number","minimum":1,"description":"Sampling interval in bytes for TypeScript server heap profiling by passing `--heap-prof-interval`."}},"keywords":["TypeScript","memory","heap","profile"]},"js/ts.tsserver.watchOptions":{"description":"Configure which watching strategies should be used to keep track of files and directories.","scope":"window","default":"vscode","oneOf":[{"type":"string","const":"vscode","description":"Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace."},{"type":"object","properties":{"watchFile":{"type":"string","description":"Strategy for how individual files are watched.","enum":["fixedChunkSizePolling","fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling","useFsEvents","useFsEventsOnParentDirectory"],"enumDescriptions":["Polls files in chunks at regular interval.","Check every file for changes several times a second at a fixed interval.","Check every file for changes several times a second, but use heuristics to check certain types of files less frequently than others.","Use a dynamic queue where less-frequently modified files will be checked less often.","Attempt to use the operating system/file system's native events for file changes.","Attempt to use the operating system/file system's native events to listen for changes on a file's containing directories. This can use fewer file watchers, but might be less accurate."],"default":"useFsEvents"},"watchDirectory":{"type":"string","description":"Strategy for how entire directory trees are watched under systems that lack recursive file-watching functionality.","enum":["fixedChunkSizePolling","fixedPollingInterval","dynamicPriorityPolling","useFsEvents"],"enumDescriptions":["Polls directories in chunks at regular interval.","Check every directory for changes several times a second at a fixed interval.","Use a dynamic queue where less-frequently modified directories will be checked less often.","Attempt to use the operating system/file system's native events for directory changes."],"default":"useFsEvents"},"fallbackPolling":{"type":"string","description":"When using file system events, this option specifies the polling strategy that gets used when the system runs out of native file watchers and/or doesn't support native file watchers.","enum":["fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling"],"enumDescriptions":["configuration.tsserver.watchOptions.fallbackPolling.fixedPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.priorityPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.dynamicPriorityPolling"]},"synchronousWatchDirectory":{"type":"boolean","description":"Disable deferred watching on directories. Deferred watching is useful when lots of file changes might occur at once (e.g. a change in node_modules from running npm install), but you might want to disable it with this flag for some less-common setups."}}}],"keywords":["TypeScript"]},"typescript.tsserver.watchOptions":{"description":"Configure which watching strategies should be used to keep track of files and directories.","scope":"window","default":"vscode","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.watchOptions#` instead.","oneOf":[{"type":"string","const":"vscode","description":"Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace."},{"type":"object","properties":{"watchFile":{"type":"string","description":"Strategy for how individual files are watched.","enum":["fixedChunkSizePolling","fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling","useFsEvents","useFsEventsOnParentDirectory"],"enumDescriptions":["Polls files in chunks at regular interval.","Check every file for changes several times a second at a fixed interval.","Check every file for changes several times a second, but use heuristics to check certain types of files less frequently than others.","Use a dynamic queue where less-frequently modified files will be checked less often.","Attempt to use the operating system/file system's native events for file changes.","Attempt to use the operating system/file system's native events to listen for changes on a file's containing directories. This can use fewer file watchers, but might be less accurate."],"default":"useFsEvents"},"watchDirectory":{"type":"string","description":"Strategy for how entire directory trees are watched under systems that lack recursive file-watching functionality.","enum":["fixedChunkSizePolling","fixedPollingInterval","dynamicPriorityPolling","useFsEvents"],"enumDescriptions":["Polls directories in chunks at regular interval.","Check every directory for changes several times a second at a fixed interval.","Use a dynamic queue where less-frequently modified directories will be checked less often.","Attempt to use the operating system/file system's native events for directory changes."],"default":"useFsEvents"},"fallbackPolling":{"type":"string","description":"When using file system events, this option specifies the polling strategy that gets used when the system runs out of native file watchers and/or doesn't support native file watchers.","enum":["fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling"],"enumDescriptions":["configuration.tsserver.watchOptions.fallbackPolling.fixedPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.priorityPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.dynamicPriorityPolling"]},"synchronousWatchDirectory":{"type":"boolean","description":"Disable deferred watching on directories. Deferred watching is useful when lots of file changes might occur at once (e.g. a change in node_modules from running npm install), but you might want to disable it with this flag for some less-common setups."}}}]},"js/ts.tsserver.tracing.enabled":{"type":"boolean","default":false,"description":"Enables tracing TS server performance to a directory. These trace files can be used to diagnose TS Server performance issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.enableTracing":{"type":"boolean","default":false,"description":"Enables tracing TS server performance to a directory. These trace files can be used to diagnose TS Server performance issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.tracing.enabled#` instead.","scope":"window"},"js/ts.tsserver.log":{"type":"string","enum":["off","terse","normal","verbose","requestTime"],"default":"off","description":"Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.log":{"type":"string","enum":["off","terse","normal","verbose","requestTime"],"default":"off","description":"Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.log#` instead.","scope":"window"},"js/ts.tsserver.pluginPaths":{"type":"array","items":{"type":"string","description":"Either an absolute or relative path. Relative path will be resolved against workspace folder(s)."},"default":[],"description":"Additional paths to discover TypeScript Language Service plugins.","scope":"machine","keywords":["TypeScript"]},"typescript.tsserver.pluginPaths":{"type":"array","items":{"type":"string","description":"Either an absolute or relative path. Relative path will be resolved against workspace folder(s)."},"default":[],"description":"Additional paths to discover TypeScript Language Service plugins.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.pluginPaths#` instead.","scope":"machine"}}}],"commands":[{"command":"typescript.reloadProjects","title":"Reload Project","category":"TypeScript"},{"command":"javascript.reloadProjects","title":"Reload Project","category":"JavaScript"},{"command":"typescript.selectTypeScriptVersion","title":"Select TypeScript Version...","category":"TypeScript"},{"command":"typescript.goToProjectConfig","title":"Go to Project Configuration (tsconfig)","category":"TypeScript"},{"command":"javascript.goToProjectConfig","title":"Go to Project Configuration (jsconfig / tsconfig)","category":"JavaScript"},{"command":"typescript.openTsServerLog","title":"Open TS Server log","category":"TypeScript"},{"command":"typescript.restartTsServer","title":"Restart TS Server","category":"TypeScript"},{"command":"typescript.findAllFileReferences","title":"Find File References","category":"TypeScript"},{"command":"typescript.goToSourceDefinition","title":"Go to Source Definition","category":"TypeScript"},{"command":"typescript.sortImports","title":"Sort Imports","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"javascript.sortImports","title":"Sort Imports","category":"JavaScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"typescript.removeUnusedImports","title":"Remove Unused Imports","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"javascript.removeUnusedImports","title":"Remove Unused Imports","category":"JavaScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"typescript.experimental.enableTsgo","title":"Use TypeScript Go (Experimental)","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && config.typescript-go.executablePath"},{"command":"typescript.experimental.disableTsgo","title":"Stop using TypeScript Go (Experimental)","category":"TypeScript","enablement":"config.js/ts.experimental.useTsgo || config.typescript.experimental.useTsgo"}],"menus":{"commandPalette":[{"command":"typescript.reloadProjects","when":"editorLangId == typescript && typescript.isManagedFile"},{"command":"typescript.reloadProjects","when":"editorLangId == typescriptreact && typescript.isManagedFile"},{"command":"javascript.reloadProjects","when":"editorLangId == javascript && typescript.isManagedFile"},{"command":"javascript.reloadProjects","when":"editorLangId == javascriptreact && typescript.isManagedFile"},{"command":"typescript.goToProjectConfig","when":"editorLangId == typescript && typescript.isManagedFile"},{"command":"typescript.goToProjectConfig","when":"editorLangId == typescriptreact && typescript.isManagedFile"},{"command":"javascript.goToProjectConfig","when":"editorLangId == javascript && typescript.isManagedFile"},{"command":"javascript.goToProjectConfig","when":"editorLangId == javascriptreact && typescript.isManagedFile"},{"command":"typescript.selectTypeScriptVersion","when":"typescript.isManagedFile"},{"command":"typescript.openTsServerLog","when":"typescript.isManagedFile"},{"command":"typescript.restartTsServer","when":"typescript.isManagedFile"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && typescript.isManagedFile"},{"command":"typescript.goToSourceDefinition","when":"tsSupportsSourceDefinition && typescript.isManagedFile"},{"command":"typescript.sortImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.sortImports\\b/ && editorLangId =~ /^typescript(react)?$/"},{"command":"javascript.sortImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.sortImports\\b/ && editorLangId =~ /^javascript(react)?$/"},{"command":"typescript.removeUnusedImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.removeUnusedImports\\b/ && editorLangId =~ /^typescript(react)?$/"},{"command":"javascript.removeUnusedImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.removeUnusedImports\\b/ && editorLangId =~ /^javascript(react)?$/"}],"editor/context":[{"command":"typescript.goToSourceDefinition","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && tsSupportsSourceDefinition && (resourceLangId == typescript || resourceLangId == typescriptreact || resourceLangId == javascript || resourceLangId == javascriptreact)","group":"navigation@1.41"}],"explorer/context":[{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescript","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescriptreact","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascript","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascriptreact","group":"4_search"}],"editor/title/context":[{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascript"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascriptreact"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescript"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescriptreact"}]},"breakpoints":[{"language":"typescript"},{"language":"typescriptreact"}],"taskDefinitions":[{"type":"typescript","required":["tsconfig"],"properties":{"tsconfig":{"type":"string","description":"The tsconfig file that defines the TS build."},"option":{"type":"string"}},"when":"shellExecutionSupported"}],"problemPatterns":[{"name":"tsc","regexp":"^([^\\s].*)[\\(:](\\d+)[,:](\\d+)(?:\\):\\s+|\\s+-\\s+)(error|warning|info)\\s+TS(\\d+)\\s*:\\s*(.*)$","file":1,"line":2,"column":3,"severity":4,"code":5,"message":6}],"problemMatchers":[{"name":"tsc","label":"TypeScript problems","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc"},{"name":"tsgo-watch","label":"TypeScript problems (watch mode)","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc","background":{"activeOnStart":true,"beginsPattern":{"regexp":"^build starting at .*$"},"endsPattern":{"regexp":"^build finished in .*$"}}},{"name":"tsc-watch","label":"TypeScript problems (watch mode)","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc","background":{"activeOnStart":true,"beginsPattern":{"regexp":"^\\s*(?:message TS6032:|\\[?\\D*.{1,2}[:.].{1,2}[:.].{1,2}\\D*(├\\D*\\d{1,2}\\D+┤)?(?:\\]| -)) (Starting compilation in watch mode|File change detected\\. Starting incremental compilation)\\.\\.\\."},"endsPattern":{"regexp":"^\\s*(?:message TS6042:|\\[?\\D*.{1,2}[:.].{1,2}[:.].{1,2}\\D*(├\\D*\\d{1,2}\\D+┤)?(?:\\]| -)) (?:Compilation complete\\.|Found \\d+ errors?\\.) Watching for file changes\\."}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["workspaceTrust","multiDocumentHighlightProvider","codeActionAI","codeActionRanges","editorHoverVerbosityLevel"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/typescript-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vb"},"manifest":{"name":"vb","displayName":"Visual Basic Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Visual Basic files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/asp.vb.net.tmbundle Syntaxes/ASP%20VB.net.plist ./syntaxes/asp-vb-net.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"vb","extensions":[".vb",".brs",".vbs",".bas",".vba"],"aliases":["Visual Basic","vb"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"vb","scopeName":"source.asp.vb.net","path":"./syntaxes/asp-vb-net.tmLanguage.json"}],"snippets":[{"language":"vb","path":"./snippets/vb.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/vb","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.xml"},"manifest":{"name":"xml","displayName":"XML Language Basics","description":"Provides syntax highlighting and bracket matching in XML files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"xml","extensions":[".xml",".xsd",".ascx",".atom",".axml",".axaml",".bpmn",".cpt",".csl",".csproj",".csproj.user",".dita",".ditamap",".dtd",".ent",".mod",".dtml",".fsproj",".fxml",".iml",".isml",".jmx",".launch",".menu",".mxml",".nuspec",".opml",".owl",".proj",".props",".pt",".publishsettings",".pubxml",".pubxml.user",".rbxlx",".rbxmx",".rdf",".rng",".rss",".shproj",".slnx",".storyboard",".svg",".targets",".tld",".tmx",".vbproj",".vbproj.user",".vcxproj",".vcxproj.filters",".wixproj",".wsdl",".wxi",".wxl",".wxs",".xaml",".xbl",".xib",".xlf",".xliff",".xpdl",".xul",".xoml"],"firstLine":"(\\<\\?xml.*)|(\\{if(t&&typeof t=="object"||typeof t=="function")for(let n of l(t))!d.call(s,n)&&n!==e&&S(s,n,{get:()=>t[n],enumerable:!(o=f(t,n))||o.enumerable});return s};var _=(s,t,e)=>(e=s!=null?E(T(s)):{},C(t||!s||!s.__esModule?S(e,"default",{value:s,enumerable:!0}):e,s));var P=_(require("fs"));var h=_(require("http")),c=class{constructor(t){this.handlerName=t;let e=process.env.VSCODE_GIT_IPC_HANDLE;if(!e)throw new Error("Missing VSCODE_GIT_IPC_HANDLE");this.ipcHandlePath=e}handlerName;ipcHandlePath;call(t){let e={socketPath:this.ipcHandlePath,path:`/${this.handlerName}`,method:"POST"};return new Promise((o,n)=>{let p=h.request(e,r=>{if(r.statusCode!==200)return n(new Error(`Bad status code: ${r.statusCode}`));let a=[];r.on("data",u=>a.push(u)),r.on("end",()=>o(JSON.parse(Buffer.concat(a).toString("utf8"))))});p.on("error",r=>n(r)),p.write(JSON.stringify(t)),p.end()})}};function i(s){console.error("Missing or invalid credentials."),console.error(s),process.exit(1)}function v(s){if(!process.env.VSCODE_GIT_ASKPASS_PIPE)return i("Missing pipe");if(!process.env.VSCODE_GIT_ASKPASS_TYPE)return i("Missing type");if(process.env.VSCODE_GIT_ASKPASS_TYPE!=="https"&&process.env.VSCODE_GIT_ASKPASS_TYPE!=="ssh")return i(`Invalid type: ${process.env.VSCODE_GIT_ASKPASS_TYPE}`);if(process.env.VSCODE_GIT_COMMAND==="fetch"&&process.env.VSCODE_GIT_FETCH_SILENT)return i("Skip silent fetch commands");let t=process.env.VSCODE_GIT_ASKPASS_PIPE,e=process.env.VSCODE_GIT_ASKPASS_TYPE;new c("askpass").call({askpassType:e,argv:s}).then(n=>{P.writeFileSync(t,n+` +`),setTimeout(()=>process.exit(0),0)}).catch(n=>i(n))}v(process.argv); +//# sourceMappingURL=askpass-main.js.map diff --git a/Extension/artifacts/progress-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh b/Extension/artifacts/progress-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh new file mode 100644 index 000000000..93a08c389 --- /dev/null +++ b/Extension/artifacts/progress-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh @@ -0,0 +1,5 @@ +#!/bin/sh +VSCODE_GIT_ASKPASS_PIPE=`mktemp` +ELECTRON_RUN_AS_NODE="1" VSCODE_GIT_ASKPASS_PIPE="$VSCODE_GIT_ASKPASS_PIPE" VSCODE_GIT_ASKPASS_TYPE="https" "$VSCODE_GIT_ASKPASS_NODE" "$VSCODE_GIT_ASKPASS_MAIN" $VSCODE_GIT_ASKPASS_EXTRA_ARGS $* +cat $VSCODE_GIT_ASKPASS_PIPE +rm $VSCODE_GIT_ASKPASS_PIPE diff --git a/Extension/artifacts/progress-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh b/Extension/artifacts/progress-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh new file mode 100644 index 000000000..8fb014e5c --- /dev/null +++ b/Extension/artifacts/progress-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh @@ -0,0 +1,2 @@ +#!/bin/sh +echo '' \ No newline at end of file diff --git a/Extension/artifacts/progress-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh b/Extension/artifacts/progress-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh new file mode 100644 index 000000000..dca45bc84 --- /dev/null +++ b/Extension/artifacts/progress-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh @@ -0,0 +1,5 @@ +#!/bin/sh +VSCODE_GIT_ASKPASS_PIPE=`mktemp` +ELECTRON_RUN_AS_NODE="1" VSCODE_GIT_ASKPASS_PIPE="$VSCODE_GIT_ASKPASS_PIPE" VSCODE_GIT_ASKPASS_TYPE="ssh" "$VSCODE_GIT_ASKPASS_NODE" "$VSCODE_GIT_ASKPASS_MAIN" $VSCODE_GIT_ASKPASS_EXTRA_ARGS $* +cat $VSCODE_GIT_ASKPASS_PIPE +rm $VSCODE_GIT_ASKPASS_PIPE diff --git a/Extension/artifacts/progress-host/user/User/settings.json b/Extension/artifacts/progress-host/user/User/settings.json new file mode 100644 index 000000000..cbf13a783 --- /dev/null +++ b/Extension/artifacts/progress-host/user/User/settings.json @@ -0,0 +1 @@ +{"workbench.startupEditor":"none","window.restoreWindows":"none","workbench.colorTheme":"Dark Modern"} \ No newline at end of file diff --git a/Extension/artifacts/progress-host/user/User/workspaceStorage/f2dd3e803989e84d449700258c46ff45/meta.json b/Extension/artifacts/progress-host/user/User/workspaceStorage/f2dd3e803989e84d449700258c46ff45/meta.json new file mode 100644 index 000000000..7bc95eda1 --- /dev/null +++ b/Extension/artifacts/progress-host/user/User/workspaceStorage/f2dd3e803989e84d449700258c46ff45/meta.json @@ -0,0 +1,4 @@ +{ + "id": "f2dd3e803989e84d449700258c46ff45", + "name": "project" +} \ No newline at end of file diff --git a/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/59b6767e93a85a33_0 b/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/59b6767e93a85a33_0 new file mode 100644 index 000000000..33fec49e1 Binary files /dev/null and b/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/59b6767e93a85a33_0 differ diff --git a/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/a1fc5a00aa54504c_0 b/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/a1fc5a00aa54504c_0 new file mode 100644 index 000000000..af43eda63 Binary files /dev/null and b/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/a1fc5a00aa54504c_0 differ diff --git a/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/da95c0f23032e34b_0 b/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/da95c0f23032e34b_0 new file mode 100644 index 000000000..f6bf4634e Binary files /dev/null and b/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/da95c0f23032e34b_0 differ diff --git a/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/index b/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/index differ diff --git a/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/index-dir/the-real-index b/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/index-dir/the-real-index new file mode 100644 index 000000000..bd9e8d668 Binary files /dev/null and b/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/05f0dfb1-0d8b-4495-9d65-bef2a250badc/index-dir/the-real-index differ diff --git a/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/index.txt b/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/index.txt new file mode 100644 index 000000000..f56cf1bb1 Binary files /dev/null and b/Extension/artifacts/progress-host/user/WebStorage/1/CacheStorage/index.txt differ diff --git a/Extension/artifacts/progress-host/user/WebStorage/QuotaManager b/Extension/artifacts/progress-host/user/WebStorage/QuotaManager new file mode 100644 index 000000000..17b0d4f75 Binary files /dev/null and b/Extension/artifacts/progress-host/user/WebStorage/QuotaManager differ diff --git a/Extension/artifacts/progress-host/user/WebStorage/QuotaManager-journal b/Extension/artifacts/progress-host/user/WebStorage/QuotaManager-journal new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/languagepacks.json b/Extension/artifacts/progress-host/user/languagepacks.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/progress-host/user/languagepacks.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/agenthost.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/agenthost.log new file mode 100644 index 000000000..e456c9e8f --- /dev/null +++ b/Extension/artifacts/progress-host/user/logs/20260910T075150/agenthost.log @@ -0,0 +1,31 @@ +2026-09-10 07:51:52.249 [info] Agent Host process started successfully +2026-09-10 07:51:52.262 [info] AgentService initialized +2026-09-10 07:51:52.268 [info] Registering agent provider: copilotcli +2026-09-10 07:51:52.270 [info] Registering agent provider: claude +2026-09-10 07:51:52.287 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 07:51:52.287 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 07:51:52.300 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 07:51:52.304 [info] [Claude] Models refreshed (merged). Count: 0, +2026-09-10 07:51:52.305 [info] [ProtocolServer] Initialize: clientId=98d17c13-03a1-4c07-a464-883beeacd2ff, protocolVersions=[0.9.0, 0.7.0, 0.6.0, 0.5.2, 0.5.1] +2026-09-10 07:51:52.332 [info] [AgentService] showExternalSessions changed 'none' -> 'recent'; queueing session list reconciliation +2026-09-10 07:51:52.353 [info] [CommandAutoApprover] Tree-sitter initialized (bash=available, powershell=available) +2026-09-10 07:51:52.371 [info] [Copilot] Listing chats to migrate... +2026-09-10 07:51:52.372 [info] [Copilot] Starting CopilotClient... +2026-09-10 07:51:52.373 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-10 07:51:52.375 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\645f29cc31\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-10 07:51:52.438 [info] [Claude] SDK not downloaded yet; deferring the migratable chat list +2026-09-10 07:51:52.626 [info] [WebSocketProtocol] Server listening on socket \\.\pipe\vscode-agent-host-de47db83b8caf353bd0b8964640e0513ee98012b3451fdbf6f4fb6304c51a900-W--GVXGXPgO8UiJ68pHv9Q +2026-09-10 07:51:53.145 [info] [Copilot] CopilotClient started successfully +2026-09-10 07:51:53.148 [info] [Copilot] Listed 0 SDK session(s) for chats to migrate +2026-09-10 07:51:53.148 [info] [Copilot] Found 0 legacy sessions +2026-09-10 07:51:53.156 [info] [Copilot] Listing discoverable chats... +2026-09-10 07:51:53.157 [info] [Copilot] Listed 0 SDK session(s) for discoverable chats +2026-09-10 07:51:53.158 [info] [AgentService] pruned 0 stale external session row(s) older than 30 days +2026-09-10 07:51:53.159 [info] [Copilot] Chat discovery: 0 SDK session(s) -> 0 external, 0 adoptable legacy extension-host, 0 suppressed adoptable legacy extension-host, 0 suppressed archived legacy extension-host, 0 already known to Agent Host, 0 without a working directory, 0 with unsupported or missing client name, 0 outside the import window, 0 without repository metadata, 0 failed to classify (adopt legacy extension-host chats: false) +2026-09-10 07:51:53.159 [info] [Claude] SDK not downloaded yet; deferring chat discovery +2026-09-10 07:51:53.337 [info] [Copilot] Restarting CopilotClient (CAPI proxy configuration changed (proxy (none) -> http://127.0.0.1:7890)) +2026-09-10 07:51:58.523 [info] [ProtocolServer] Client disconnected: 98d17c13-03a1-4c07-a464-883beeacd2ff, subscriptions=1 +2026-09-10 07:51:58.524 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 07:51:58.524 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 07:51:58.525 [info] AgentService: shutting down all providers... +2026-09-10 07:51:58.525 [info] [Copilot] Shutting down... diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/editSessions.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/editSessions.log new file mode 100644 index 000000000..b7e50e0f7 --- /dev/null +++ b/Extension/artifacts/progress-host/user/logs/20260910T075150/editSessions.log @@ -0,0 +1 @@ +2026-09-10 07:51:53.284 [info] Prompting to enable cloud changes, has application previously launched from Continue On flow: false diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/main.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/main.log new file mode 100644 index 000000000..b948292d6 --- /dev/null +++ b/Extension/artifacts/progress-host/user/logs/20260910T075150/main.log @@ -0,0 +1,12 @@ +2026-09-10 07:51:51.079 [info] StorageMainService: creating application shared storage +2026-09-10 07:51:51.079 [info] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +2026-09-10 07:51:51.079 [info] [shared storage] Initializing fallback application storage (path: in-memory) +2026-09-10 07:51:51.079 [error] Error: Error mutex already exists + at Ks.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/out/main.js:561:27488) +2026-09-10 07:51:51.091 [info] [shared storage] Fallback application storage initialized with 3 items +2026-09-10 07:51:51.867 [info] update#setState idle +2026-09-10 07:51:51.891 [info] AgentHostProcessManager: agent host started +2026-09-10 07:51:52.308 [error] [AgentHost:stderr] (node:29796) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +2026-09-10 07:51:58.539 [info] Extension host with pid 18204 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/mcpGateway.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/mcpGateway.log new file mode 100644 index 000000000..a71e061d3 --- /dev/null +++ b/Extension/artifacts/progress-host/user/logs/20260910T075150/mcpGateway.log @@ -0,0 +1 @@ +2026-09-10 07:51:51.086 [info] [McpGatewayService] Initialized diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/network-shared.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/network-shared.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/remoteTunnelService.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/remoteTunnelService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/sharedprocess.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/sharedprocess.log new file mode 100644 index 000000000..c343cd670 --- /dev/null +++ b/Extension/artifacts/progress-host/user/logs/20260910T075150/sharedprocess.log @@ -0,0 +1,2 @@ +2026-09-10 07:51:52.420 [info] Started initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/progress-host/extensions +2026-09-10 07:51:52.467 [info] Completed initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/progress-host/extensions diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/telemetry.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/telemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/terminal.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/terminal.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/userDataSync.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/userDataSync.log new file mode 100644 index 000000000..bbd455c42 --- /dev/null +++ b/Extension/artifacts/progress-host/user/logs/20260910T075150/userDataSync.log @@ -0,0 +1,2 @@ +2026-09-10 07:51:52.408 [info] [AutoSync] Using settings sync service https://vscode-sync.trafficmanager.net/ +2026-09-10 07:51:52.408 [info] [AutoSync] Disabled. diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/extHostTelemetry.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/extHostTelemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/exthost.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/exthost.log new file mode 100644 index 000000000..4c0d951a1 --- /dev/null +++ b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/exthost.log @@ -0,0 +1,42 @@ +2026-09-10 07:51:52.753 [info] Extension host with pid 18204 started +2026-09-10 07:51:52.753 [info] Skipping acquiring lock for i:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\user\User\workspaceStorage\f2dd3e803989e84d449700258c46ff45. +2026-09-10 07:51:52.853 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github' +2026-09-10 07:51:52.878 [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onLanguage' +2026-09-10 07:51:52.898 [info] ExtensionService#_doActivateExtension vscode.configuration-editing, startup: false, activationEvent: 'onLanguage:jsonc' +2026-09-10 07:51:52.907 [info] ExtensionService#_doActivateExtension vscode.json-language-features, startup: false, activationEvent: 'onLanguage:jsonc' +2026-09-10 07:51:52.991 [info] ExtensionService#_doActivateExtension vscode.typescript-language-features, startup: false, activationEvent: 'onLanguage:jsonc' +2026-09-10 07:51:53.132 [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.git +2026-09-10 07:51:53.247 [info] ExtensionService#_doActivateExtension vscode.git, startup: true, activationEvent: '*' +2026-09-10 07:51:53.285 [info] ExtensionService#_doActivateExtension vscode.github, startup: true, activationEvent: '*' +2026-09-10 07:51:53.394 [info] ExtensionService#_doActivateExtension hornet.hornet-cpp, startup: true, activationEvent: 'workspaceContains:**/CMakeLists.txt,**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}' +2026-09-10 07:51:53.665 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.openRepositoryInParentFolders', provide the URI of a resource or 'null' for any resource. +2026-09-10 07:51:53.665 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.showProgress', provide the URI of a resource or 'null' for any resource. +2026-09-10 07:51:53.684 [info] Eager extensions activated +2026-09-10 07:51:53.696 [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 07:51:53.699 [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 07:51:57.410 [warning] hornet.hornet-cpp created a webview without a content security policy: https://aka.ms/vscode-webview-missing-csp +2026-09-10 07:51:58.430 [warning] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'search.useIgnoreFiles', provide the URI of a resource or 'null' for any resource. +2026-09-10 07:51:58.430 [warning] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'search.useIgnoreFiles', provide the URI of a resource or 'null' for any resource. +2026-09-10 07:51:58.510 [info] Extension host terminating: received terminate message from renderer +2026-09-10 07:51:58.521 [error] Unable to refresh tree view hornet-cpp.callGraph: Canceled +2026-09-10 07:51:58.523 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14118:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12062:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 07:51:58.529 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14118:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12062:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 07:51:58.538 [info] Extension host with pid 18204 exiting with code 0 diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/output_logging_20260910T075152/1-Hornet CC++.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/output_logging_20260910T075152/1-Hornet CC++.log new file mode 100644 index 000000000..db1e2f265 --- /dev/null +++ b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/output_logging_20260910T075152/1-Hornet CC++.log @@ -0,0 +1,213 @@ +Hornet C/C++ 0.1.8 (i:\BackFile\code\hornet-cpptools\Extension) +[2026-09-10T14:51:53.442Z] [project] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T14:51:53.470Z] [project] [Compiler] [Index] Discovering C/C++ sources and compile commands +[2026-09-10T14:51:53.473Z] [project] [Compiler] [Index] Starting clangd for 2 source files +[2026-09-10T14:51:53.473Z] [project] [Compiler] No compilation database: inferred browsing commands for 2 source files. Build flags and macros may still be incomplete. +[2026-09-10T14:51:53.474Z] [project] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T14:51:53.523Z] [project] [Compiler] I[07:51:53.524] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[07:51:53.525] Features: windows+grpc +I[07:51:53.525] PID: 5988 +I[07:51:53.525] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project +I[07:51:53.525] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[07:51:53.525] argv[1]: --background-index +I[07:51:53.525] argv[2]: --enable-config=0 +I[07:51:53.525] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\.vscode\hornet\compile-db\fallback +I[07:51:53.525] argv[4]: -j=10 +[2026-09-10T14:51:53.524Z] [project] [Compiler] I[07:51:53.525] Starting LSP over stdin/stdout +[2026-09-10T14:51:53.524Z] [project] [Compiler] I[07:51:53.525] <-- initialize(0) +[2026-09-10T14:51:53.543Z] [project] [Compiler] I[07:51:53.544] --> reply:initialize(0) 19 ms +[2026-09-10T14:51:53.544Z] [project] [Compiler] Compiler ready +[2026-09-10T14:51:53.547Z] [project] [Compiler] [Index] Loading compilation database (2 source files) +[2026-09-10T14:51:53.547Z] [project] [Compiler] [Index] Parsing I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\a.cpp +[2026-09-10T14:51:53.549Z] [project] [Compiler] I[07:51:53.546] <-- initialized +[2026-09-10T14:51:53.549Z] [project] [Compiler] I[07:51:53.551] <-- textDocument/didOpen +[2026-09-10T14:51:53.550Z] [project] [Compiler] I[07:51:53.551] <-- textDocument/documentSymbol(1) +[2026-09-10T14:51:53.550Z] [project] [Compiler] I[07:51:53.551] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\.vscode\hornet\compile-db\fallback\compile_commands.json +[2026-09-10T14:51:53.550Z] [project] [Compiler] I[07:51:53.551] --> window/workDoneProgress/create(0) +I[07:51:53.551] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project\\a.cpp" +I[07:51:53.551] Enqueueing 2 commands for indexing +[2026-09-10T14:51:53.551Z] [project] [Compiler] I[07:51:53.552] <-- reply(0) +I[07:51:53.552] --> $/progress +I[07:51:53.552] --> $/progress +[2026-09-10T14:51:53.552Z] [project] [Compiler] [Index] Building project index (0%) +[2026-09-10T14:51:53.552Z] [project] [Compiler] [Index] 0/1 (0%) +[2026-09-10T14:51:53.557Z] [project] [Compiler] I[07:51:53.558] --> $/progress +I[07:51:53.558] --> $/progress +I[07:51:53.558] --> $/progress +I[07:51:53.558] --> $/progress +[2026-09-10T14:51:53.557Z] [project] [Compiler] [Index] 0/3 (0%) +[2026-09-10T14:51:53.557Z] [project] [Compiler] [Index] 1/3 (33%) +[2026-09-10T14:51:53.565Z] [project] [Compiler] I[07:51:53.567] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\a.cpp (1 symbols, 1 refs, 1 files) +I[07:51:53.567] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\b.cpp (2 symbols, 3 refs, 1 files) +[2026-09-10T14:51:53.573Z] [project] [Compiler] I[07:51:53.574] --> $/progress +I[07:51:53.574] --> $/progress +I[07:51:53.574] Built preamble of size 266888 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\a.cpp version 0 in 0.01 seconds +[2026-09-10T14:51:53.574Z] [project] [Compiler] [Index] 2/3 (66%) +[2026-09-10T14:51:53.574Z] [project] [Compiler] [Index] Background indexing finished; waiting for pending work +[2026-09-10T14:51:53.593Z] [project] [Compiler] I[07:51:53.595] --> textDocument/publishDiagnostics +[2026-09-10T14:51:53.594Z] [project] [Compiler] I[07:51:53.595] --> reply:textDocument/documentSymbol(1) 43 ms +[2026-09-10T14:51:53.595Z] [project] [Compiler] I[07:51:53.597] <-- textDocument/documentSymbol(2) +I[07:51:53.597] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T14:51:53.596Z] [project] [Compiler] [Index] Checking background work and cached index +[2026-09-10T14:51:53.727Z] [project] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T14:51:53.730Z] [project] [Compiler] I[07:51:53.731] <-- shutdown(3) +I[07:51:53.731] --> reply:shutdown(3) 0 ms +[2026-09-10T14:51:53.737Z] [project] [Compiler] I[07:51:53.731] <-- exit +I[07:51:53.731] LSP finished, exiting with status 0 +[2026-09-10T14:51:53.743Z] [project] [Compiler] [Index] Discovering C/C++ sources and compile commands +[2026-09-10T14:51:53.746Z] [project] [Compiler] [Index] Starting clangd for 3 source files +[2026-09-10T14:51:53.746Z] [project] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T14:51:53.747Z] [project] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T14:51:53.796Z] [project] [Compiler] I[07:51:53.796] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[07:51:53.797] Features: windows+grpc +I[07:51:53.797] PID: 7208 +I[07:51:53.797] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project +I[07:51:53.797] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[07:51:53.797] argv[1]: --background-index +I[07:51:53.797] argv[2]: --enable-config=0 +I[07:51:53.797] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\.vscode\hornet\compile-db\fallback +I[07:51:53.797] argv[4]: -j=10 +I[07:51:53.797] Starting LSP over stdin/stdout +[2026-09-10T14:51:53.796Z] [project] [Compiler] I[07:51:53.797] <-- initialize(0) +[2026-09-10T14:51:53.813Z] [project] [Compiler] I[07:51:53.814] --> reply:initialize(0) 16 ms +[2026-09-10T14:51:53.813Z] [project] [Compiler] Index build: Error: Index build interrupted by a language-service restart. +[2026-09-10T14:51:53.813Z] [project] [Compiler] Compiler ready +[2026-09-10T14:51:53.815Z] [project] [Compiler] [Index] Loading compilation database (3 source files) +[2026-09-10T14:51:53.816Z] [project] [Compiler] [Index] Parsing I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\a.cpp +[2026-09-10T14:51:53.817Z] [project] [Compiler] I[07:51:53.815] <-- initialized +[2026-09-10T14:51:53.817Z] [project] [Compiler] I[07:51:53.818] <-- textDocument/didOpen +[2026-09-10T14:51:53.817Z] [project] [Compiler] I[07:51:53.819] <-- textDocument/documentSymbol(1) +[2026-09-10T14:51:53.818Z] [project] [Compiler] I[07:51:53.819] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\.vscode\hornet\compile-db\fallback\compile_commands.json +[2026-09-10T14:51:53.818Z] [project] [Compiler] I[07:51:53.819] --> window/workDoneProgress/create(0) +I[07:51:53.819] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project\\a.cpp" +I[07:51:53.819] Enqueueing 3 commands for indexing +[2026-09-10T14:51:53.819Z] [project] [Compiler] I[07:51:53.820] <-- reply(0) +I[07:51:53.820] --> $/progress +I[07:51:53.820] --> $/progress +[2026-09-10T14:51:53.819Z] [project] [Compiler] [Index] Building project index (0%) +[2026-09-10T14:51:53.820Z] [project] [Compiler] [Index] 0/1 (0%) +[2026-09-10T14:51:53.824Z] [project] [Compiler] I[07:51:53.825] --> $/progress +I[07:51:53.825] --> $/progress +[2026-09-10T14:51:53.824Z] [project] [Compiler] I[07:51:53.825] --> $/progress +[2026-09-10T14:51:53.824Z] [project] [Compiler] [Index] 0/2 (0%) +[2026-09-10T14:51:53.825Z] [project] [Compiler] [Index] 1/2 (50%) +[2026-09-10T14:51:53.831Z] [project] [Compiler] I[07:51:53.832] Indexed I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\new.cpp (1 symbols, 1 refs, 1 files) +[2026-09-10T14:51:53.837Z] [project] [Compiler] I[07:51:53.838] --> $/progress +[2026-09-10T14:51:53.837Z] [project] [Compiler] [Index] Background indexing finished; waiting for pending work +[2026-09-10T14:51:53.839Z] [project] [Compiler] I[07:51:53.840] Built preamble of size 266888 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\a.cpp version 0 in 0.01 seconds +[2026-09-10T14:51:53.862Z] [project] [Compiler] I[07:51:53.863] --> textDocument/publishDiagnostics +I[07:51:53.863] --> reply:textDocument/documentSymbol(1) 44 ms +[2026-09-10T14:51:53.863Z] [project] [Compiler] I[07:51:53.864] <-- textDocument/documentSymbol(2) +[2026-09-10T14:51:53.863Z] [project] [Compiler] I[07:51:53.864] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T14:51:53.863Z] [project] [Compiler] [Index] Checking background work and cached index +[2026-09-10T14:51:53.884Z] [project] [Compiler] I[07:51:53.885] <-- workspace/didChangeWatchedFiles +I[07:51:53.885] <-- workspace/didChangeWatchedFiles +[2026-09-10T14:51:54.751Z] [project] [Compiler] [Index] Checking background work and cached index +[2026-09-10T14:51:55.408Z] [project] [Compiler] Index ready: 3 source files (cached for next startup) +[2026-09-10T14:51:55.408Z] [project] [Compiler] [Index] Index ready: 3 source files (cached for next startup) (100%) +[2026-09-10T14:51:55.415Z] [project] [Compiler] I[07:51:55.416] <-- workspace/symbol(3) +[2026-09-10T14:51:55.416Z] [project] [Compiler] I[07:51:55.417] --> reply:workspace/symbol(3) 0 ms +[2026-09-10T14:51:55.426Z] [project] [Compiler] Compilation database: 0 files from 0 sources +[2026-09-10T14:51:55.428Z] [project] [Compiler] I[07:51:55.429] <-- shutdown(4) +I[07:51:55.429] --> reply:shutdown(4) 0 ms +[2026-09-10T14:51:55.435Z] [project] [Compiler] I[07:51:55.430] <-- exit +I[07:51:55.430] LSP finished, exiting with status 0 +[2026-09-10T14:51:55.440Z] [project] [Compiler] [Index] Discovering C/C++ sources and compile commands +[2026-09-10T14:51:55.442Z] [project] [Compiler] [Index] Starting clangd for 3 source files +[2026-09-10T14:51:55.442Z] [project] [Compiler] No compilation database: inferred browsing commands for 3 source files. Build flags and macros may still be incomplete. +[2026-09-10T14:51:55.443Z] [project] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T14:51:55.496Z] [project] [Compiler] I[07:51:55.497] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[07:51:55.497] Features: windows+grpc +I[07:51:55.497] PID: 25744 +I[07:51:55.497] Working directory: i:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project +I[07:51:55.497] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[07:51:55.497] argv[1]: --background-index +I[07:51:55.497] argv[2]: --enable-config=0 +I[07:51:55.497] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\.vscode\hornet\compile-db\fallback +I[07:51:55.497] argv[4]: -j=10 +[2026-09-10T14:51:55.496Z] [project] [Compiler] I[07:51:55.497] Starting LSP over stdin/stdout +I[07:51:55.498] <-- initialize(0) +[2026-09-10T14:51:55.518Z] [project] [Compiler] I[07:51:55.519] --> reply:initialize(0) 21 ms +[2026-09-10T14:51:55.519Z] [project] [Compiler] Compiler ready +[2026-09-10T14:51:55.520Z] [project] [Compiler] [Index] Loading compilation database (3 source files) +[2026-09-10T14:51:55.521Z] [project] [Compiler] [Index] Parsing I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\a.cpp +[2026-09-10T14:51:55.523Z] [project] [Compiler] I[07:51:55.520] <-- initialized +[2026-09-10T14:51:55.523Z] [project] [Compiler] I[07:51:55.524] <-- textDocument/didOpen +[2026-09-10T14:51:55.523Z] [project] [Compiler] I[07:51:55.525] <-- textDocument/documentSymbol(1) +[2026-09-10T14:51:55.524Z] [project] [Compiler] I[07:51:55.525] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\.vscode\hornet\compile-db\fallback\compile_commands.json +I[07:51:55.525] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\a.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project\\a.cpp" +[2026-09-10T14:51:55.524Z] [project] [Compiler] I[07:51:55.525] --> window/workDoneProgress/create(0) +I[07:51:55.525] Enqueueing 3 commands for indexing +[2026-09-10T14:51:55.524Z] [project] [Compiler] I[07:51:55.526] <-- reply(0) +I[07:51:55.526] --> $/progress +I[07:51:55.526] --> $/progress +[2026-09-10T14:51:55.525Z] [project] [Compiler] [Index] Building project index (0%) +[2026-09-10T14:51:55.525Z] [project] [Compiler] [Index] 0/1 (0%) +[2026-09-10T14:51:55.531Z] [project] [Compiler] I[07:51:55.532] --> $/progress +I[07:51:55.532] --> $/progress +[2026-09-10T14:51:55.531Z] [project] [Compiler] [Index] Background indexing finished; waiting for pending work +[2026-09-10T14:51:55.547Z] [project] [Compiler] I[07:51:55.548] Built preamble of size 266888 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\a.cpp version 0 in 0.01 seconds +[2026-09-10T14:51:55.568Z] [project] [Compiler] I[07:51:55.569] --> textDocument/publishDiagnostics +I[07:51:55.569] --> reply:textDocument/documentSymbol(1) 44 ms +[2026-09-10T14:51:55.569Z] [project] [Compiler] I[07:51:55.570] <-- textDocument/documentSymbol(2) +I[07:51:55.571] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T14:51:55.569Z] [project] [Compiler] [Index] Checking background work and cached index +[2026-09-10T14:51:56.546Z] [project] [Compiler] [Index] Checking background work and cached index +[2026-09-10T14:51:57.100Z] [project] [Compiler] Index ready: 3 source files (cached for next startup) +[2026-09-10T14:51:57.100Z] [project] [Compiler] [Index] Index ready: 3 source files (cached for next startup) (100%) +[2026-09-10T14:51:57.111Z] [project] [Compiler] I[07:51:57.112] <-- textDocument/didChange +[2026-09-10T14:51:57.140Z] [project] [Compiler] I[07:51:57.142] <-- textDocument/documentSymbol(3) +[2026-09-10T14:51:57.141Z] [project] [Compiler] I[07:51:57.142] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\a.cpp version 1 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project\\a.cpp" +[2026-09-10T14:51:57.151Z] [project] [Compiler] I[07:51:57.152] --> reply:textDocument/documentSymbol(3) 10 ms +[2026-09-10T14:51:57.157Z] [project] [Compiler] I[07:51:57.159] <-- textDocument/prepareCallHierarchy(4) +[2026-09-10T14:51:57.158Z] [project] [Compiler] I[07:51:57.159] --> reply:textDocument/prepareCallHierarchy(4) 0 ms +[2026-09-10T14:51:57.234Z] [project] [Compiler] I[07:51:57.235] <-- textDocument/didOpen +[2026-09-10T14:51:57.234Z] [project] [Compiler] I[07:51:57.235] <-- textDocument/didOpen +I[07:51:57.236] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\b.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project\\b.cpp" +[2026-09-10T14:51:57.235Z] [project] [Compiler] I[07:51:57.236] ASTWorker building file I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\new.cpp version 0 with command +[I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project] +"D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\bin\\clang++" --driver-mode=g++ "-II:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\hornet-cpptools\\Extension\\artifacts\\progress-host\\project\\new.cpp" +[2026-09-10T14:51:57.235Z] [project] [Compiler] I[07:51:57.236] <-- textDocument/documentSymbol(5) +[2026-09-10T14:51:57.235Z] [project] [Compiler] I[07:51:57.236] <-- textDocument/documentSymbol(6) +[2026-09-10T14:51:57.254Z] [project] [Compiler] I[07:51:57.255] Built preamble of size 266896 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\new.cpp version 0 in 0.01 seconds +[2026-09-10T14:51:57.256Z] [project] [Compiler] I[07:51:57.257] Built preamble of size 266888 for file I:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\project\b.cpp version 0 in 0.01 seconds +[2026-09-10T14:51:57.263Z] [project] [Compiler] I[07:51:57.265] <-- textDocument/inlayHint(7) +[2026-09-10T14:51:57.264Z] [project] [Compiler] I[07:51:57.265] --> reply:textDocument/inlayHint(7) 0 ms +[2026-09-10T14:51:57.277Z] [project] [Compiler] I[07:51:57.278] --> textDocument/publishDiagnostics +[2026-09-10T14:51:57.277Z] [project] [Compiler] I[07:51:57.278] --> reply:textDocument/documentSymbol(5) 41 ms +[2026-09-10T14:51:57.278Z] [project] [Compiler] I[07:51:57.279] --> textDocument/publishDiagnostics +I[07:51:57.279] --> reply:textDocument/documentSymbol(6) 42 ms +[2026-09-10T14:51:57.279Z] [project] [Compiler] I[07:51:57.281] <-- textDocument/documentSymbol(8) +[2026-09-10T14:51:57.279Z] [project] [Compiler] I[07:51:57.281] --> reply:textDocument/documentSymbol(8) 0 ms +I[07:51:57.281] <-- textDocument/documentSymbol(9) +[2026-09-10T14:51:57.280Z] [project] [Compiler] I[07:51:57.281] --> reply:textDocument/documentSymbol(9) 0 ms +[2026-09-10T14:51:57.280Z] [project] [Compiler] I[07:51:57.281] <-- textDocument/references(10) +[2026-09-10T14:51:57.280Z] [project] [Compiler] I[07:51:57.281] <-- callHierarchy/outgoingCalls(11) +I[07:51:57.281] --> reply:textDocument/references(10) 0 ms +[2026-09-10T14:51:57.281Z] [project] [Compiler] I[07:51:57.282] --> reply:callHierarchy/outgoingCalls(11) 0 ms +[2026-09-10T14:51:57.281Z] [project] [Compiler] I[07:51:57.282] <-- callHierarchy/incomingCalls(12) +[2026-09-10T14:51:57.281Z] [project] [Compiler] I[07:51:57.283] --> reply:callHierarchy/incomingCalls(12) 0 ms +[2026-09-10T14:51:57.283Z] [project] [Compiler] I[07:51:57.284] <-- textDocument/documentSymbol(13) +[2026-09-10T14:51:57.283Z] [project] [Compiler] I[07:51:57.284] --> reply:textDocument/documentSymbol(13) 0 ms +[2026-09-10T14:51:57.284Z] [project] [Compiler] I[07:51:57.285] <-- textDocument/references(14) +[2026-09-10T14:51:57.284Z] [project] [Compiler] I[07:51:57.285] --> reply:textDocument/references(14) 0 ms +[2026-09-10T14:51:57.284Z] [project] [Compiler] I[07:51:57.285] <-- callHierarchy/incomingCalls(15) +[2026-09-10T14:51:57.284Z] [project] [Compiler] I[07:51:57.286] --> reply:callHierarchy/incomingCalls(15) 0 ms +[2026-09-10T14:51:57.457Z] [project] [Compiler] I[07:51:57.459] <-- textDocument/foldingRange(16) +[2026-09-10T14:51:57.458Z] [project] [Compiler] I[07:51:57.459] --> reply:textDocument/foldingRange(16) 0 ms +[2026-09-10T14:51:57.460Z] [project] [Compiler] I[07:51:57.461] <-- textDocument/inlayHint(17) +I[07:51:57.461] --> reply:textDocument/inlayHint(17) 0 ms +[2026-09-10T14:51:57.468Z] [project] [Compiler] I[07:51:57.470] <-- textDocument/foldingRange(18) +[2026-09-10T14:51:57.469Z] [project] [Compiler] I[07:51:57.470] --> reply:textDocument/foldingRange(18) 0 ms +[2026-09-10T14:51:57.582Z] [project] [Compiler] I[07:51:57.583] <-- textDocument/semanticTokens/full(19) +[2026-09-10T14:51:57.582Z] [project] [Compiler] I[07:51:57.583] --> reply:textDocument/semanticTokens/full(19) 0 ms diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/vscode.git/Git.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/vscode.git/Git.log new file mode 100644 index 000000000..dd5da0c9f --- /dev/null +++ b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/vscode.git/Git.log @@ -0,0 +1,18 @@ +2026-09-10 07:51:53.436 [info] [main] Log level: Info +2026-09-10 07:51:53.436 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 07:51:53.436 [info] [main] Validating found git in: "C:\Program Files (x86)\Git\cmd\git.exe" +2026-09-10 07:51:53.436 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 07:51:53.436 [info] [main] Validating found git in: "C:\Users\LiXueqiang\AppData\Local\Programs\Git\cmd\git.exe" +2026-09-10 07:51:53.523 [info] [main] Validating found git in: "D:\Software\Git\cmd\git.exe" +2026-09-10 07:51:53.582 [info] [askpassManager] Creating content-addressed askpass scripts at i:\BackFile\code\hornet-cpptools\Extension\artifacts\progress-host\user\User\globalStorage\vscode.git\askpass\70789581cae28aa7 +2026-09-10 07:51:53.661 [info] [askpassManager] Successfully created content-addressed askpass scripts +2026-09-10 07:51:53.681 [info] [main] Using git "2.53.0.windows.1" from "D:\Software\Git\cmd\git.exe" +2026-09-10 07:51:53.681 [info] [Model][doInitialScan] Initial repository scan started +2026-09-10 07:51:53.773 [info] > git rev-parse --show-toplevel [82ms] +2026-09-10 07:51:53.855 [info] > git rev-parse --show-toplevel [75ms] +2026-09-10 07:51:53.857 [info] [Model][doInitialScan] Initial repository scan completed - repositories (0), closed repositories (0), parent repositories (1), unsafe repositories (0) +2026-09-10 07:51:54.550 [info] > git rev-parse --show-toplevel [64ms] +2026-09-10 07:51:54.666 [info] > git rev-parse --show-toplevel [60ms] +2026-09-10 07:51:54.763 [info] > git rev-parse --show-toplevel [73ms] +2026-09-10 07:51:56.248 [info] > git rev-parse --show-toplevel [57ms] +2026-09-10 07:51:57.220 [info] > git rev-parse --show-toplevel [78ms] diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/vscode.github-authentication/GitHub Authentication.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/vscode.github-authentication/GitHub Authentication.log new file mode 100644 index 000000000..a82fb19c7 --- /dev/null +++ b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/vscode.github-authentication/GitHub Authentication.log @@ -0,0 +1,289 @@ +2026-09-10 07:51:53.389 [info] Reading sessions from keychain... +2026-09-10 07:51:53.389 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.389 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.389 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.389 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.389 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.389 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.389 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.389 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.389 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.389 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Got 0 sessions for read:user,user:email... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.390 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.390 [info] Getting sessions for repo... +2026-09-10 07:51:53.390 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.391 [info] Getting sessions for repo... +2026-09-10 07:51:53.391 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.391 [info] Getting sessions for repo... +2026-09-10 07:51:53.391 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.391 [info] Getting sessions for repo... +2026-09-10 07:51:53.391 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.391 [info] Getting sessions for repo... +2026-09-10 07:51:53.391 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.391 [info] Getting sessions for repo... +2026-09-10 07:51:53.391 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.391 [info] Getting sessions for repo... +2026-09-10 07:51:53.391 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.391 [info] Getting sessions for repo... +2026-09-10 07:51:53.391 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.392 [info] Getting sessions for repo... +2026-09-10 07:51:53.392 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.392 [info] Getting sessions for repo... +2026-09-10 07:51:53.392 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.392 [info] Getting sessions for repo... +2026-09-10 07:51:53.392 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.393 [info] Getting sessions for repo... +2026-09-10 07:51:53.393 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.393 [info] Getting sessions for repo... +2026-09-10 07:51:53.393 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.393 [info] Getting sessions for repo... +2026-09-10 07:51:53.394 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.394 [info] Getting sessions for repo... +2026-09-10 07:51:53.394 [info] Got 0 sessions for repo... +2026-09-10 07:51:53.417 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.417 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.417 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.417 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.417 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.417 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.417 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.417 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.417 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.417 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.418 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.418 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.418 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.418 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.418 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.418 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.418 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.418 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.419 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.419 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.419 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.419 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.419 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.419 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.419 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.419 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.419 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.419 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.419 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.419 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.420 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.420 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:53.420 [info] Getting sessions for all scopes... +2026-09-10 07:51:53.420 [info] Got 0 sessions for all scopes... +2026-09-10 07:51:54.740 [info] Getting sessions for all scopes... +2026-09-10 07:51:54.740 [info] Got 0 sessions for all scopes... diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/vscode.github/GitHub.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/vscode.github/GitHub.log new file mode 100644 index 000000000..285bc6835 --- /dev/null +++ b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/vscode.github/GitHub.log @@ -0,0 +1 @@ +2026-09-10 07:51:53.436 [info] Log level: Info diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/vscode.json-language-features/JSON Language Server.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/exthost/vscode.json-language-features/JSON Language Server.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/network.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/network.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/notebook.rendering.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/notebook.rendering.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/output_20260910T075152/agentSessionsOutput.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/output_20260910T075152/agentSessionsOutput.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/output_20260910T075152/tasks.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/output_20260910T075152/tasks.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/renderer.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/renderer.log new file mode 100644 index 000000000..c28cf694f --- /dev/null +++ b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/renderer.log @@ -0,0 +1,85 @@ +2026-09-10 07:51:51.873 [info] [RemoteAgentHost] Reconciling: desired=[], current=[] +2026-09-10 07:51:51.887 [info] [AgentHost:renderer] Acquiring MessagePort to agent host... +2026-09-10 07:51:52.036 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 07:51:52.215 [info] [AgentHost:renderer] MessagePort acquired, creating client... +2026-09-10 07:51:52.254 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NDY5ZTA2MjktOTljNy00NmFkLWIzOGItMTFiOGI2ZWE1ZDRm" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 07:51:52.311 [info] Started local extension host with pid 18204. +2026-09-10 07:51:52.311 [info] Started initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/progress-host/extensions +2026-09-10 07:51:52.325 [info] [AgentHost:renderer] Protocol connection established; clientId=98d17c13-03a1-4c07-a464-883beeacd2ff +2026-09-10 07:51:52.510 [info] Completed initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/progress-host/extensions +2026-09-10 07:51:52.583 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-10 07:51:52.608 [info] Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +2026-09-10 07:51:53.134 [error] (node:18204) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) +2026-09-10 07:51:53.182 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NDY5ZTA2MjktOTljNy00NmFkLWIzOGItMTFiOGI2ZWE1ZDRm" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 07:51:53.190 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.192 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.193 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.194 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.195 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.196 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.196 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.197 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.198 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.198 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.199 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.199 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.200 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.200 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.201 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.201 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.202 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.202 [info] Settings Sync: Account status changed from uninitialized to unavailable +2026-09-10 07:51:53.322 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.322 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.323 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.323 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.324 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.324 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.324 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.325 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.325 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.326 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.326 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.327 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.327 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.328 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.328 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.329 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.329 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.386 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.388 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.389 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.390 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.390 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.390 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.391 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.391 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.392 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.392 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.393 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.393 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.394 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.395 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.395 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.396 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.396 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 07:51:53.418 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.420 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.421 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.421 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.421 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.422 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.422 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.423 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.423 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.423 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.424 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.424 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.425 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.425 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.426 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.426 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:53.426 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 07:51:57.263 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/NDY5ZTA2MjktOTljNy00NmFkLWIzOGItMTFiOGI2ZWE1ZDRm" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 07:51:57.584 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/textModelChanges.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/textModelChanges.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/views.log b/Extension/artifacts/progress-host/user/logs/20260910T075150/window1/views.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/progress-host/user/machineid b/Extension/artifacts/progress-host/user/machineid new file mode 100644 index 000000000..62e9c2f59 --- /dev/null +++ b/Extension/artifacts/progress-host/user/machineid @@ -0,0 +1 @@ +9d01497b-0b9e-45e1-9579-d6715a33542d \ No newline at end of file diff --git a/Extension/artifacts/progress-host/vscode-bottom-panel.png b/Extension/artifacts/progress-host/vscode-bottom-panel.png new file mode 100644 index 000000000..454375b52 Binary files /dev/null and b/Extension/artifacts/progress-host/vscode-bottom-panel.png differ diff --git a/Extension/artifacts/progress-host/vscode-mode-picker.png b/Extension/artifacts/progress-host/vscode-mode-picker.png new file mode 100644 index 000000000..4417c952c Binary files /dev/null and b/Extension/artifacts/progress-host/vscode-mode-picker.png differ diff --git a/Extension/artifacts/progress-host/vscode-panel-before.png b/Extension/artifacts/progress-host/vscode-panel-before.png new file mode 100644 index 000000000..38a247c00 Binary files /dev/null and b/Extension/artifacts/progress-host/vscode-panel-before.png differ diff --git a/Extension/artifacts/progress-tests.log b/Extension/artifacts/progress-tests.log new file mode 100644 index 000000000..1afe02c1d Binary files /dev/null and b/Extension/artifacts/progress-tests.log differ diff --git a/Extension/artifacts/release-0.1.3.log b/Extension/artifacts/release-0.1.3.log new file mode 100644 index 000000000..0a7d7a801 Binary files /dev/null and b/Extension/artifacts/release-0.1.3.log differ diff --git a/Extension/artifacts/release-0.1.4.log b/Extension/artifacts/release-0.1.4.log new file mode 100644 index 000000000..e032820c1 Binary files /dev/null and b/Extension/artifacts/release-0.1.4.log differ diff --git a/Extension/artifacts/release-0.1.5.log b/Extension/artifacts/release-0.1.5.log new file mode 100644 index 000000000..e0c1d40ea Binary files /dev/null and b/Extension/artifacts/release-0.1.5.log differ diff --git a/Extension/artifacts/release-0.1.6.log b/Extension/artifacts/release-0.1.6.log new file mode 100644 index 000000000..79b248647 Binary files /dev/null and b/Extension/artifacts/release-0.1.6.log differ diff --git a/Extension/artifacts/release-0.1.7.log b/Extension/artifacts/release-0.1.7.log new file mode 100644 index 000000000..06178eb41 Binary files /dev/null and b/Extension/artifacts/release-0.1.7.log differ diff --git a/Extension/artifacts/release-0.1.8.log b/Extension/artifacts/release-0.1.8.log new file mode 100644 index 000000000..609be2408 Binary files /dev/null and b/Extension/artifacts/release-0.1.8.log differ diff --git a/Extension/artifacts/release-0.1.9.log b/Extension/artifacts/release-0.1.9.log new file mode 100644 index 000000000..461f6cb2c Binary files /dev/null and b/Extension/artifacts/release-0.1.9.log differ diff --git a/Extension/artifacts/scoped-tests.log b/Extension/artifacts/scoped-tests.log new file mode 100644 index 000000000..aee7364a8 Binary files /dev/null and b/Extension/artifacts/scoped-tests.log differ diff --git a/Extension/artifacts/stm32-host/extensions/extensions.json b/Extension/artifacts/stm32-host/extensions/extensions.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/Extension/artifacts/stm32-host/extensions/extensions.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Extension/artifacts/stm32-host/result.json b/Extension/artifacts/stm32-host/result.json new file mode 100644 index 000000000..2b35592ef --- /dev/null +++ b/Extension/artifacts/stm32-host/result.json @@ -0,0 +1,15 @@ +{ + "passed": true, + "version": "0.1.9", + "managed": "i:\\BackFile\\code\\stm32_freertos\\.vscode\\hornet\\compile-db\\compile_commands.json", + "commands": 38, + "incoming": [ + "main" + ], + "outgoing": [ + "ErrorHandler", + "HAL_RccClockConfig", + "HAL_RccOscConfig" + ], + "errors": [] +} \ No newline at end of file diff --git a/Extension/artifacts/stm32-host/stderr.log b/Extension/artifacts/stm32-host/stderr.log new file mode 100644 index 000000000..907695332 --- /dev/null +++ b/Extension/artifacts/stm32-host/stderr.log @@ -0,0 +1,11 @@ +[main 2026-09-10T15:10:18.700Z] Error: Error mutex already exists + at Ks.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/out/main.js:561:27488) +[main 2026-09-10T15:10:19.926Z] [AgentHost:stderr] (node:27228) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +(node:25996) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) +Unknown channel: agentHostClientByokLm +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy +Unknown channel: agentHostClientProxy diff --git a/Extension/artifacts/stm32-host/stdout.log b/Extension/artifacts/stm32-host/stdout.log new file mode 100644 index 000000000..5661e47ee --- /dev/null +++ b/Extension/artifacts/stm32-host/stdout.log @@ -0,0 +1,91 @@ + +[main 2026-09-10T15:10:18.614Z] StorageMainService: creating application shared storage +[main 2026-09-10T15:10:18.694Z] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +[main 2026-09-10T15:10:18.698Z] [shared storage] Initializing fallback application storage (path: in-memory) +[main 2026-09-10T15:10:18.724Z] [shared storage] Fallback application storage initialized with 3 items +[main 2026-09-10T15:10:19.497Z] update#setState idle +[RemoteAgentHost] Reconciling: desired=[], current=[] +[AgentHost:renderer] Acquiring MessagePort to agent host... +[main 2026-09-10T15:10:19.524Z] AgentHostProcessManager: agent host started +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] MessagePort acquired, creating client... +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/MzllZTIyYjYtNTJkZi00OTNmLWI3YjItYTcwYThjODZiNjdl" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost:renderer] Protocol connection established; clientId=a4889438-244e-4782-ae7d-f5dc8ccf1440 +Started initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/stm32-host/extensions +Started local extension host with pid 19996. +Completed initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/stm32-host/extensions +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/MzllZTIyYjYtNTJkZi00OTNmLWI3YjItYTcwYThjODZiNjdl" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +[AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +Settings Sync: Account status changed from uninitialized to unavailable +[ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/MzllZTIyYjYtNTJkZi00OTNmLWI3YjItYTcwYThjODZiNjdl" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +[AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +[main 2026-09-10T15:10:25.856Z] Extension host with pid 19996 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/stm32-host/user/Cache/Cache_Data/data_0 b/Extension/artifacts/stm32-host/user/Cache/Cache_Data/data_0 new file mode 100644 index 000000000..0a268f65e Binary files /dev/null and b/Extension/artifacts/stm32-host/user/Cache/Cache_Data/data_0 differ diff --git a/Extension/artifacts/stm32-host/user/Cache/Cache_Data/data_1 b/Extension/artifacts/stm32-host/user/Cache/Cache_Data/data_1 new file mode 100644 index 000000000..b1f17dbb8 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/Cache/Cache_Data/data_1 differ diff --git a/Extension/artifacts/stm32-host/user/Cache/Cache_Data/data_2 b/Extension/artifacts/stm32-host/user/Cache/Cache_Data/data_2 new file mode 100644 index 000000000..c7e2eb9ad Binary files /dev/null and b/Extension/artifacts/stm32-host/user/Cache/Cache_Data/data_2 differ diff --git a/Extension/artifacts/stm32-host/user/Cache/Cache_Data/data_3 b/Extension/artifacts/stm32-host/user/Cache/Cache_Data/data_3 new file mode 100644 index 000000000..f7b6578e7 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/Cache/Cache_Data/data_3 differ diff --git a/Extension/artifacts/stm32-host/user/Cache/Cache_Data/index b/Extension/artifacts/stm32-host/user/Cache/Cache_Data/index new file mode 100644 index 000000000..9bac01433 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/Cache/Cache_Data/index differ diff --git a/Extension/artifacts/stm32-host/user/Cache/No_Vary_Search/journal.baj b/Extension/artifacts/stm32-host/user/Cache/No_Vary_Search/journal.baj new file mode 100644 index 000000000..54fe66eb5 --- /dev/null +++ b/Extension/artifacts/stm32-host/user/Cache/No_Vary_Search/journal.baj @@ -0,0 +1 @@ +$F~ \ No newline at end of file diff --git a/Extension/artifacts/stm32-host/user/Cache/No_Vary_Search/snapshot.baf b/Extension/artifacts/stm32-host/user/Cache/No_Vary_Search/snapshot.baf new file mode 100644 index 000000000..8912405f3 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/Cache/No_Vary_Search/snapshot.baf differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/39a34e1c704f81d2_0 b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/39a34e1c704f81d2_0 new file mode 100644 index 000000000..598f7d2b1 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/39a34e1c704f81d2_0 differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/4efb9530d0742f90_0 b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/4efb9530d0742f90_0 new file mode 100644 index 000000000..db95b5168 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/4efb9530d0742f90_0 differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/5f95d82e27f6bdbc_0 b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/5f95d82e27f6bdbc_0 new file mode 100644 index 000000000..67078ce22 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/5f95d82e27f6bdbc_0 differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/6b9db0e41b6dfbd0_0 b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/6b9db0e41b6dfbd0_0 new file mode 100644 index 000000000..7a260931c Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/6b9db0e41b6dfbd0_0 differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/789f3bfbf18b0f6c_0 b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/789f3bfbf18b0f6c_0 new file mode 100644 index 000000000..9c4536b47 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/789f3bfbf18b0f6c_0 differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/87e599bc03eb0398_0 b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/87e599bc03eb0398_0 new file mode 100644 index 000000000..cdd1eb36c Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/87e599bc03eb0398_0 differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/9c020f37c7ecccb0_0 b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/9c020f37c7ecccb0_0 new file mode 100644 index 000000000..0976c626c Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/9c020f37c7ecccb0_0 differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/ad7aeb01e747c963_0 b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/ad7aeb01e747c963_0 new file mode 100644 index 000000000..6b6aa9ab8 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/ad7aeb01e747c963_0 differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/dd20a1424f73d4fa_0 b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/dd20a1424f73d4fa_0 new file mode 100644 index 000000000..0109bd1f7 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/dd20a1424f73d4fa_0 differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/index b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/index differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/index-dir/the-real-index b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/index-dir/the-real-index new file mode 100644 index 000000000..4049977a0 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/js/index-dir/the-real-index differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/wasm/index b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/wasm/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/wasm/index differ diff --git a/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/wasm/index-dir/the-real-index b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/wasm/index-dir/the-real-index new file mode 100644 index 000000000..c6d33798e Binary files /dev/null and b/Extension/artifacts/stm32-host/user/CachedData/645f29cc3176500b4b5762ba887cf2a7f0ffdf2c/chrome/wasm/index-dir/the-real-index differ diff --git a/Extension/artifacts/stm32-host/user/CachedProfilesData/__default__profile__/extensions.builtin.cache b/Extension/artifacts/stm32-host/user/CachedProfilesData/__default__profile__/extensions.builtin.cache new file mode 100644 index 000000000..4f83b1898 --- /dev/null +++ b/Extension/artifacts/stm32-host/user/CachedProfilesData/__default__profile__/extensions.builtin.cache @@ -0,0 +1 @@ +{"input":{"location":{"$mid":1,"fsPath":"d:\\Software\\Microsoft\\Visual Studio Code\\645f29cc31\\resources\\app\\extensions","_sep":1,"external":"file:///d%3A/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/extensions","path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions","scheme":"file"},"mtime":1789048189915,"profile":false,"type":0,"validate":true,"productVersion":"1.137.0","productDate":"2026-09-08T13:43:59-07:00","productCommit":"645f29cc3176500b4b5762ba887cf2a7f0ffdf2c","devMode":false,"language":"en","translations":{}},"result":[{"type":0,"identifier":{"id":"typescriptteam.jsts-chat-features"},"manifest":{"name":"jsts-chat-features","displayName":"JS/TS Chat Features","description":"Provides extensions to VS Family to improve the Copilot experience in JavaScript and TypeScript contexts","publisher":"TypeScriptTeam","author":"Microsoft Corp.","private":true,"version":"0.0.4","icon":"logo.png","license":"SEE LICENSE IN LICENSE.txt","engines":{"vscode":"^1.109.0"},"categories":["AI","Programming Languages"],"extensionKind":["workspace"],"contributes":{"chatSkills":[{"path":"./skills/typescript-setup/SKILL.md","when":"config.jsts-chat-features.skills.enabled"},{"path":"./skills/typescript-update/SKILL.md","when":"config.jsts-chat-features.skills.enabled"}],"configuration":{"title":"JS/TS Chat Features","type":"object","properties":{"jsts-chat-features.skills.enabled":{"type":"boolean","tags":["onExp"],"default":false,"description":"These skills provide helpful prompts and features to enhance your experience when using Copilot to work with JavaScript and TypeScript."}}}},"files":["LICENSE.txt","README.md","logo.png","skills/typescript-setup/SKILL.md","skills/typescript-update/SKILL.md","skills/typescript-update/4to5.md","skills/typescript-update/5to6.md","skills/typescript-update/6to7.md"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/TypeScriptTeam.jsts-chat-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[[2,"property `extensionKind` can be defined only if property `main` is also defined."]],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.bat"},"manifest":{"name":"bat","displayName":"Windows Bat Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Windows batch files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.52.0"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin mmims/language-batchfile grammars/batchfile.cson ./syntaxes/batchfile.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"bat","extensions":[".bat",".cmd"],"aliases":["Batch","bat"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"bat","scopeName":"source.batchfile","path":"./syntaxes/batchfile.tmLanguage.json"}],"snippets":[{"language":"bat","path":"./snippets/batchfile.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/bat","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.clojure"},"manifest":{"name":"clojure","displayName":"Clojure Language Basics","description":"Provides syntax highlighting and bracket matching in Clojure files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-clojure grammars/clojure.cson ./syntaxes/clojure.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"clojure","aliases":["Clojure","clojure"],"extensions":[".clj",".cljs",".cljc",".cljx",".clojure",".edn"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"clojure","scopeName":"source.clojure","path":"./syntaxes/clojure.tmLanguage.json"}],"configurationDefaults":{"[clojure]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/clojure","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.coffeescript"},"manifest":{"name":"coffeescript","displayName":"CoffeeScript Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in CoffeeScript files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-coffee-script grammars/coffeescript.cson ./syntaxes/coffeescript.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"coffeescript","extensions":[".coffee",".cson",".iced"],"aliases":["CoffeeScript","coffeescript","coffee"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"coffeescript","scopeName":"source.coffee","path":"./syntaxes/coffeescript.tmLanguage.json"}],"breakpoints":[{"language":"coffeescript"}],"snippets":[{"language":"coffeescript","path":"./snippets/coffeescript.code-snippets"}],"configurationDefaults":{"[coffeescript]":{"diffEditor.ignoreTrimWhitespace":false,"editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/coffeescript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.configuration-editing"},"manifest":{"name":"configuration-editing","displayName":"Configuration Editing","description":"Provides capabilities (advanced IntelliSense, auto-fixing) in configuration files like settings, launch, and extension recommendation files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.0.0"},"icon":"images/icon.png","activationEvents":["onProfile","onProfile:github","onLanguage:json","onLanguage:jsonc"],"enabledApiProposals":["profileContentHandlers"],"main":"./dist/configurationEditingMain","browser":"./dist/browser/configurationEditingMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"languages":[{"id":"jsonc","extensions":[".code-workspace","language-configuration.json","icon-theme.json","color-theme.json"],"filenames":["settings.json","launch.json","tasks.json","mcp.json","keybindings.json","extensions.json","argv.json","profiles.json","devcontainer.json",".devcontainer.json"]},{"id":"json","extensions":[".code-profile"]}],"jsonValidation":[{"fileMatch":"vscode://defaultsettings/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"%APP_SETTINGS_HOME%/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/keybindings.json","url":"vscode://schemas/keybindings"},{"fileMatch":"vscode://defaultsettings/*.json","url":"vscode://schemas/settings/default"},{"fileMatch":"%APP_SETTINGS_HOME%/settings.json","url":"vscode://schemas/settings/user"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/settings.json","url":"vscode://schemas/settings/profile"},{"fileMatch":"%MACHINE_SETTINGS_HOME%/settings.json","url":"vscode://schemas/settings/machine"},{"fileMatch":"%APP_WORKSPACES_HOME%/*/workspace.json","url":"vscode://schemas/workspaceConfig"},{"fileMatch":"**/*.code-workspace","url":"vscode://schemas/workspaceConfig"},{"fileMatch":"**/argv.json","url":"vscode://schemas/argv"},{"fileMatch":"/.vscode/settings.json","url":"vscode://schemas/settings/folder"},{"fileMatch":"/.vscode/launch.json","url":"vscode://schemas/launch"},{"fileMatch":"/.vscode/tasks.json","url":"vscode://schemas/tasks"},{"fileMatch":"/.vscode/mcp.json","url":"vscode://schemas/mcp"},{"fileMatch":"%APP_SETTINGS_HOME%/tasks.json","url":"vscode://schemas/tasks"},{"fileMatch":"%APP_SETTINGS_HOME%/chatLanguageModels.json","url":"vscode://schemas/language-models"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/chatLanguageModels.json","url":"vscode://schemas/language-models"},{"fileMatch":"%APP_SETTINGS_HOME%/snippets/*.json","url":"vscode://schemas/snippets"},{"fileMatch":"%APP_SETTINGS_HOME%/prompts/*.toolsets.jsonc","url":"vscode://schemas/toolsets"},{"fileMatch":"%APP_SETTINGS_HOME%/profiles/*/snippets/.json","url":"vscode://schemas/snippets"},{"fileMatch":"%APP_SETTINGS_HOME%/sync/snippets/preview/*.json","url":"vscode://schemas/snippets"},{"fileMatch":"**/*.code-snippets","url":"vscode://schemas/global-snippets"},{"fileMatch":"/.vscode/extensions.json","url":"vscode://schemas/extensions"},{"fileMatch":"devcontainer.json","url":"https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json"},{"fileMatch":".devcontainer.json","url":"https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json"},{"fileMatch":"%APP_SETTINGS_HOME%/globalStorage/ms-vscode-remote.remote-containers/nameConfigs/*.json","url":"./schemas/attachContainer.schema.json"},{"fileMatch":"%APP_SETTINGS_HOME%/globalStorage/ms-vscode-remote.remote-containers/imageConfigs/*.json","url":"./schemas/attachContainer.schema.json"},{"fileMatch":"**/quality/*/product.json","url":"vscode://schemas/vscode-product"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["profileContentHandlers"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/configuration-editing","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"github.copilot-chat"},"manifest":{"name":"copilot-chat","displayName":"GitHub Copilot","description":"AI chat features powered by Copilot","version":"0.65.0","build":"1","completionsCoreVersion":"1.378.1799","internalLargeStorageAriaKey":"ec712b3202c5462fb6877acae7f1f9d7-c19ad55e-3e3c-4f99-984b-827f6d95bd9e-6917","ariaKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","buildType":"prod","publisher":"GitHub","homepage":"https://github.com/features/copilot?editor=vscode","license":"SEE LICENSE IN LICENSE.txt","repository":{"type":"git","url":"https://github.com/microsoft/vscode-copilot-chat"},"bugs":{"url":"https://github.com/microsoft/vscode/issues"},"qna":"https://github.com/github-community/community/discussions/categories/copilot","icon":"assets/copilot.png","pricing":"Trial","engines":{"vscode":"^1.137.0","npm":">=9.0.0","node":">=22.14.0"},"categories":["AI","Chat","Programming Languages","Machine Learning"],"keywords":["ai","openai","codex","pilot","snippets","documentation","autocomplete","intellisense","refactor","javascript","python","typescript","php","go","golang","ruby","c++","c#","java","kotlin","co-pilot"],"badges":[{"url":"https://img.shields.io/badge/GitHub%20Copilot-Subscription%20Required-orange","href":"https://github.com/github-copilot/signup?editor=vscode","description":"Sign up for GitHub Copilot"},{"url":"https://img.shields.io/github/stars/github/copilot-docs?style=social","href":"https://github.com/github/copilot-docs","description":"Star Copilot on GitHub"},{"url":"https://img.shields.io/youtube/channel/views/UC7c3Kb6jYCRj4JOHHZTxKsQ?style=social","href":"https://www.youtube.com/@GitHub/search?query=copilot","description":"Check out GitHub on Youtube"},{"url":"https://img.shields.io/twitter/follow/github?style=social","href":"https://twitter.com/github","description":"Follow GitHub on Twitter"}],"activationEvents":["onStartupFinished","onLanguageModelChat:copilot","onUri","onCommand:_github.copilot.chat.reportModelFeedbackSurvey","onFileSystem:ccreq","onFileSystem:ccsettings"],"main":"./dist/extension","l10n":"./l10n","enabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","chatDebug","chatHooks","extensionsAny","newSymbolNamesProvider","interactive","codeActionAI","activeComment","commentReveal","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","documentFiltersExclusive","embeddings","findTextInFiles","findTextInFiles2","languageModelToolSupportsModel","findFiles2","textSearchProvider","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","chatParticipantAdditions","defaultChatParticipant","contribSourceControlInputBoxMenu","authLearnMore","testObserver","aiTextSearchProvider","chatParticipantPrivate","chatProvider","contribDebugCreateConfiguration","chatReferenceDiagnostic","textSearchProvider2","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelPricing","inlineCompletionsAdditions","chatStatusItem","chatInputNotification","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","languageModelThinkingPart","chatSessionsProvider","devDeviceId","contribEditorContentMenu","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","environmentPower","terminalTitle","toolInvocationApproveCombination","chatSessionCustomizationProvider"],"contributes":{"languageModelTools":[{"name":"copilot_searchCodebase","toolReferenceName":"codebase","displayName":"Codebase","icon":"$(folder)","userDescription":"Find relevant file chunks, symbols, and other information via semantic search","modelDescription":"Run a natural language search for relevant code or documentation comments from the user's current workspace. Returns relevant code snippets from the user's current workspace if it is large, or the full contents of the workspace if it is small.","tags":["codesearch","vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to search the codebase for. Should contain all relevant context. Should ideally be text that might appear in the codebase, such as function names, variable names, or comments."}},"required":["query"]}},{"name":"execution_subagent","toolReferenceName":"executionSubagent","displayName":"Execution Subagent","icon":"$(play)","userDescription":"Launch an execution-focused subagent that runs one or more terminal commands to accomplish a task. This subagent is powered by Google's Gemini-3-Flash model. It is designed to select an efficient summary of the terminal outputs to return to the main agent context.","modelDescription":"Launch an iterative execution-focused subagent that performs an execution-based task.\nUSE THIS INSTEAD OF RUNNING INDIVIDUAL COMMANDS WITH run_in_terminal EXCEPT IN THE RARE CASES THAT YOU NEED THE FULL OUTPUT OF A COMMAND.\nHere are some examples of how it can be used:\n- Run tests and filter the output to summarize which tests failed and why.\n- Install all dependencies of a project.\nReturns: A list of commands that were run, along with relevant excerpts of each command's output.\nInput fields:\n- query: What to execute, and what to look for in the output. Can include exact commands to run, or a description of an execution task.\n- description: Short user-visible invocation message.\nNOTE: In the subagent query, make sure to specify any restrictions or guidelines on running commands provided by the user earlier in the conversation.\nFor example, if the user instructs the agent to not edit files in a particular directory, make sure to include that instruction in the subagent query when relevant.","when":"config.github.copilot.chat.executionSubagent.enabled","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"What to execute, and what to look for in the output. Can include exact commands to run, or a description of an execution task."},"description":{"type":"string","description":"User-visible invocation message shown while the subagent runs."}},"required":["query","description"]}},{"name":"search_subagent","toolReferenceName":"searchSubagent","displayName":"Search Subagent","icon":"$(search)","userDescription":"Launch an iterative search-focused subagent to find relevant code in your workspace.","modelDescription":"Launch a fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns (eg. \"src/components/**/*.tsx\"), search code for keywords (eg. \"API endpoints\"), or answer questions about the codebase (eg. \"how do API endpoints work?\").\nReturns: A list of relevant files/snippet locations in the workspace.\n\nInput fields:\n- query: Natural language description of what to search for.\n- description: Short user-visible invocation message. \n- details: 2-3 sentences detailing the objective of the search agent.","when":"config.github.copilot.chat.searchSubagent.enabled && config.github.copilot.chat.exploreAgent.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language description of what to search for."},"description":{"type":"string","description":"A short (3-5 word) description of the task."},"details":{"type":"string","description":"A more detailed description of the objective for the search subagent. This helps the sub-agent remain on task and understand its purpose."}},"required":["query","description","details"]}},{"name":"explore_subagent","toolReferenceName":"exploreSubagent","displayName":"Search Subagent","icon":"$(search)","userDescription":"Launch an iterative search-focused subagent to find relevant code in your workspace.","modelDescription":"Launch a fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns (eg. \"src/components/**/*.tsx\"), search code for keywords (eg. \"API endpoints\"), or answer questions about the codebase (eg. \"how do API endpoints work?\").\nReturns: A list of relevant files/snippet locations in the workspace.\n\nInput fields:\n- query: Natural language description of what to search for.\n- description: Short user-visible invocation message. \n- details: 2-3 sentences detailing the objective of the search agent.","when":"config.github.copilot.chat.searchSubagent.enabled && !config.github.copilot.chat.exploreAgent.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language description of what to search for."},"description":{"type":"string","description":"A short (3-5 word) description of the task."},"details":{"type":"string","description":"A more detailed description of the objective for the search subagent. This helps the sub-agent remain on task and understand its purpose."}},"required":["query","description","details"]}},{"name":"skill","toolReferenceName":"skill","displayName":"Skill","icon":"$(book)","userDescription":"Execute a skill by name. Skills provide specialized capabilities, domain knowledge, and refined workflows.","modelDescription":"Invoke a skill to handle a user's request with specialized instructions and workflows.\n\nSkills are domain-specific capabilities discovered from SKILL.md files. When a user's task matches an available skill, call this tool to load and apply it. If the user types a slash command (e.g. \"/deploy\", \"/test\"), treat it as a skill invocation.\n\nUsage:\n- Pass the skill name only (no arguments).\n- Examples: skill: \"docx\", skill: \"deploy\", skill: \"fix-ci-failures\"\n\nRules:\n- Available skills appear in system-reminder messages earlier in the conversation.\n- BLOCKING: When a matching skill exists, you MUST call this tool before producing any other output about the task.\n- Never reference a skill without calling this tool.\n- Do not call this tool for a skill that is already active in the current turn (indicated by a tag).\n- Do not use this tool for built-in commands such as /help or /clear.","when":"config.github.copilot.chat.skillTool.enabled","inputSchema":{"type":"object","properties":{"skill":{"type":"string","description":"The skill name. E.g., \"commit\", \"review-pr\", or \"pdf\""}},"required":["skill"]}},{"name":"copilot_searchWorkspaceSymbols","toolReferenceName":"symbols","displayName":"Workspace Symbols","icon":"$(symbol)","userDescription":"Search for workspace symbols using language services.","modelDescription":"Search the user's workspace for code symbols using language services. Use this tool when the user is looking for a specific symbol in their workspace.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"symbolName":{"type":"string","description":"The symbol to search for, such as a function name, class name, or variable name."}},"required":["symbolName"]}},{"name":"copilot_getVSCodeAPI","toolReferenceName":"vscodeAPI","displayName":"Get VS Code API References","icon":"$(references)","userDescription":"Use VS Code API references to answer questions about VS Code extension development.","modelDescription":"Get comprehensive VS Code API documentation and references for extension development. This tool provides authoritative documentation for VS Code's extensive API surface, including proposed APIs, contribution points, and best practices. Use this tool for understanding complex VS Code API interactions.\n\nWhen to use this tool:\n- User asks about specific VS Code APIs, interfaces, or extension capabilities\n- Need documentation for VS Code extension contribution points (commands, views, settings, etc.)\n- Questions about proposed APIs and their usage patterns\n- Understanding VS Code extension lifecycle, activation events, and packaging\n- Best practices for VS Code extension development architecture\n- API examples and code patterns for extension features\n- Troubleshooting extension-specific issues or API limitations\n\nWhen NOT to use this tool:\n- Creating simple standalone files or scripts unrelated to VS Code extensions\n- General programming questions not specific to VS Code extension development\n- Questions about using VS Code as an editor (user-facing features)\n- Non-extension related development tasks\n- File creation or editing that doesn't involve VS Code extension APIs\n\nCRITICAL usage guidelines:\n1. Always include specific API names, interfaces, or concepts in your query\n2. Mention the extension feature you're trying to implement\n3. Include context about proposed vs stable APIs when relevant\n4. Reference specific contribution points when asking about extension manifest\n5. Be specific about the VS Code version or API version when known\n\nScope: This tool is for EXTENSION DEVELOPMENT ONLY - building tools that extend VS Code itself, not for general file creation or non-extension programming tasks.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to search vscode documentation for. Should contain all relevant context."}},"required":["query"]},"tags":[]},{"name":"copilot_findFiles","toolReferenceName":"fileSearch","displayName":"Find Files","userDescription":"Find files by name using a glob pattern","modelDescription":"Search for files in the workspace by glob pattern. This only returns the paths of matching files. Use this tool when you know the exact filename pattern of the files you're searching for. Glob patterns match from the root of the workspace folder. Examples:\n- **/*.{js,ts} to match all js/ts files in the workspace.\n- src/** to match all files under the top-level src folder.\n- **/foo/**/*.js to match all js files under any foo folder in the workspace.\n\nIn a multi-root workspace, you can scope the search to a specific workspace folder by using the absolute path to the folder as the query, e.g. /path/to/folder/**/*.ts.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search for files with names or paths matching this glob pattern. Can also be an absolute path to a workspace folder to scope the search in a multi-root workspace."},"maxResults":{"type":"number","description":"The maximum number of results to return. Do not use this unless necessary, it can slow things down. By default, only some matches are returned. If you use this and don't see what you're looking for, you can try again with a more specific query or a larger maxResults."}},"required":["query"]}},{"name":"copilot_findTextInFiles","toolReferenceName":"textSearch","displayName":"Find Text In Files","userDescription":"Search for text in files by regular expression","modelDescription":"Do a fast text search in the workspace. Use this tool when you want to search with an exact string or regex. If you are not sure what words will appear in the workspace, prefer using regex patterns with alternation (|) or character classes to search for multiple potential words at once instead of making separate searches. For example, use 'function|method|procedure' to look for all of those words at once. Use includePattern to search within files matching a specific pattern, or in a specific file, using a relative path. Use 'includeIgnoredFiles' to include files normally ignored by .gitignore, other ignore files, and `files.exclude` and `search.exclude` settings. Warning: using this may cause the search to be slower, only set it when you want to search in ignored folders like node_modules or build outputs. Use this tool when you want to see an overview of a particular file, instead of using read_file many times to look for code within a file.\n\nIn a multi-root workspace, you can scope the search to a specific workspace folder by using the absolute path to the folder as the includePattern, e.g. /path/to/folder.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The pattern to search for in files in the workspace. Use regex with alternation (e.g., 'word1|word2|word3') or character classes to find multiple potential words in a single search. Be sure to set the isRegexp property properly to declare whether it's a regex or plain text pattern. Is case-insensitive."},"isRegexp":{"type":"boolean","description":"Whether the pattern is a regex."},"includePattern":{"type":"string","description":"Search files matching this glob pattern. Will be applied to the relative path of files within the workspace. To search recursively inside a folder, use a proper glob pattern like \"src/folder/**\". Do not use | in includePattern. Can also be an absolute path to a workspace folder to scope the search in a multi-root workspace."},"maxResults":{"type":"number","description":"The maximum number of results to return. Do not use this unless necessary, it can slow things down. By default, only some matches are returned. If you use this and don't see what you're looking for, you can try again with a more specific query or a larger maxResults."},"includeIgnoredFiles":{"type":"boolean","description":"Whether to include files that would normally be ignored according to .gitignore, other ignore files and `files.exclude` and `search.exclude` settings. Warning: using this may cause the search to be slower. Only set it when you want to search in ignored folders like node_modules or build outputs."}},"required":["query","isRegexp"]}},{"name":"copilot_applyPatch","displayName":"Apply Patch","toolReferenceName":"applyPatch","userDescription":"Edit text files in the workspace","modelDescription":"Edit text files. Do not use this tool to edit Jupyter notebooks. `apply_patch` allows you to execute a diff/patch against a text file, but the format of the diff specification is unique to this task, so pay careful attention to these instructions. To use the `apply_patch` command, you should pass a message of the following structure as \"input\":\n\n*** Begin Patch\n[YOUR_PATCH]\n*** End Patch\n\nWhere [YOUR_PATCH] is the actual content of your patch, specified in the following V4A diff format.\n\n*** [ACTION] File: [/absolute/path/to/file] -> ACTION can be one of Add, Update, or Delete.\nAn example of a message that you might pass as \"input\" to this function, in order to apply a patch, is shown below.\n\n*** Begin Patch\n*** Update File: /Users/someone/pygorithm/searching/binary_search.py\n@@class BaseClass\n@@ def search():\n- pass\n+ raise NotImplementedError()\n\n@@class Subclass\n@@ def search():\n- pass\n+ raise NotImplementedError()\n\n*** End Patch\nDo not use line numbers in this diff format.","inputSchema":{"type":"object","properties":{"input":{"type":"string","description":"The edit patch to apply."},"explanation":{"type":"string","description":"A short description of what the tool call is aiming to achieve."}},"required":["input","explanation"]}},{"name":"copilot_readFile","toolReferenceName":"readFile","legacyToolReferenceFullNames":["search/readFile"],"displayName":"Read File","userDescription":"Read the contents of a file","modelDescription":"Read the contents of a file.\n\nYou must specify the line range you're interested in. Line numbers are 1-indexed. If the file contents returned are insufficient for your task, you may call this tool again to retrieve more content. Prefer reading larger ranges over doing many small reads. Binary files use startLine/endLine as byte offsets.","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"filePath":{"description":"The absolute path of the file to read.","type":"string"},"startLine":{"type":"number","description":"The line number to start reading from, 1-based."},"endLine":{"type":"number","description":"The inclusive line number to end reading at, 1-based."}},"required":["filePath","startLine","endLine"]}},{"name":"copilot_viewImage","toolReferenceName":"viewImage","displayName":"View Image","userDescription":"View the contents of an image file","when":"config.github.copilot.chat.tools.viewImage.enabled","modelDescription":"View the contents of an image file. Use this instead of read_file for supported image files such as png, jpg, jpeg, gif, and webp. The tool returns the image directly to multimodal models and does not take line ranges or offsets.","inputSchema":{"type":"object","properties":{"filePath":{"description":"The absolute path of the image file to view.","type":"string"}},"required":["filePath"]}},{"name":"copilot_listDirectory","toolReferenceName":"listDirectory","displayName":"List Dir","userDescription":"List the contents of a directory","modelDescription":"List the contents of a directory. Result will have the name of the child. If the name ends in /, it's a folder, otherwise a file","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"The absolute path to the directory to list."}},"required":["path"]}},{"name":"copilot_getErrors","displayName":"Get Problems","toolReferenceName":"problems","legacyToolReferenceFullNames":["problems"],"icon":"$(error)","userDescription":"Check errors for a particular file","modelDescription":"Get any compile or lint errors in a specific file or across all files. If the user mentions errors or problems in a file, they may be referring to these. Use the tool to see the same errors that the user is seeing. If the user asks you to analyze all errors, or does not specify a file, use this tool to gather errors for all files. Also use this tool after editing a file to validate the change.","tags":[],"inputSchema":{"type":"object","properties":{"filePaths":{"description":"The absolute paths to the files or folders to check for errors. Omit 'filePaths' when retrieving all errors.","type":"array","items":{"type":"string"}}}}},{"name":"copilot_readProjectStructure","displayName":"Project Structure","modelDescription":"Get a file tree representation of the workspace.","tags":[]},{"name":"copilot_getChangedFiles","displayName":"Git Changes","toolReferenceName":"changes","legacyToolReferenceFullNames":["changes"],"icon":"$(diff)","userDescription":"Get diffs of changed files","modelDescription":"Get git diffs of current file changes in a git repository. Don't forget that you can use run_in_terminal to run git commands in a terminal as well.","when":"config.github.copilot.chat.getChangedFilesTool.enabled","tags":["vscode_codesearch"],"inputSchema":{"type":"object","properties":{"repositoryPath":{"type":"string","description":"The absolute path to the git repository to look for changes in. If not provided, the active git repository will be used."},"sourceControlState":{"type":"array","items":{"type":"string","enum":["staged","unstaged","merge-conflicts"]},"description":"The kinds of git state to filter by. Allowed values are: 'staged', 'unstaged', and 'merge-conflicts'. If not provided, all states will be included."}}}},{"name":"copilot_createNewWorkspace","displayName":"Create New Workspace","toolReferenceName":"newWorkspace","legacyToolReferenceFullNames":["new/newWorkspace"],"icon":"$(new-folder)","userDescription":"Scaffold a new workspace in VS Code","when":"config.github.copilot.chat.newWorkspaceCreation.enabled","modelDescription":"Get comprehensive setup steps to help the user create complete project structures in a VS Code workspace. This tool is designed for full project initialization and scaffolding, not for creating individual files.\n\nWhen to use this tool:\n- User wants to create a new complete project from scratch\n- Setting up entire project frameworks (TypeScript projects, React apps, Node.js servers, etc.)\n- Initializing Model Context Protocol (MCP) servers with full structure\n- Creating VS Code extensions with proper scaffolding\n- Setting up Next.js, Vite, or other framework-based projects\n- User asks for \"new project\", \"create a workspace\", \"set up a [framework] project\"\n- Need to establish complete development environment with dependencies, config files, and folder structure\n\nWhen NOT to use this tool:\n- Creating single files or small code snippets\n- Adding individual files to existing projects\n- Making modifications to existing codebases\n- User asks to \"create a file\" or \"add a component\"\n- Simple code examples or demonstrations\n- Debugging or fixing existing code\n\nThis tool provides complete project setup including:\n- Folder structure creation\n- Package.json and dependency management\n- Configuration files (tsconfig, eslint, etc.)\n- Initial boilerplate code\n- Development environment setup\n- Build and run instructions\n\nUse other file creation tools for individual files within existing projects.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to use to generate the new workspace. This should be a clear and concise description of the workspace the user wants to create."}},"required":["query"]},"tags":["enable_other_tool_install_extension"]},{"name":"copilot_installExtension","displayName":"Install Extension in VS Code","when":"!config.github.copilot.chat.installExtensionSkill.enabled","toolReferenceName":"installExtension","legacyToolReferenceFullNames":["new/installExtension"],"modelDescription":"Install an extension in VS Code. Use this tool to install an extension in Visual Studio Code as part of a new workspace creation process only.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the extension to install. This should be in the format .."},"name":{"type":"string","description":"The name of the extension to install. This should be a clear and concise description of the extension."}},"required":["id","name"]},"tags":[]},{"name":"copilot_runVscodeCommand","displayName":"Run VS Code Command","toolReferenceName":"runCommand","legacyToolReferenceFullNames":["new/runVscodeCommand"],"modelDescription":"Run a command in VS Code. Use this tool to run a command in Visual Studio Code as part of a new workspace creation process only.","inputSchema":{"type":"object","properties":{"commandId":{"type":"string","description":"The ID of the command to execute. This should be in the format ."},"name":{"type":"string","description":"The name of the command to execute. This should be a clear and concise description of the command."},"args":{"type":"array","description":"The arguments to pass to the command. This should be an array of strings.","items":{"type":"string"}},"skipCheck":{"type":"boolean","description":"If true, skip checking whether the command exists before executing it."}},"required":["commandId","name"]},"tags":[]},{"name":"copilot_createNewJupyterNotebook","displayName":"Create New Jupyter Notebook","icon":"$(notebook)","toolReferenceName":"createJupyterNotebook","legacyToolReferenceFullNames":["newJupyterNotebook"],"modelDescription":"Generates a new Jupyter Notebook (.ipynb) in VS Code. Jupyter Notebooks are interactive documents commonly used for data exploration, analysis, visualization, and combining code with narrative text. Prefer creating plain Python files or similar unless a user explicitly requests creating a new Jupyter Notebook or already has a Jupyter Notebook opened or exists in the workspace.","userDescription":"Create a new Jupyter Notebook","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The query to use to generate the jupyter notebook. This should be a clear and concise description of the notebook the user wants to create."}},"required":["query"]},"tags":[]},{"name":"copilot_insertEdit","toolReferenceName":"insertEdit","displayName":"Edit File","modelDescription":"Insert new code into an existing file in the workspace. Use this tool once per file that needs to be modified, even if there are multiple changes for a file. Generate the \"explanation\" property first.\nThe system is very smart and can understand how to apply your edits to the files, you just need to provide minimal hints.\nAvoid repeating existing code, instead use comments to represent regions of unchanged code. Be as concise as possible. For example:\n// ...existing code...\n{ changed code }\n// ...existing code...\n{ changed code }\n// ...existing code...\n\nHere is an example of how you should use format an edit to an existing Person class:\nclass Person {\n\t// ...existing code...\n\tage: number;\n\t// ...existing code...\n\tgetAge() {\n\treturn this.age;\n\t}\n}","tags":[],"inputSchema":{"type":"object","properties":{"explanation":{"type":"string","description":"A short explanation of the edit being made."},"filePath":{"type":"string","description":"An absolute path to the file to edit."},"code":{"type":"string","description":"The code change to apply to the file.\nThe system is very smart and can understand how to apply your edits to the files, you just need to provide minimal hints.\nAvoid repeating existing code, instead use comments to represent regions of unchanged code. Be as concise as possible. For example:\n// ...existing code...\n{ changed code }\n// ...existing code...\n{ changed code }\n// ...existing code...\n\nHere is an example of how you should use format an edit to an existing Person class:\nclass Person {\n\t// ...existing code...\n\tage: number;\n\t// ...existing code...\n\tgetAge() {\n\t\treturn this.age;\n\t}\n}"}},"required":["explanation","filePath","code"]}},{"name":"copilot_createFile","toolReferenceName":"createFile","legacyToolReferenceFullNames":["createFile"],"displayName":"Create File","userDescription":"Create new files","modelDescription":"This is a tool for creating a new file in the workspace. The file will be created with the specified content. The directory will be created if it does not already exist. Never use this tool to edit a file that already exists.","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"The absolute path to the file to create."},"content":{"type":"string","description":"The content to write to the file."}},"required":["filePath","content"]}},{"name":"copilot_createDirectory","toolReferenceName":"createDirectory","legacyToolReferenceFullNames":["createDirectory"],"displayName":"Create Directory","userDescription":"Create new directories in your workspace","modelDescription":"Create a new directory structure in the workspace. Will recursively create all directories in the path, like mkdir -p. You do not need to use this tool before using create_file, that tool will automatically create the needed directories.","tags":[],"inputSchema":{"type":"object","properties":{"dirPath":{"type":"string","description":"The absolute path to the directory to create."}},"required":["dirPath"]}},{"name":"copilot_replaceString","toolReferenceName":"replaceString","displayName":"Replace String in File","modelDescription":"This is a tool for making edits in an existing file in the workspace. For moving or renaming files, use run in terminal tool with the 'mv' command instead. For larger edits, split them into smaller edits and call the edit tool multiple times to ensure accuracy. Before editing, always ensure you have the context to understand the file's contents and context. To edit a file, provide: 1) filePath (absolute path), 2) oldString (MUST be the exact literal text to replace including all whitespace, indentation, newlines, and surrounding code etc), and 3) newString (MUST be the exact literal text to replace \\`oldString\\` with (also including all whitespace, indentation, newlines, and surrounding code etc.). Ensure the resulting code is correct and idiomatic.). Each use of this tool replaces exactly ONE occurrence of oldString.\n\nCRITICAL for \\`oldString\\`: Must uniquely identify the single instance to change. Include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string matches multiple locations, or does not match exactly, the tool will fail. Never use 'Lines 123-456 omitted' from summarized documents or ...existing code... comments in the oldString or newString.","when":"!config.github.copilot.chat.disableReplaceTool","inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the file to edit."},"oldString":{"type":"string","description":"The exact literal text to replace, preferably unescaped. For single replacements (default), include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. For multiple replacements, specify expected_replacements parameter. If this string is not the exact literal text (i.e. you escaped it) or does not match exactly, the tool will fail."},"newString":{"type":"string","description":"The exact literal text to replace `old_string` with, preferably unescaped. Provide the EXACT text. Ensure the resulting code is correct and idiomatic."}},"required":["filePath","oldString","newString"]}},{"name":"copilot_multiReplaceString","toolReferenceName":"multiReplaceString","displayName":"Multi-Replace String in Files","modelDescription":"This tool allows you to apply multiple replace_string_in_file operations in a single call, which is more efficient than calling replace_string_in_file multiple times. It takes an array of replacement operations and applies them sequentially. Each replacement operation has the same parameters as replace_string_in_file: filePath, oldString, newString, and explanation. This tool is ideal when you need to make multiple edits across different files or multiple edits in the same file. The tool will provide a summary of successful and failed operations.","when":"!config.github.copilot.chat.disableReplaceTool","inputSchema":{"type":"object","properties":{"explanation":{"type":"string","description":"A brief explanation of what the multi-replace operation will accomplish."},"replacements":{"type":"array","description":"An array of replacement operations to apply sequentially.","items":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the file to edit."},"oldString":{"type":"string","description":"The exact literal text to replace, preferably unescaped. Include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely. If this string is not the exact literal text or does not match exactly, this replacement will fail."},"newString":{"type":"string","description":"The exact literal text to replace `oldString` with, preferably unescaped. Provide the EXACT text. Ensure the resulting code is correct and idiomatic."}},"required":["filePath","oldString","newString"]},"minItems":1}},"required":["explanation","replacements"]}},{"name":"copilot_editNotebook","toolReferenceName":"editNotebook","icon":"$(pencil)","displayName":"Edit Notebook","userDescription":"Edit a notebook file in the workspace","modelDescription":"This is a tool for editing an existing Notebook file in the workspace. Generate the \"explanation\" property first.\nThe system is very smart and can understand how to apply your edits to the notebooks.\nWhen updating the content of an existing cell, ensure newCode preserves whitespace and indentation exactly and does NOT include any code markers such as (...existing code...).","tags":["enable_other_tool_copilot_getNotebookSummary"],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file to edit, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1."},"cellId":{"type":"string","description":"Id of the cell that needs to be deleted or edited. Use the value `TOP`, `BOTTOM` when inserting a cell at the top or bottom of the notebook, else provide the id of the cell after which a new cell is to be inserted. Remember, if a cellId is provided and editType=insert, then a cell will be inserted after the cell with the provided cellId."},"newCode":{"anyOf":[{"type":"string","description":"The code for the new or existing cell to be edited. Code should not be wrapped within tags. Do NOT include code markers such as (...existing code...) to indicate existing code."},{"type":"array","items":{"type":"string","description":"The code for the new or existing cell to be edited. Code should not be wrapped within tags"}}]},"language":{"type":"string","description":"The language of the cell. `markdown`, `python`, `javascript`, `julia`, etc."},"editType":{"type":"string","enum":["insert","delete","edit"],"description":"The operation peformed on the cell, whether `insert`, `delete` or `edit`.\nUse the `editType` field to specify the operation: `insert` to add a new cell, `edit` to modify an existing cell's content, and `delete` to remove a cell."}},"required":["filePath","editType","cellId"]}},{"name":"copilot_runNotebookCell","displayName":"Run Notebook Cell","toolReferenceName":"runNotebookCell","legacyToolReferenceFullNames":["runNotebooks/runCell"],"icon":"$(play)","modelDescription":"This is a tool for running a code cell in a notebook file directly in the notebook editor. The output from the execution will be returned. Code cells should be run as they are added or edited when working through a problem to bring the kernel state up to date and ensure the code executes successfully. Code cells are ready to run and don't require any pre-processing. If asked to run the first cell in a notebook, you should run the first code cell since markdown cells cannot be executed. NOTE: Avoid executing Markdown cells or providing Markdown cell IDs, as Markdown cells cannot be executed.","userDescription":"Trigger the execution of a cell in a notebook file","tags":["enable_other_tool_copilot_getNotebookSummary"],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"},"reason":{"type":"string","description":"An optional explanation of why the cell is being run. This will be shown to the user before the tool is run and is not necessary if it's self-explanatory."},"cellId":{"type":"string","description":"The ID for the code cell to execute. Avoid providing markdown cell IDs as nothing will be executed."},"continueOnError":{"type":"boolean","description":"Whether or not execution should continue for remaining cells if an error is encountered. Default to false unless instructed otherwise."}},"required":["filePath","cellId"]}},{"name":"copilot_getNotebookSummary","toolReferenceName":"getNotebookSummary","legacyToolReferenceFullNames":["runNotebooks/getNotebookSummary"],"displayName":"Get the structure of a notebook","modelDescription":"This is a tool returns the list of the Notebook cells along with the id, cell types, line ranges, language, execution information and output mime types for each cell. This is useful to get Cell Ids when executing a notebook or determine what cells have been executed and what order, or what cells have outputs. If required to read contents of a cell use this to determine the line range of a cells, and then use read_file tool to read a specific line range. Requery this tool if the contents of the notebook change.","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"}},"required":["filePath"]}},{"name":"copilot_readNotebookCellOutput","displayName":"Get Notebook Cell Output","toolReferenceName":"readNotebookCellOutput","legacyToolReferenceFullNames":["runNotebooks/readNotebookCellOutput"],"icon":"$(notebook-render-output)","modelDescription":"This tool will retrieve the output for a notebook cell from its most recent execution or restored from disk. The cell may have output even when it has not been run in the current kernel session. This tool has a higher token limit for output length than the runNotebookCell tool.","userDescription":"Read the output of a previously executed cell","tags":[],"inputSchema":{"type":"object","properties":{"filePath":{"type":"string","description":"An absolute path to the notebook file with the cell to run, or the URI of a untitled, not yet named, file, such as `untitled:Untitled-1.ipynb"},"cellId":{"type":"string","description":"The ID of the cell for which output should be retrieved."}},"required":["filePath","cellId"]}},{"name":"copilot_fetchWebPage","displayName":"Fetch Web Page","toolReferenceName":"fetch","legacyToolReferenceFullNames":["fetch"],"when":"!isWeb","icon":"$(globe)","userDescription":"Fetch the main content from a web page. You should include the URL of the page you want to fetch.","modelDescription":"Fetches the main content from a web page. This tool is useful for summarizing or analyzing the content of a webpage. You should use this tool when you think the user is looking for information from a specific webpage.","tags":[],"inputSchema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"},"description":"An array of URLs to fetch content from."},"query":{"type":"string","description":"The query to search for in the web page's content. This should be a clear and concise description of the content you want to find."}},"required":["urls","query"]}},{"name":"copilot_findTestFiles","displayName":"Find Test Files","icon":"$(beaker)","canBeReferencedInPrompt":false,"toolReferenceName":"findTestFiles","userDescription":"For a source code file, find the file that contains the tests. For a test file, find the file that contains the code under test","modelDescription":"For a source code file, find the file that contains the tests. For a test file find the file that contains the code under test.","tags":[],"inputSchema":{"type":"object","properties":{"filePaths":{"type":"array","items":{"type":"string"}}},"required":["filePaths"]}},{"name":"copilot_githubRepo","toolReferenceName":"githubRepo","legacyToolReferenceFullNames":["githubRepo"],"displayName":"Semantic Search GitHub Repository","modelDescription":"Searches a GitHub repository for relevant source code snippets. Only use this tool if the user is very clearly asking for code snippets from a specific GitHub repository. Do not use this tool for Github repos that the user has open in their workspace.","userDescription":"Semantic Search a GitHub repository for relevant source code snippets. You can specify a repository using `owner/repo`","icon":"$(repo)","when":"!config.github.copilot.chat.githubMcpServer.enabled","inputSchema":{"type":"object","properties":{"repo":{"type":"string","description":"The name of the Github repository to search for code in. Should must be formatted as '/'."},"query":{"type":"string","description":"The query to search for repo. Should contain all relevant context."}},"required":["repo","query"]}},{"name":"copilot_githubTextSearch","legacyToolReferenceFullNames":["githubTextSearch"],"toolReferenceName":"githubTextSearch","displayName":"GitHub Text Search","modelDescription":"Lexically searches a GitHub repository or organization for files containing specific keywords or code patterns. Use this when looking for exact strings, function names, or identifiers in a GitHub repo or org. Unlike the semantic search tool, this uses keyword matching rather than meaning-based search.","userDescription":"Text search a GitHub repository or organization for files containing specific keywords or code patterns.","icon":"$(search)","inputSchema":{"type":"object","properties":{"scope":{"type":"string","description":"The GitHub scope to search. Use 'owner/repo' to search a single repository, or an org name (no slash) to search across an entire organization."},"query":{"type":"string","description":"The keyword search query. Supports GitHub code search syntax such as 'language:typescript', 'extension:ts', 'path:src/', etc."},"maxResults":{"type":"number","description":"Optional. The maximum number of search results to return. Defaults to 100."}},"required":["scope","query"]}},{"name":"copilot_switchAgent","toolReferenceName":"switchAgent","displayName":"Switch Agent","userDescription":"Switch to a different agent mode. Currently only the Plan agent is supported.","modelDescription":"Switch to the Plan agent to align on approach before implementing. Plan will explore the codebase, gathers context, clarifies requirements with the user, and creates an actionable implementation plan.\n\nSWITCH TO PLAN when ANY of these apply:\n1. Adding new functionality - where should it go? What patterns to follow?\n2. Multiple valid approaches exist - choosing between technologies, patterns, or strategies\n3. Modifying existing behavior - unclear what should change or what side effects exist\n4. Architectural decisions required - choosing between design patterns or integration approaches\n5. Changes span multiple files - refactoring, migrations, or cross-cutting concerns\n6. Requirements are underspecified - need to explore before understanding scope\n\nEXAMPLES:\n✓ Switch to Plan:\n- \"Add authentication to the app\" → architectural decisions needed (session vs JWT, middleware)\n- \"Refactor this data flow\" → must understand component dependencies first\n- \"Migrate from X to Y\" → requires understanding current structure\n\n✗ Do NOT switch to Plan:\n- User attached a detailed spec, plan, or requirements doc → context already provided\n- You already started editing files in this conversation → too late to switch\n- Single obvious change like fixing a typo or renaming → just do it\n- User gave explicit step-by-step instructions → follow them directly","when":"config.github.copilot.chat.switchAgent.enabled","icon":"$(arrow-swap)","inputSchema":{"type":"object","properties":{"agentName":{"type":"string","description":"The name of the agent to switch to. Currently only 'Plan' is supported.","enum":["Plan"]}},"required":["agentName"]}},{"name":"copilot_memory","displayName":"Memory","toolReferenceName":"memory","userDescription":"Manage persistent memory across conversations","modelDescription":"Manage a persistent memory system with three scopes for storing notes and information across conversations.\n\nMemory is organized under /memories/ with three tiers:\n- `/memories/` — User memory: persistent notes that survive across all workspaces and conversations. Store preferences, patterns, and general insights here.\n- `/memories/session/` — Session memory: notes scoped to the current conversation. Store task-specific context and in-progress notes here. Cleared after the conversation ends.\n- `/memories/repo/` — Repository memory: repository-scoped notes stored locally in the workspace. Store codebase conventions, build commands, project structure facts, and verified practices here.\n\nIMPORTANT: Before creating new memory files, first view the /memories/ directory to understand what already exists. This helps avoid duplicates and maintain organized notes.\n\nCommands:\n- `view`: View contents of a file or list directory contents. Can be used on files or directories (e.g., \"/memories/\" to see all top-level items).\n- `create`: Create a new file at the specified path with the given content. Fails if the file already exists.\n- `str_replace`: Replace an exact string in a file with a new string. The old_str must appear exactly once in the file.\n- `insert`: Insert text at a specific line number in a file. Line 0 inserts at the beginning.\n- `delete`: Delete a file or directory (and all its contents).\n- `rename`: Rename or move a file or directory from path to new_path. Cannot rename across scopes.","inputSchema":{"type":"object","properties":{"command":{"type":"string","enum":["view","create","str_replace","insert","delete","rename"],"description":"The operation to perform on the memory file system."},"path":{"type":"string","description":"The absolute path to the file or directory inside /memories/, e.g. \"/memories/notes.md\". Used by all commands except `rename`."},"file_text":{"type":"string","description":"Required for `create`. The content of the file to create."},"old_str":{"type":"string","description":"Required for `str_replace`. The exact string in the file to replace. Must appear exactly once."},"new_str":{"type":"string","description":"Required for `str_replace`. The new string to replace old_str with."},"insert_line":{"type":"number","description":"Required for `insert`. The 0-based line number to insert text at. 0 inserts before the first line."},"insert_text":{"type":"string","description":"Required for `insert`. The text to insert at the specified line."},"view_range":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2,"description":"Optional for `view`. A two-element array [start_line, end_line] (1-indexed) to view a specific range of lines."},"old_path":{"type":"string","description":"Required for `rename`. The current path of the file or directory to rename."},"new_path":{"type":"string","description":"Required for `rename`. The new path for the file or directory."}},"required":["command"]}},{"name":"copilot_resolveMemoryFileUri","displayName":"Resolve Memory File URI","toolReferenceName":"resolveMemoryFileUri","userDescription":"Resolve a memory file path to its actual URI","modelDescription":"Resolve a memory file path (like /memories/session/plan.md or /memories/repo/notes.md) to its fully qualified URI. Use this when you need the actual URI for a memory file, for example to pass it to setArtifacts. The path must start with /memories/.","tags":[],"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"The memory file path to resolve (e.g. /memories/session/plan.md)."}},"required":["path"]}},{"name":"copilot_editFiles","modelDescription":"This is a placeholder tool, do not use","userDescription":"Edit files","icon":"$(pencil)","displayName":"Edit Files","toolReferenceName":"editFiles","legacyToolReferenceFullNames":["editFiles"]},{"name":"copilot_sessionStoreSql","displayName":"Session Store SQL","toolReferenceName":"sessionStoreSql","when":"github.copilot.sessionSearch.enabled","userDescription":"Query your Copilot session history using SQL","modelDescription":"Query the local session store containing history from past coding sessions. Uses SQLite syntax (NOT DuckDB or Postgres). SQL queries are read-only — only SELECT and WITH are allowed. Use `datetime('now', '-1 day')` for date math (NOT `now() - INTERVAL '1 day'`), FTS5 `MATCH` for text search.\n\nTables: `sessions`, `turns`, `session_files`, `session_refs`, `checkpoints`, `search_index`. For column details and query patterns, use the **chronicle** skill.\n\nActions: 'query' (execute SQL — supports JOINs, FTS5 MATCH, aggregations), 'reindex' (rebuild index from debug logs).","tags":[],"canBeReferencedInPrompt":false,"inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["query","reindex"],"description":"The action to perform. 'query' (default) executes a SQL query. 'reindex' rebuilds the local session index and syncs to cloud if enabled."},"query":{"type":"string","description":"A single read-only SQL query to execute. Required when action is 'query'. Supports SELECT, WITH, JOINs, aggregations, and FTS5 MATCH. Only one statement per call — do not combine multiple queries with semicolons."},"force":{"type":"boolean","description":"When true with action 'reindex', re-processes all sessions including already-indexed ones. Default false (skips already-indexed sessions)."},"description":{"type":"string","description":"A 2-5 word summary of what this call does (e.g. 'Recent sessions overview', 'Generate standup', 'Reindex sessions')."},"subcommand":{"type":"string","enum":["standup","tips","cost-tips","search","improve","reindex"],"description":"The chronicle subcommand that triggered this call (e.g. 'tips' for /chronicle tips). Used for telemetry attribution only — pass this whenever the call originates from a /chronicle slash command."}},"required":["description"]}}],"languageModelToolSets":[{"name":"edit","description":"Edit files in your workspace","icon":"$(pencil)","tools":["createDirectory","createFile","createJupyterNotebook","editFiles","editNotebook","rename"]},{"name":"execute","description":"","tools":["runNotebookCell","executionSubagent"]},{"name":"read","description":"Read files in your workspace","icon":"$(eye)","tools":["getNotebookSummary","problems","readFile","viewImage","readNotebookCellOutput","skill"]},{"name":"search","description":"Search files in your workspace","icon":"$(search)","tools":["changes","codebase","fileSearch","listDirectory","textSearch","searchSubagent","usages"]},{"name":"vscode","description":"","tools":["installExtension","memory","newWorkspace","resolveMemoryFileUri","runCommand","switchAgent","toolSearch","vscodeAPI"]},{"name":"web","description":"Fetch information from the web","icon":"$(globe)","tools":["fetch","githubRepo","githubTextSearch"]}],"chatParticipants":[{"id":"github.copilot.default","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["panel"],"modes":["ask"],"disambiguation":[{"category":"generate_code_sample","description":"The user wants to generate code snippets without referencing the contents of the current workspace. This category does not include generating entire projects.","examples":["Write an example of computing a SHA256 hash."]},{"category":"add_feature_to_file","description":"The user wants to change code in a file that is provided in their request, without referencing the contents of the current workspace. This category does not include generating entire projects.","examples":["Add a refresh button to the table widget."]},{"category":"question_about_specific_files","description":"The user has a question about a specific file or code snippet that they have provided as part of their query, and the question does not require additional workspace context to answer.","examples":["What does this file do?"]}],"commands":[{"name":"explain","description":"Explain how the code in your active editor works"},{"name":"review","description":"Review the selected code in your active editor","when":"github.copilot.advanced.review.intent"},{"name":"tests","description":"Generate unit tests for the selected code","disambiguation":[{"category":"create_tests","description":"The user wants to generate unit tests.","examples":["Generate tests for my selection using pytest."]}]},{"name":"fix","description":"Propose a fix for the problems in the selected code","sampleRequest":"There is a problem in this code. Rewrite the code to show it with the bug fixed."},{"name":"new","description":"Scaffold code for a new file or project in a workspace","sampleRequest":"Create a RESTful API server using typescript","isSticky":true,"disambiguation":[{"category":"create_new_workspace_or_extension","description":"The user wants to create a complete Visual Studio Code workspace from scratch, such as a new application or a Visual Studio Code extension. Use this category only if the question relates to generating or creating new workspaces in Visual Studio Code. Do not use this category for updating existing code or generating sample code snippets","examples":["Scaffold a Node server.","Create a sample project which uses the fileSystemProvider API.","react application"]}]},{"name":"newNotebook","description":"Create a new Jupyter Notebook","sampleRequest":"How do I create a notebook to load data from a csv file?","disambiguation":[{"category":"create_jupyter_notebook","description":"The user wants to create a new Jupyter notebook in Visual Studio Code.","examples":["Create a notebook to analyze this CSV file."]}]},{"name":"semanticSearch","description":"Find relevant code to your query","sampleRequest":"Where is the toolbar code?","when":"config.github.copilot.semanticSearch.enabled"},{"name":"setupTests","description":"Set up tests in your project (Experimental)","sampleRequest":"add playwright tests to my project","when":"config.github.copilot.chat.setupTests.enabled","disambiguation":[{"category":"set_up_tests","description":"The user wants to configure project test setup, framework, or test runner. The user does not want to fix their existing tests.","examples":["Set up tests for this project."]}]}]},{"id":"github.copilot.editingSession","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Edit files in your workspace","isDefault":true,"locations":["panel"],"modes":["edit"]},{"id":"github.copilot.editingSessionEditor","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Edit files in your workspace","isDefault":true,"locations":["editor"],"commands":[]},{"id":"github.copilot.editsAgent","name":"agent","fullName":"GitHub Copilot","description":"Edit files in your workspace in agent mode","locations":["panel"],"modes":["agent"],"isEngine":true,"isDefault":true,"isAgent":true,"when":"config.chat.agent.enabled","commands":[{"name":"error","description":"Make a model request which will result in an error","when":"github.copilot.chat.debug"},{"name":"compact","description":"Free up context by compacting the conversation history. Optionally include extra instructions for compaction."},{"name":"explain","description":"Explain how the code in your active editor works"},{"name":"review","description":"Review the selected code in your active editor","when":"github.copilot.advanced.review.intent"},{"name":"tests","description":"Generate unit tests for the selected code","disambiguation":[{"category":"create_tests","description":"The user wants to generate unit tests.","examples":["Generate tests for my selection using pytest."]}]},{"name":"fix","description":"Propose a fix for the problems in the selected code","sampleRequest":"There is a problem in this code. Rewrite the code to show it with the bug fixed."},{"name":"new","description":"Scaffold code for a new file or project in a workspace","sampleRequest":"Create a RESTful API server using typescript","isSticky":true,"disambiguation":[{"category":"create_new_workspace_or_extension","description":"The user wants to create a complete Visual Studio Code workspace from scratch, such as a new application or a Visual Studio Code extension. Use this category only if the question relates to generating or creating new workspaces in Visual Studio Code. Do not use this category for updating existing code or generating sample code snippets","examples":["Scaffold a Node server.","Create a sample project which uses the fileSystemProvider API.","react application"]}]},{"name":"newNotebook","description":"Create a new Jupyter Notebook","sampleRequest":"How do I create a notebook to load data from a csv file?","disambiguation":[{"category":"create_jupyter_notebook","description":"The user wants to create a new Jupyter notebook in Visual Studio Code.","examples":["Create a notebook to analyze this CSV file."]}]},{"name":"semanticSearch","description":"Find relevant code to your query","sampleRequest":"Where is the toolbar code?","when":"config.github.copilot.semanticSearch.enabled"},{"name":"setupTests","description":"Set up tests in your project (Experimental)","sampleRequest":"add playwright tests to my project","when":"config.github.copilot.chat.setupTests.enabled","disambiguation":[{"category":"set_up_tests","description":"The user wants to configure project test setup, framework, or test runner. The user does not want to fix their existing tests.","examples":["Set up tests for this project."]}]}]},{"id":"github.copilot.notebook","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["notebook"],"when":"!config.inlineChat.notebookAgent","commands":[{"name":"fix","description":"Propose a fix for the problems in the selected code"},{"name":"explain","description":"Explain how the code in your active editor works"}]},{"id":"github.copilot.notebookEditorAgent","name":"GitHubCopilot","fullName":"GitHub Copilot","description":"Ask or edit in context","isDefault":true,"locations":["notebook"],"when":"config.inlineChat.notebookAgent","commands":[{"name":"fix","description":"Propose a fix for the problems in the selected code"},{"name":"explain","description":"Explain how the code in your active editor works"}]},{"id":"github.copilot.vscode","name":"vscode","fullName":"VS Code","description":"Ask questions about VS Code","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"What is the command to open the integrated terminal?","locations":["panel"],"disambiguation":[{"category":"vscode_configuration_questions","description":"The user wants to learn about, use, or configure the Visual Studio Code. Use this category if the users question is specifically about commands, settings, keybindings, extensions and other features available in Visual Studio Code. Do not use this category to answer questions about generating code or creating new projects including Visual Studio Code extensions.","examples":["Switch to light mode.","Keyboard shortcut to toggle terminal visibility.","Settings to enable minimap.","Whats new in the latest release?"]},{"category":"configure_python_environment","description":"The user wants to set up their Python environment.","examples":["Create a virtual environment for my project."]}],"commands":[{"name":"search","description":"Generate query parameters for workspace search","sampleRequest":"Search for 'foo' in all files under my 'src' directory"}]},{"id":"github.copilot.terminal","name":"terminal","fullName":"Terminal","description":"Ask about commands","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"How do I view all files within a directory including sub-directories?","isDefault":true,"locations":["terminal"],"commands":[{"name":"explain","description":"Explain something in the terminal","sampleRequest":"Explain the last command"}]},{"id":"github.copilot.terminalPanel","name":"terminal","fullName":"Terminal","description":"Ask how to do something in the terminal","when":"!github.copilot.interactiveSession.disabled","sampleRequest":"How do I view all files within a directory including sub-directories?","locations":["panel"],"commands":[{"name":"explain","description":"Explain something in the terminal","sampleRequest":"Explain the last command","disambiguation":[{"category":"terminal_state_questions","description":"The user wants to learn about specific state such as the selection, command, or failed command in the integrated terminal in Visual Studio Code.","examples":["Why did the latest terminal command fail?"]}]}]}],"languageModelChatProviders":[{"vendor":"copilot","displayName":"Copilot"},{"vendor":"copilotcli","displayName":"Copilot CLI","when":"false"},{"vendor":"anthropic","displayName":"Anthropic","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for Anthropic","title":"API Key"}},"required":["apiKey"]}},{"vendor":"xai","displayName":"xAI","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for xAI","title":"API Key"}},"required":["apiKey"]}},{"vendor":"gemini","displayName":"Google","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for Google Gemini","title":"API Key"}},"required":["apiKey"]}},{"vendor":"openrouter","displayName":"OpenRouter","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for OpenRouter","title":"API Key"}},"required":["apiKey"]}},{"vendor":"openai","displayName":"OpenAI","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for OpenAI","title":"API Key"},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this provider group. When `true`, OpenAI Responses requests from this group do not send `previous_response_id`."}},"required":["apiKey"]}},{"vendor":"ollama","displayName":"Ollama (Deprecated)","deprecation":{"link":"vscode:extension/Ollama.ollama"},"configuration":{"type":"object","properties":{"url":{"type":"string","description":"The endpoint URL for the Ollama server","default":"http://localhost:11434","title":"URL"}},"required":["url"]}},{"vendor":"customoai","when":"productQualityType != 'stable'","displayName":"OpenAI Compatible (Deprecated)","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for the models","title":"API Key","markdownDeprecationMessage":"**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API — selectable per model via the `apiType` property."},"models":{"type":"array","markdownDeprecationMessage":"**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API — selectable per model via the `apiType` property.","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the custom OpenAI model"},"url":{"type":"string","markdownDescription":"URL endpoint for the custom OpenAI-compatible model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths including `/responses` or `/chat/completions` are respected."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"editTools":{"type":"array","description":"List of edit tools supported by the model. If this is not configured, the editor will try multiple edit tools and pick the best one.\n\n- 'find-replace': Find and replace text in a document.\n- 'multi-find-replace': Find and replace text in a document.\n- 'apply-patch': A file-oriented diff format used by some OpenAI models\n- 'code-rewrite': A general but slower editing tool that allows the model to rewrite and code snippet and provide only the replacement to the editor.","items":{"type":"string","enum":["find-replace","multi-find-replace","apply-patch","code-rewrite"]}},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}},{"vendor":"customendpoint","displayName":"Custom Endpoint","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"minLength":1,"description":"API key for the models","title":"API Key"},"apiType":{"type":"string","enum":["chat-completions","responses","messages"],"enumItemLabels":["Chat Completions","Responses","Messages"],"enumDescriptions":["Chat Completions API","Responses API","Messages API"],"default":"chat-completions","title":"API Type","markdownDescription":"Default request/response format for models in this group. Individual models can override this with their own `apiType` property; when both are unset the type is inferred from the URL path."},"models":{"type":"array","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the model"},"url":{"type":"string","pattern":"^https?://.+","patternErrorMessage":"URL must start with http:// or https://","markdownDescription":"URL endpoint for the model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths are respected: `/chat/completions`, `/responses`, and `/v1/messages` (Anthropic-compatible). Use the `apiType` property to override the request/response format independently of the URL."},"apiType":{"type":"string","enum":["chat-completions","responses","messages"],"enumItemLabels":["Chat Completions","Responses","Messages"],"enumDescriptions":["Chat Completions API","Responses API","Messages API"],"title":"API Type","markdownDescription":"Request/response format used to talk to this endpoint:\n- `chat-completions`: Chat Completions API (default).\n- `responses`: Responses API.\n- `messages`: Messages API.\n\nWhen omitted, falls back to the group-level `apiType`, then to the URL path."},"adaptiveThinking":{"type":"boolean","default":false,"markdownDescription":"Whether the Messages API model supports adaptive thinking. When enabled, requests use `thinking.type: \"adaptive\"`."},"minThinkingBudget":{"type":"integer","minimum":1,"markdownDescription":"Minimum thinking-token budget supported by a non-adaptive Messages API model. `maxThinkingBudget` must also be set."},"maxThinkingBudget":{"type":"integer","minimum":1,"markdownDescription":"Maximum thinking-token budget supported by a non-adaptive Messages API model. `minThinkingBudget` must also be set."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"editTools":{"type":"array","description":"List of edit tools supported by the model. If this is not configured, the editor will try multiple edit tools and pick the best one.\n\n- 'find-replace': Find and replace text in a document.\n- 'multi-find-replace': Find and replace text in a document.\n- 'apply-patch': A file-oriented diff format used by some OpenAI models\n- 'code-rewrite': A general but slower editing tool that allows the model to rewrite and code snippet and provide only the replacement to the editor.","items":{"type":"string","enum":["find-replace","multi-find-replace","apply-patch","code-rewrite"]}},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}},"modelOptions":{"type":"object","markdownDescription":"Sampling parameters to send with requests to this model. These override Copilot's defaults but are overridden by explicit per-request values. Set a property to `null` to omit it and use the model server's default.","properties":{"temperature":{"type":["number","null"],"minimum":0,"markdownDescription":"Sampling temperature. Set to `null` to omit the parameter."},"top_p":{"type":["number","null"],"minimum":0,"maximum":1,"markdownDescription":"Nucleus sampling probability. Set to `null` to omit the parameter."}},"additionalProperties":false}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}},{"vendor":"azure","displayName":"Azure","configuration":{"type":"object","properties":{"apiKey":{"type":"string","secret":true,"description":"API key for the models. If not set then Entra ID (Azure AD) authentication with your Microsoft account credentials will be used.","title":"API Key"},"models":{"type":"array","defaultSnippets":[{"label":"New Model","description":"Add a new custom model configuration","body":[{"id":"$1","name":"$2","url":"$3","toolCalling":"^${4|true,false|}","vision":"^${5|true,false|}","maxInputTokens":"^${6:128000}","maxOutputTokens":"^${7:16000}"}]}],"items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the model"},"name":{"type":"string","description":"Display name of the custom OpenAI model"},"url":{"type":"string","markdownDescription":"URL endpoint for the custom OpenAI-compatible model.\n\n**Important:** Base URLs default to Chat Completions API. Explicit API paths including `/responses` or `/chat/completions` are respected."},"toolCalling":{"type":"boolean","description":"Whether the model supports tool calling"},"vision":{"type":"boolean","description":"Whether the model supports vision capabilities"},"maxInputTokens":{"type":"number","markdownDescription":"Maximum number of input (prompt) tokens supported by the model. Optional when `contextWindow` is set, in which case it is derived as `contextWindow - maxOutputTokens`."},"maxOutputTokens":{"type":"number","description":"Maximum number of output tokens supported by the model"},"contextWindow":{"type":"number","markdownDescription":"The model's full context window (input + output) in tokens, e.g. `1000000` for a 1M model. When set it is the source of truth for the context window and `maxInputTokens` can be omitted. Otherwise the window is derived as `maxInputTokens + maxOutputTokens`."},"thinking":{"type":"boolean","default":false,"description":"Whether the model supports thinking capabilities"},"streaming":{"type":"boolean","default":true,"description":"Whether the model supports streaming responses. Defaults to true."},"zeroDataRetentionEnabled":{"type":"boolean","default":false,"markdownDescription":"Whether Zero Data Retention (ZDR) is enabled for this endpoint. When `true`, `previous_response_id` will not be sent in requests via Responses API."},"supportsReasoningEffort":{"type":"array","markdownDescription":"Reasoning effort levels the model accepts (e.g. `[\"low\", \"medium\", \"high\"]`). When set, a `Thinking Effort` picker is shown in the model picker and the chosen value is forwarded to the model. Levels supported by mainstream OpenAI-compatible servers are `minimal`, `low`, `medium`, `high`.","items":{"type":"string"}},"reasoningEffortFormat":{"type":"string","enum":["chat-completions","responses","messages"],"markdownDescription":"Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` → nested, `/messages` → `output_config.effort`, otherwise top-level."},"requestHeaders":{"type":"object","description":"Additional HTTP headers to include with requests to this model. These reserved headers are not allowed and ignored if present: forbidden request headers (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header), forwarding headers ('forwarded', 'x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto'), and others ('api-key', 'authorization', 'content-type', 'openai-intent', 'x-github-api-version', 'x-initiator', 'x-interaction-id', 'x-interaction-type', 'x-onbehalf-extension-id', 'x-request-id', 'x-vscode-user-agent-library-version'). Pattern-based forbidden headers ('proxy-*', 'sec-*', 'x-http-method*' with forbidden methods) are also blocked.","additionalProperties":{"type":"string"}}},"required":["id","name","url","toolCalling","vision","maxOutputTokens"],"anyOf":[{"required":["maxInputTokens"]},{"required":["contextWindow"]}]}}}}}],"interactiveSession":[{"label":"GitHub Copilot","id":"copilot","icon":"","when":"!github.copilot.interactiveSession.disabled"}],"mcpServerDefinitionProviders":[{"id":"github","label":"GitHub"}],"viewsWelcome":[{"view":"debug","when":"github.copilot-chat.activated","contents":"Debug using a [terminal command](command:github.copilot.chat.startCopilotDebugCommand) or in an [interactive chat](command:workbench.action.chat.open?%7B%22query%22%3A%22%40vscode%20%2FstartDebugging%20%22%2C%22isPartialQuery%22%3Atrue%7D)."}],"chatViewsWelcome":[{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your Copilot subscription has expired.\n\n[Review Copilot Settings](https://github.com/settings/copilot?editor=vscode)","when":"github.copilot.interactiveSession.individual.expired && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Contact your GitHub organization administrator to enable Copilot.","when":"github.copilot.interactiveSession.enterprise.disabled && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub Copilot servers could not be reached. Please check your internet connection and try again.\n\n[Retry Connection](command:github.copilot.refreshToken)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.offline && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your GitHub token is invalid. Please sign in again to refresh your authentication.\n\n[Sign In](command:workbench.action.chat.triggerSetupForceSignIn)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.invalidToken && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"Your account has exceeded GitHub's API rate limit. Please wait a few minutes and try again.\n\n[Retry](command:github.copilot.refreshToken)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.rateLimited && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub login failed. Please sign in to your GitHub account to use Copilot.\n\n[Sign In](command:workbench.action.chat.triggerSetupForceSignIn)\n\nSee also [Copilot log](command:github.copilot.debug.showOutputChannel.internal) and [run diagnostics](command:github.copilot.debug.collectDiagnostics.internal).","when":"github.copilot.interactiveSession.gitHubLoginFailed && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"There seems to be a problem with your account. Please contact GitHub support.\n\n[Contact Support](https://support.github.com/?editor=vscode)","when":"github.copilot.interactiveSession.contactSupport && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"GitHub Copilot Chat is currently disabled for your account by an organization administrator. Contact an organization administrator to enable chat.\n\n[Learn More](https://docs.github.com/en/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/managing-policies-for-copilot-in-your-organization)","when":"github.copilot.interactiveSession.chatDisabled && !github.copilot.hasByokModels"},{"icon":"$(chat-sparkle)","title":"Build with Agent","content":"The Pre-Release version of the GitHub Copilot Chat extension is not currently supported in the stable version of VS Code. Please switch to the release version for GitHub Copilot Chat or try VS Code Insiders.\n\n[Switch to Release Version and Reload](command:runCommands?%7B%22commands%22%3A%5B%7B%22command%22%3A%22workbench.extensions.action.switchToRelease%22%2C%22args%22%3A%5B%22GitHub.copilot-chat%22%5D%7D%2C%22workbench.action.reloadWindow%22%5D%7D)\n\n[Switch to VS Code Insiders](https://aka.ms/vscode-insiders)","when":"github.copilot.interactiveSession.switchToReleaseChannel"}],"commands":[{"command":"github.copilot.chat.triggerPermissiveSignIn","title":"Login to GitHub with Full Permissions"},{"command":"github.copilot.cli.sessions.delete","title":"Delete...","icon":"$(close)","category":"Copilot CLI"},{"command":"agents.github.copilot.cli.deleteSessions","title":"Delete...","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.resumeInTerminal","title":"Resume in Terminal","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.rename","title":"Rename...","icon":"$(edit)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.setTitle","title":"Set Title","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openRepository","title":"Open Repository","icon":"$(folder-opened)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","title":"Open Session in New Window","icon":"$(folder-opened)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","title":"Open Session in Terminal","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","title":"Copy Session Branch Name","icon":"$(copy)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.commitToWorktree","title":"Commit File to Worktree","icon":"$(git-commit)","category":"Copilot CLI"},{"command":"github.copilot.cli.sessions.commitToRepository","title":"Commit File to Repository","icon":"$(git-commit)","category":"Copilot CLI"},{"command":"github.copilot.cli.newSession","title":"New Copilot CLI Session","icon":"$(terminal)","category":"Chat"},{"command":"github.copilot.cli.newSessionToSide","title":"New Copilot CLI Session to the Side","icon":"$(terminal)","category":"Chat"},{"command":"github.copilot.cli.openInCopilotCLI","title":"Open in GitHub Copilot CLI","icon":"$(terminal)","category":"Copilot CLI"},{"command":"github.copilot.chat.compact","title":"Compact Conversation"},{"command":"github.copilot.chat.explain","title":"Explain","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.explain.palette","title":"Explain","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.chat.review","title":"Review","enablement":"config.github.copilot.chat.reviewSelection.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.apply","title":"Apply","icon":"$(sparkle)","enablement":"commentThread =~ /hasSuggestion/","category":"Chat"},{"command":"github.copilot.chat.review.applyAndNext","title":"Apply and Go to Next","icon":"$(sparkle)","enablement":"commentThread =~ /hasSuggestion/","category":"Chat"},{"command":"github.copilot.chat.review.discard","title":"Discard","icon":"$(close)","category":"Chat"},{"command":"github.copilot.chat.review.discardAndNext","title":"Discard and Go to Next","icon":"$(close)","category":"Chat"},{"command":"github.copilot.chat.review.discardAll","title":"Discard All","icon":"$(close-all)","category":"Chat"},{"command":"github.copilot.chat.review.stagedChanges","title":"Code Review - Staged Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.unstagedChanges","title":"Code Review - Unstaged Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.changes","title":"Code Review - Uncommitted Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.stagedFileChange","title":"Review Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.unstagedFileChange","title":"Review Changes","icon":"$(code-review)","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.codeReview.run","title":"Run Code Review","enablement":"github.copilot.chat.reviewDiff.enabled && !github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.chat.review.previous","title":"Previous Suggestion","icon":"$(arrow-up)","category":"Chat"},{"command":"github.copilot.chat.review.next","title":"Next Suggestion","icon":"$(arrow-down)","category":"Chat"},{"command":"github.copilot.chat.review.continueInInlineChat","title":"Discard and Copy to Inline Chat","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.chat.review.continueInChat","title":"View in Chat Panel","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.chat.review.markHelpful","title":"Helpful","icon":"$(thumbsup)","enablement":"!(commentThread =~ /markedAsHelpful/)","category":"Chat"},{"command":"github.copilot.chat.openUserPreferences","title":"Open User Preferences","category":"Chat","enablement":"config.github.copilot.chat.enableUserPreferences"},{"command":"github.copilot.chat.review.markUnhelpful","title":"Unhelpful","icon":"$(thumbsdown)","enablement":"!(commentThread =~ /markedAsUnhelpful/)","category":"Chat"},{"command":"github.copilot.chat.generate","title":"Generate This","icon":"$(sparkle)","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.chat.fix","title":"Fix","enablement":"!github.copilot.interactiveSession.disabled && !editorReadonly","category":"Chat"},{"command":"github.copilot.interactiveSession.feedback","title":"Send Chat Feedback","enablement":"github.copilot-chat.activated && !github.copilot.interactiveSession.disabled","icon":"$(feedback)","category":"Chat"},{"command":"github.copilot.debug.workbenchState","title":"Log Workbench State","category":"Developer"},{"command":"github.copilot.debug.togglePowerSaveBlocker","title":"Toggle Power Save Blocker","category":"Developer"},{"command":"github.copilot.debug.showChatLogView","title":"Show Chat Debug View","category":"Developer"},{"command":"github.copilot.debug.showOutputChannel","title":"Show Output Channel","category":"Developer"},{"command":"github.copilot.debug.showContextInspectorView","title":"Inspect Language Context","icon":"$(inspect)","category":"Developer"},{"command":"github.copilot.debug.logTypeScriptContainers","title":"Log TypeScript Containers","enablement":"editorLangId == typescript || editorLangId == javascript","category":"Developer"},{"command":"github.copilot.debug.validateNesRename","title":"Validate NES Rename","category":"Developer"},{"command":"github.copilot.debug.resetVirtualToolGroups","title":"Reset Virtual Tool Groups","icon":"$(inspect)","category":"Developer"},{"command":"github.copilot.debug.extensionState","title":"Log Extension State","category":"Developer"},{"command":"github.copilot.chat.tools.memory.showMemories","title":"Show Memory Files","category":"Chat"},{"command":"github.copilot.chat.tools.memory.clearMemories","title":"Clear All Memory Files","category":"Chat"},{"command":"github.copilot.terminal.explainTerminalLastCommand","title":"Explain Last Terminal Command","category":"Chat"},{"command":"github.copilot.git.generateCommitMessage","title":"Generate Commit Message","icon":"$(sparkle)","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.git.resolveMergeConflicts","title":"Resolve Conflicts with AI","icon":"$(chat-sparkle)","enablement":"!github.copilot.interactiveSession.disabled","category":"Chat"},{"command":"github.copilot.devcontainer.generateDevContainerConfig","title":"Generate Dev Container Configuration","category":"Chat"},{"command":"github.copilot.tests.fixTestFailure","icon":"$(sparkle)","title":"Fix Test Failure","category":"Chat"},{"command":"github.copilot.tests.fixTestFailure.fromInline","icon":"$(sparkle)","title":"Fix Test Failure"},{"command":"github.copilot.chat.attachFile","title":"Add File to Chat","category":"Chat"},{"command":"github.copilot.chat.attachSelection","title":"Add Selection to Chat","icon":"$(comment-discussion)","category":"Chat"},{"command":"github.copilot.debug.collectDiagnostics","title":"Chat Diagnostics","category":"Developer"},{"command":"github.copilot.debug.inlineEdit.clearCache","title":"Clear Inline Suggestion Cache","category":"Developer"},{"command":"github.copilot.debug.inlineEdit.reportNotebookNESIssue","title":"Report Notebook Inline Suggestion Issue","enablement":"config.github.copilot.chat.advanced.notebook.alternativeNESFormat.enabled || github.copilot.chat.enableEnhancedNotebookNES","category":"Developer"},{"command":"github.copilot.debug.generateSTest","title":"Generate STest From Last Chat Request","enablement":"github.copilot.debugReportFeedback","category":"Developer"},{"command":"github.copilot.open.walkthrough","title":"Open Walkthrough","category":"Chat"},{"command":"github.copilot.debug.generateInlineEditTests","title":"Generate Inline Edit Tests","category":"Chat","enablement":"resourceScheme == 'ccreq'"},{"command":"github.copilot.buildRemoteWorkspaceIndex","title":"Build Codebase Semantic Index","category":"Chat","enablement":"github.copilot-chat.activated"},{"command":"github.copilot.deleteExternalIngestWorkspaceIndex","title":"Delete External Ingest Codebase Index","category":"Developer","enablement":"github.copilot-chat.activated && !github.copilot.blackbirdExternalIndexingDisabled"},{"command":"github.copilot.report","title":"Report Issue","category":"Chat"},{"command":"github.copilot.chat.rerunWithCopilotDebug","title":"Debug Last Terminal Command","category":"Chat"},{"command":"github.copilot.chat.startCopilotDebugCommand","title":"Start Copilot Debug"},{"command":"github.copilot.chat.clearTemporalContext","title":"Clear Temporal Context","category":"Developer"},{"command":"github.copilot.search.markHelpful","title":"Helpful","icon":"$(thumbsup)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.search.markUnhelpful","title":"Unhelpful","icon":"$(thumbsdown)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.search.feedback","title":"Feedback","icon":"$(feedback)","enablement":"!github.copilot.search.feedback.sent"},{"command":"github.copilot.chat.debug.showElements","title":"Show Rendered Elements"},{"command":"github.copilot.chat.debug.hideElements","title":"Hide Rendered Elements"},{"command":"github.copilot.chat.debug.showTools","title":"Show Tools"},{"command":"github.copilot.chat.debug.hideTools","title":"Hide Tools"},{"command":"github.copilot.chat.debug.showNesRequests","title":"Show NES Requests"},{"command":"github.copilot.chat.debug.hideNesRequests","title":"Hide NES Requests"},{"command":"github.copilot.chat.debug.showGhostRequests","title":"Show Ghost Requests"},{"command":"github.copilot.chat.debug.hideGhostRequests","title":"Hide Ghost Requests"},{"command":"github.copilot.chat.debug.showRawRequestBody","title":"Show Raw Request Body"},{"command":"github.copilot.chat.debug.exportLogItem","title":"Export as...","icon":"$(export)"},{"command":"github.copilot.chat.debug.exportPromptArchive","title":"Export All as Archive...","icon":"$(archive)"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","title":"Export All as JSON...","icon":"$(export)"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","title":"Export All Prompt Logs as JSON...","icon":"$(export)"},{"command":"github.copilot.chat.otel.exportAgentTracesDB","title":"Export Agent Traces DB","category":"Chat","enablement":"config.github.copilot.chat.otel.dbSpanExporter.enabled"},{"command":"github.copilot.chat.otel.statusActive","title":"OpenTelemetry","category":"Chat","icon":"$(broadcast)"},{"command":"github.copilot.sessionSync.deleteSessions","title":"Delete Session Sync Data","category":"Chat","enablement":"github.copilot.sessionSearch.enabled && config.chat.sessionSync.enabled"},{"command":"github.copilot.chronicle.reindex","title":"Reindex Sessions","category":"Chat","enablement":"github.copilot.sessionSearch.enabled"},{"command":"github.copilot.nes.captureExpected.start","title":"Record Expected Edit (NES)","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.confirm","title":"Confirm and Save Expected Edit Capture","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.abort","title":"Cancel Expected Edit Capture","category":"Copilot"},{"command":"github.copilot.nes.captureExpected.submit","title":"Submit NES Captures","category":"Copilot"},{"command":"github.copilot.debug.collectWorkspaceIndexDiagnostics","title":"Collect Workspace Index Diagnostics","category":"Developer"},{"command":"github.copilot.chat.mcp.setup.check","title":"MCP Check: is supported"},{"command":"github.copilot.chat.mcp.setup.validatePackage","title":"MCP Check: validate package"},{"command":"github.copilot.chat.mcp.setup.flow","title":"MCP Check: do prompts"},{"command":"github.copilot.chat.generateAltText","title":"Generate/Refine Alt Text"},{"command":"github.copilot.chat.notebook.enableFollowCellExecution","title":"Enable Follow Cell Execution from Chat","shortTitle":"Follow","icon":"$(pinned)"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","title":"Disable Follow Cell Execution from Chat","shortTitle":"Unfollow","icon":"$(pinned-dirty)"},{"command":"github.copilot.cloud.resetWorkspaceConfirmations","title":"Reset Cloud Agent Workspace Confirmations"},{"command":"github.copilot.cloud.sessions.openInBrowser","title":"Open in Browser","icon":"$(link-external)"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","title":"Close Pull Request"},{"command":"github.copilot.cloud.sessions.installPRExtension","title":"Install GitHub Pull Request Extension","icon":"$(extensions)"},{"command":"github.copilot.chat.openSuggestionsPanel","title":"Open Completions Panel","enablement":"github.copilot.extensionUnification.activated && !isWeb","category":"GitHub Copilot"},{"command":"github.copilot.chat.toggleStatusMenu","title":"Open Status Menu","enablement":"github.copilot.extensionUnification.activated","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.disable","title":"Disable Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated && config.editor.inlineSuggest.enabled && github.copilot.completions.enabled","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.enable","title":"Enable Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated && !(config.editor.inlineSuggest.enabled && github.copilot.completions.enabled)","category":"GitHub Copilot"},{"command":"github.copilot.chat.completions.toggle","title":"Toggle (Enable/Disable) Inline Suggestions","enablement":"github.copilot.extensionUnification.activated && github.copilot.activated","category":"GitHub Copilot"},{"command":"github.copilot.chat.openModelPicker","title":"Change Completions Model","category":"GitHub Copilot","enablement":"github.copilot.extensionUnification.activated && !isWeb && github.copilot.completions.hasMultipleModels"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","title":"Apply Changes to Workspace","enablement":"!chatSessionRequestInProgress","category":"GitHub Copilot"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","title":"Apply","enablement":"!chatSessionRequestInProgress","icon":"$(git-stash-pop)","category":"GitHub Copilot"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","title":"Merge Changes","enablement":"!chatSessionRequestInProgress","icon":"$(git-merge)","category":"GitHub Copilot"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","title":"Merge Changes & Sync","enablement":"!chatSessionRequestInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.commit","title":"Commit Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-commit)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.commitAndSync","title":"Commit and Sync Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.sync","title":"Sync Changes","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(sync)","category":"GitHub Copilot"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","title":"Create PR","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-pull-request-create)","category":"GitHub Copilot"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","title":"Create Draft PR","enablement":"!chatSessionRequestInProgress && !sessions.hasGitOperationInProgress","icon":"$(git-pull-request-draft)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.discardChanges","title":"Discard Changes","enablement":"!chatSessionRequestInProgress","icon":"$(discard)","category":"GitHub Copilot"},{"command":"github.copilot.chat.copilotCLI.addFileReference","title":"Add File to Copilot CLI","enablement":"github.copilot.chat.copilotCLI.hasSession","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.addSelection","title":"Add Selection to Copilot CLI","enablement":"github.copilot.chat.copilotCLI.hasSession","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.acceptDiff","title":"Accept Changes","enablement":"github.copilot.chat.copilotCLI.hasActiveDiff","icon":"$(check)","category":"Copilot CLI"},{"command":"github.copilot.chat.copilotCLI.rejectDiff","title":"Reject Changes","enablement":"github.copilot.chat.copilotCLI.hasActiveDiff","icon":"$(close)","category":"Copilot CLI"},{"command":"github.copilot.chat.checkoutPullRequestReroute","title":"Checkout","icon":"$(git-pull-request)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","title":"Create Pull Request","icon":"$(git-pull-request-create)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","title":"Open Pull Request","icon":"$(git-pull-request)","category":"GitHub Pull Request"},{"command":"github.copilot.chat.cloudSessions.openRepository","title":"Browse repositories...","icon":"$(repo)","category":"GitHub Copilot"},{"command":"github.copilot.chat.cloudSessions.clearCaches","title":"Clear Cloud Agent Caches","category":"GitHub Copilot"},{"command":"github.copilot.sessions.refreshChanges","title":"Refresh","icon":"$(refresh)","category":"GitHub Copilot"},{"command":"github.copilot.sessions.initializeRepository","title":"Initialize Repository","enablement":"!chatSessionRequestInProgress","icon":"$(repo)","category":"GitHub Copilot"}],"configuration":[{"title":"GitHub Copilot Chat","id":"stable","properties":{"github.copilot.chat.backgroundAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Copilot CLI. When disabled, the Copilot CLI will not be available in 'Continue In' context menus."},"github.copilot.chat.cloudAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Cloud Agent. When disabled, the Cloud Agent will not be available in 'Continue In' context menus."},"github.copilot.chat.localIndex.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable local session tracking. When enabled, session data is tracked locally for /chronicle commands.","tags":["onExp"]},"github.copilot.chat.codeGeneration.useInstructionFiles":{"type":"boolean","default":true,"markdownDescription":"Controls whether code instructions from `.github/copilot-instructions.md` are added to Copilot requests.\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance. [Learn more](https://aka.ms/github-copilot-custom-instructions) about customizing Copilot."},"github.copilot.editor.enableCodeActions":{"type":"boolean","default":true,"description":"Controls if Copilot commands are shown as Code Actions when available"},"github.copilot.renameSuggestions.triggerAutomatically":{"type":"boolean","default":true,"description":"Controls whether Copilot generates suggestions for renaming"},"github.copilot.chat.localeOverride":{"type":"string","enum":["auto","en","fr","it","de","es","ru","zh-CN","zh-TW","ja","ko","cs","pt-br","tr","pl"],"enumDescriptions":["Use VS Code's configured display language","English","français","italiano","Deutsch","español","русский","中文(简体)","中文(繁體)","日本語","한국어","čeština","português","Türkçe","polski"],"default":"auto","markdownDescription":"Specify a locale that Copilot should respond in, e.g. `en` or `fr`. By default, Copilot will respond using VS Code's configured display language locale."},"github.copilot.chat.terminalChatLocation":{"type":"string","default":"chatView","markdownDescription":"Controls where chat queries from the terminal should be opened.","markdownEnumDescriptions":["Open the chat view.","Open quick chat.","Open terminal inline chat"],"enum":["chatView","quickChat","terminal"]},"github.copilot.chat.scopeSelection":{"type":"boolean","default":false,"markdownDescription":"Whether to prompt the user to select a specific symbol scope if the user uses `/explain` and the active editor has no selection."},"github.copilot.chat.useProjectTemplates":{"type":"boolean","default":true,"markdownDescription":"Use relevant GitHub projects as starter projects when using `/new`"},"github.copilot.nextEditSuggestions.enabled":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to enable next edit suggestions (NES).\n\nNES can propose a next edit based on your recent changes. [Learn more](https://aka.ms/vscode-nes) about next edit suggestions.","scope":"language-overridable"},"github.copilot.completions.chat.enabled":{"type":"boolean","default":false,"markdownDescription":"Whether to enable inline completions in chat."},"github.copilot.nextEditSuggestions.extendedRange":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to allow next edit suggestions (NES) to modify code farther away from the cursor position."},"github.copilot.nextEditSuggestions.fixes":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to offer fixes for diagnostics via next edit suggestions (NES).","scope":"language-overridable"},"github.copilot.nextEditSuggestions.allowWhitespaceOnlyChanges":{"type":"boolean","default":true,"tags":["nextEditSuggestions","onExp"],"markdownDescription":"Whether to allow whitespace-only changes be proposed by next edit suggestions (NES).","scope":"language-overridable"},"github.copilot.chat.agent.autoFix":{"type":"boolean","default":false,"description":"Automatically fix diagnostics for edited files.","tags":["onExp"]},"github.copilot.chat.rateLimitAutoSwitchToAuto":{"type":"boolean","default":false,"markdownDescription":"Automatically switch to the Auto model and retry when you hit a per-model rate limit.","tags":["onExp"]},"github.copilot.chat.customInstructionsInSystemMessage":{"type":"boolean","default":true,"description":"When enabled, custom instructions and mode instructions will be appended to the system message instead of a user message."},"github.copilot.chat.organizationCustomAgents.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will load custom agents defined by your GitHub Organization."},"github.copilot.chat.organizationInstructions.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will load custom instructions defined by your GitHub Organization."},"github.copilot.chat.additionalReadAccessPaths":{"type":"array","default":[],"items":{"type":"string"},"markdownDescription":"A list of absolute folder paths outside of the workspace that Copilot Chat is allowed to read from without requiring confirmation. Edit operations remain restricted to the workspace.","scope":"window"},"github.copilot.chat.agent.currentEditorContext.enabled":{"type":"boolean","default":true,"description":"When enabled, Copilot will include the name of the current active editor in the context for agent mode."},"github.copilot.enable":{"type":"object","scope":"window","default":{"*":true,"plaintext":false,"markdown":false,"scminput":false},"additionalProperties":{"type":"boolean"},"markdownDescription":"Enable or disable auto triggering of Copilot completions for specified [languages](https://code.visualstudio.com/docs/languages/identifiers). You can still trigger suggestions manually using `Alt + \\`","agentsWindow":{"default":{"markdown":true,"plaintext":true}}},"github.copilot.selectedCompletionModel":{"type":"string","default":"","markdownDescription":"The currently selected completion model ID. To select from a list of available models, use the __\"Change Completions Model\"__ command or open the model picker (from the Copilot menu in the VS Code title bar, select __\"Configure Code Completions\"__ then __\"Change Completions Model\"__. The value must be a valid model ID. An empty value indicates that the default model will be used."},"github.copilot.chat.reviewAgent.enabled":{"type":"boolean","default":true,"description":"Enables the code review agent."},"github.copilot.chat.reviewSelection.enabled":{"type":"boolean","default":true,"description":"Enables code review on current selection."},"github.copilot.chat.reviewSelection.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that provide code review for the current selection. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-review-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-review-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that provide code review for the current selection. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use underscore for field names."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Use underscore for field names."},{"text":"Resolve all TODO tasks."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that provide code review for the current selection.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's effectiveness.","examples":[[{"file":".copilot-review-instructions.md"},{"text":"Resolve all TODO tasks."}]]},"github.copilot.chat.anthropic.useMessagesApi":{"type":"boolean","default":true,"markdownDescription":"Use the Messages API instead of the Chat Completions API when supported.","tags":["onExp"]},"github.copilot.chat.imageUpload.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the use of image upload URLs in chat requests instead of raw base64 strings."}}},{"id":"preview","properties":{"github.copilot.chat.copilotDebugCommand.enabled":{"type":"boolean","default":true,"tags":["preview"],"description":"Whether the `copilot-debug` command is enabled in the terminal."},"github.copilot.chat.codesearch.enabled":{"type":"boolean","default":false,"tags":["preview"],"markdownDescription":"Whether to enable agentic codesearch when using `#codebase`."},"github.copilot.chat.tools.viewImage.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the view image tool, which allows the agent to view image files such as png, jpg, jpeg, gif, and webp.","tags":["preview","onExp"]}}},{"id":"experimental","properties":{"github.copilot.chat.githubMcpServer.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable built-in support for the GitHub MCP Server.","tags":["experimental"],"agentsWindow":{"default":true}},"github.copilot.chat.githubMcpServer.toolsets":{"type":"array","default":["default"],"markdownDescription":"Specify toolsets to use from the GitHub MCP Server. [Learn more](https://aka.ms/vscode-gh-mcp-toolsets).","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.githubMcpServer.readonly":{"type":"boolean","default":false,"markdownDescription":"Enable read-only mode for the GitHub MCP Server. When enabled, only read tools are available. [Learn more](https://aka.ms/vscode-gh-mcp-readonly).","tags":["experimental"]},"github.copilot.chat.githubMcpServer.lockdown":{"type":"boolean","default":false,"markdownDescription":"Enable lockdown mode for the GitHub MCP Server. When enabled, hides public issue details created by users without push access. [Learn more](https://aka.ms/vscode-gh-mcp-lockdown).","tags":["experimental"]},"github.copilot.chat.githubMcpServer.channel":{"type":"string","default":"stable","enum":["stable","insiders"],"enumDescriptions":["Use the stable version of the GitHub MCP Server.","Connect to the Insiders version of the GitHub MCP Server with experimental features."],"markdownDescription":"Select the channel for the GitHub MCP Server. When set to Insiders, enables access to experimental features that may change or be removed based on community feedback. [Learn more](https://aka.ms/vscode-gh-mcp-channel).","tags":["experimental"]},"github.copilot.chat.switchAgent.enabled":{"type":"boolean","default":false,"markdownDescription":"Allow agent to switch to the Plan agent for research, exploration, and planning tasks.","tags":["experimental","onExp"]},"github.copilot.chat.codeGeneration.instructions":{"markdownDeprecationMessage":"Use instructions files instead. See https://aka.ms/vscode-ghcp-custom-instructions for more information.","type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that generate code. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-codeGeneration-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-codeGeneration-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that generate code. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use underscore for field names."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Use underscore for field names."},{"text":"Always add a comment: 'Generated by Copilot'."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate code.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-codeGeneration-instructions.md"},{"text":"Always add a comment: 'Generated by Copilot'."}]],"tags":["experimental"]},"github.copilot.chat.testGeneration.instructions":{"markdownDeprecationMessage":"Use instructions files instead. See https://aka.ms/vscode-ghcp-custom-instructions for more information.","type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file that will be added to Copilot requests that generate tests. Optionally, you can specify a language for the instruction.","properties":{"file":{"type":"string","examples":[".copilot-test-instructions.md"]},"language":{"type":"string"}},"examples":[{"file":".copilot-test-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"A text instruction that will be added to Copilot requests that generate tests. Optionally, you can specify a language for the instruction.","properties":{"text":{"type":"string","examples":["Use suite and test instead of describe and it."]},"language":{"type":"string"}},"required":["text"],"examples":[{"text":"Always try uniting related tests in a suite."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate tests.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use underscore for field names.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-test-instructions.md"},{"text":"Always try uniting related tests in a suite."}]],"tags":["experimental"]},"github.copilot.chat.commitMessageGeneration.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file with instructions that will be added to Copilot requests that generate commit messages.","properties":{"file":{"type":"string","examples":[".copilot-commit-message-instructions.md"]}},"examples":[{"file":".copilot-commit-message-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"Text instructions that will be added to Copilot requests that generate commit messages.","properties":{"text":{"type":"string","examples":["Use conventional commit message format."]}},"required":["text"],"examples":[{"text":"Use conventional commit message format."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate commit messages.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Use conventional commit message format.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-commit-message-instructions.md"},{"text":"Use conventional commit message format."}]],"tags":["experimental"]},"github.copilot.chat.pullRequestDescriptionGeneration.instructions":{"type":"array","items":{"oneOf":[{"type":"object","markdownDescription":"A path to a file with instructions that will be added to Copilot requests that generate pull request titles and descriptions.","properties":{"file":{"type":"string","examples":[".copilot-pull-request-description-instructions.md"]}},"examples":[{"file":".copilot-pull-request-description-instructions.md"}],"required":["file"]},{"type":"object","markdownDescription":"Text instructions that will be added to Copilot requests that generate pull request titles and descriptions.","properties":{"text":{"type":"string","examples":["Include every commit message in the pull request description."]}},"required":["text"],"examples":[{"text":"Include every commit message in the pull request description."}]}]},"default":[],"markdownDescription":"A set of instructions that will be added to Copilot requests that generate pull request titles and descriptions.\nInstructions can come from: \n- a file in the workspace: `{ \"file\": \"fileName\" }`\n- text in natural language: `{ \"text\": \"Always include a list of key changes.\" }`\n\nNote: Keep your instructions short and precise. Poor instructions can degrade Copilot's quality and performance.","examples":[[{"file":".copilot-pull-request-description-instructions.md"},{"text":"Use conventional commit message format."}]],"tags":["experimental"]},"github.copilot.chat.setupTests.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the `/setupTests` intent and prompting in `/tests` generation.","tags":["experimental"]},"github.copilot.chat.languageContext.typescript.enabled":{"type":"boolean","default":true,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for inline suggestions","agentsWindow":{"default":true}},"github.copilot.chat.languageContext.typescript7.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental"],"markdownDescription":"Enables the TypeScript language context provider for inline suggestions when using TS7 language services","agentsWindow":{"default":false}},"github.copilot.chat.languageContext.typescript.items":{"type":"string","enum":["minimal","double","fillHalf","fill"],"default":"double","scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Controls which kind of items are included in the TypeScript language context provider."},"github.copilot.chat.languageContext.typescript.includeDocumentation":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Controls whether to include documentation comments in the generated code snippets."},"github.copilot.chat.languageContext.typescript.cacheTimeout":{"type":"number","default":500,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"The cache population timeout for the TypeScript language context provider in milliseconds. The default is 500 milliseconds."},"github.copilot.chat.languageContext.fix.typescript.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for /fix commands"},"github.copilot.chat.languageContext.inline.typescript.enabled":{"type":"boolean","default":false,"scope":"resource","tags":["experimental","onExP"],"markdownDescription":"Enables the TypeScript language context provider for inline chats (both generate and edit)"},"github.copilot.chat.newWorkspaceCreation.enabled":{"type":"boolean","default":true,"tags":["experimental"],"description":"Whether to enable new agentic workspace creation."},"github.copilot.chat.newWorkspace.useContext7":{"type":"boolean","default":false,"tags":["experimental"],"markdownDescription":"Whether to use the [Context7](command:github.copilot.mcp.viewContext7) tools to scaffold project for new workspace creation."},"github.copilot.chat.notebook.followCellExecution.enabled":{"type":"boolean","default":false,"tags":["experimental"],"description":"Controls whether the currently executing cell is revealed into the viewport upon execution from Copilot."},"github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Controls whether to use an enhanced approach for generating next edit suggestions in notebook cells."},"github.copilot.chat.summarizeAgentConversationHistory.enabled":{"type":"boolean","default":true,"tags":["experimental"],"description":"Whether to auto-compact agent conversation history once the context window is filled."},"github.copilot.chat.virtualTools.threshold":{"type":"number","minimum":0,"maximum":128,"default":128,"tags":["experimental"],"markdownDescription":"This setting defines the tool count over which virtual tools should be used. Virtual tools group similar sets of tools together and they allow the model to activate them on-demand. Certain tool groups will optimistically be pre-activated. We are actively developing this feature and you experience degraded tool calling once the threshold is hit.\n\nMay be set to `0` to disable virtual tools."},"github.copilot.chat.alternateGptPrompt.enabled":{"type":"boolean","default":false,"tags":["experimental"],"description":"Enables an experimental alternate prompt for GPT models instead of the default prompt."},"github.copilot.chat.alternateGeminiModelFPrompt.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Enables an experimental alternate prompt for Gemini Model F instead of the default prompt."},"github.copilot.chat.gemini35FlashReducedToolUsePrompt.enabled":{"type":"boolean","default":true,"tags":["experimental","onExp"],"description":"Enables an experimental prompt for Gemini 3.5 Flash that instructs the model to minimize tool calls to reduce token usage."},"github.copilot.chat.geminiFlashPromptAdditions.enabled":{"type":"boolean","default":false,"tags":["experimental","onExp"],"description":"Enables experimental additional prompt guidance for Gemini Flash 3.6 and 3.7 models."},"github.copilot.chat.anthropic.contextEditing.mode":{"type":"string","default":"off","markdownDescription":"Select the context editing mode for Anthropic models. Automatically manages conversation context as it grows, helping optimize costs and stay within context window limits.\n\n- `off`: Context editing is disabled.\n- `clear-thinking`: Clears thinking blocks while preserving tool uses.\n- `clear-tooluse`: Clears tool uses while preserving thinking blocks.\n- `clear-both`: Clears both thinking blocks and tool uses.\n\n**Note**: This is an experimental feature. Context editing may cause additional cache rewrites. Enable with caution.","tags":["experimental","onExp"],"enum":["off","clear-thinking","clear-tooluse","clear-both"]},"github.copilot.chat.responsesApiContextManagement.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables context management for the Responses API. Requires `#github.copilot.chat.useResponsesApi#`.","tags":["experimental","onExp"]},"github.copilot.chat.responsesApi.promptCacheKey.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables prompt cache key being set for the Responses API.","tags":["experimental","onExp"]},"github.copilot.chat.responsesApi.promptCacheBreakpoint.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables explicit prompt cache breakpoint markers for the Responses API.","tags":["experimental","onExp"]},"github.copilot.chat.updated53CodexPrompt.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the updated prompt for gpt-5.3-codex model.","tags":["experimental","onExp"]},"github.copilot.chat.claudeOpus5Prompt.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the updated system prompt tuned for the Claude Opus 5 model.","tags":["experimental","onExp"]},"github.copilot.chat.claudeSonnet5Prompt.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the updated system prompt tuned for the Claude Sonnet 5 model.","tags":["experimental","onExp"]},"github.copilot.chat.gpt55GetChangedFilesTool.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the Get Changed Files tool for gpt-5.5 models.","tags":["experimental","onExp"]},"github.copilot.chat.gpt56Verbosity.enabled":{"type":"boolean","default":true,"markdownDescription":"Sets the response verbosity to low for gpt-5.6 models.","tags":["experimental","onExp"]},"github.copilot.chat.gemini3GetChangedFilesTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enables the Get Changed Files tool for gemini-3 models.","tags":["experimental","onExp"]},"github.copilot.chat.gemini3LowReasoningEffort.enabled":{"type":"boolean","default":false,"markdownDescription":"Sets the reasoning effort to low for gemini-3 models.","tags":["experimental","onExp"]},"github.copilot.chat.claudeOpusDefaultReasoningEffort":{"type":"string","default":"","enum":["","low","medium","high","max"],"markdownDescription":"Overrides the default thinking effort shown in the model picker for Claude Opus models. Leave empty to use the built-in default. Ignored if the model does not support the chosen level.","tags":["experimental","onExp"]},"github.copilot.chat.gpt55ReadFileTool.enabled":{"type":"boolean","default":true,"markdownDescription":"Enables the Read File tool for gpt-5.5 models.","tags":["experimental","onExp"]},"github.copilot.chat.anthropic.tools.websearch.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable Anthropic's native web search tool for BYOK Claude models. When enabled, allows Claude to search the web for current information. \n\n**Note**: This is an experimental feature only available for BYOK Anthropic Claude models.","tags":["experimental","onExp"]},"github.copilot.chat.anthropic.tools.websearch.maxUses":{"type":"number","default":5,"markdownDescription":"Maximum number of web searches allowed per request. Valid range is 1 to 20. Prevents excessive API calls within a single interaction. If Claude exceeds this limit, the response returns an error.","minimum":1,"maximum":20,"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.allowedDomains":{"type":"array","default":[],"markdownDescription":"List of domains to restrict web search results to (e.g., `[\"example.com\", \"docs.example.com\"]`). Domains should not include the HTTP/HTTPS scheme. Subdomains are automatically included. Cannot be used together with `#github.copilot.chat.anthropic.tools.websearch.blockedDomains#`; configuring both will cause web search requests to fail.","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.blockedDomains":{"type":"array","default":[],"markdownDescription":"List of domains to exclude from web search results (e.g., `[\"untrustedsource.com\"]`). Domains should not include the HTTP/HTTPS scheme. Subdomains are automatically excluded. Cannot be used together with `#github.copilot.chat.anthropic.tools.websearch.allowedDomains#`; configuring both will cause web search requests to fail.","items":{"type":"string"},"tags":["experimental"]},"github.copilot.chat.anthropic.tools.websearch.userLocation":{"type":["object","null"],"default":null,"markdownDescription":"User location for personalizing web search results based on geographic context. All fields (city, region, country, timezone) are optional. Example: `{\"city\": \"San Francisco\", \"region\": \"California\", \"country\": \"US\", \"timezone\": \"America/Los_Angeles\"}`","properties":{"city":{"type":"string","description":"City name (e.g., 'San Francisco')"},"region":{"type":"string","description":"State or region (e.g., 'California')"},"country":{"type":"string","description":"ISO country code (e.g., 'US')"},"timezone":{"type":"string","description":"IANA timezone identifier (e.g., 'America/Los_Angeles')"}},"tags":["experimental"]},"github.copilot.chat.completionsFetcher":{"type":["string","null"],"markdownDescription":"Sets the fetcher used for the inline completions.","tags":["experimental","onExp"],"enum":["electron-fetch","node-fetch"]},"github.copilot.chat.nesFetcher":{"type":["string","null"],"markdownDescription":"Sets the fetcher used for the next edit suggestions.","tags":["experimental","onExp"],"enum":["electron-fetch","node-fetch"]},"github.copilot.chat.planAgent.additionalTools":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","markdownDescription":"Additional tools to enable for the Plan agent, on top of built-in tools. Use fully-qualified tool names (e.g., `github/issue_read`, `mcp_server/tool_name`).","tags":["experimental"]},"github.copilot.chat.implementAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used when starting implementation from the Plan agent's handoff. Use the format `Model Name (vendor)` (e.g., `GPT-5 (copilot)`). Leave empty to use the default model.","tags":["experimental"]},"github.copilot.chat.askAgent.additionalTools":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","markdownDescription":"Additional tools to enable for the Ask agent, on top of built-in read-only tools. Use fully-qualified tool names (e.g., `github/issue_read`, `mcp_server/tool_name`).","tags":["experimental"]},"github.copilot.chat.askAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used by the Ask agent. Leave empty to use the default model.","tags":["experimental"]},"github.copilot.chat.exploreAgent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Explore (Code Research) subagent.","tags":["experimental","onExp"]},"github.copilot.chat.exploreAgent.model":{"type":"string","default":"","scope":"resource","markdownDescription":"Override the language model used by the Explore subagent. Defaults to a fast, small model. Leave empty to use the built-in fallback list.","tags":["experimental"]},"github.copilot.chat.tools.grepSearch.outputFormat":{"type":"string","default":"grep","enum":["grep","tag"],"markdownDescription":"The output format for the grep search tool. Can be either 'grep' or 'tag'. The default is 'grep'.","tags":["experimental","onExp"]},"github.copilot.chat.tools.grepSearch.defaultMaxResults":{"type":"number","default":100,"markdownDescription":"The default maximum number of results to return from the grep search tool. The default is 100.","tags":["experimental","onExp"]},"github.copilot.chat.tools.grepSearch.maxResultsCap":{"type":"number","default":200,"markdownDescription":"The maximum number of results that can be returned from the grep search tool. The default is 200.","tags":["experimental","onExp"]}}},{"id":"advanced","properties":{"github.copilot.chat.chatCompletionsTokenParameter":{"type":"string","enum":["max_completion_tokens","max_tokens"],"enumDescriptions":["Send `max_completion_tokens`.","Send the legacy `max_tokens` parameter for compatibility."],"default":"max_tokens","markdownDescription":"Controls the output token limit parameter sent to custom Chat Completions APIs. Use `max_completion_tokens` for endpoints that do not support `max_tokens`.","tags":["advanced","onExp"]},"github.copilot.chat.inlineEdits.xtabProvider.modelConfiguration":{"type":["object","null"],"default":null,"markdownDescription":"Advanced model configuration for the next edit suggestions xtab provider.\n\n**Note**: This is an advanced setting.","tags":["advanced","experimental"]},"github.copilot.chat.reasoningEffortOverride":{"type":["string","null"],"default":null,"markdownDescription":"Overrides the reasoning/thinking effort sent to model APIs. The configured value must match a reasoning-effort value supported by the selected model or endpoint (for example, `low`, `medium`, `high`, or other model-specific values). Used by evals.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced"]},"github.copilot.chat.autoModeTierOverride":{"type":["string","null"],"default":null,"markdownDescription":"Overrides the routing tier that the `Auto` model requests, ignoring both the tier picked in the model picker and the tier inline chat defaults to. Accepts `efficiency`, `balance`, `intelligence`, or `fast`. Used by evals.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced"]},"github.copilot.chat.anthropic.promptCaching.extendedTtl":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Use the extended (1 hour) prompt cache TTL on tools and system blocks for the Anthropic Messages API. Applied to Claude Opus 4.5/4.6/4.7 and Sonnet 4.5/4.6 variants; other models keep the default 5 minute TTL even when this setting is enabled.\n\n**Note**: This is an experimental feature. Only the main agent conversation is eligible — inline chat, terminal chat, notebook chat, and subagent requests are excluded."},"github.copilot.chat.anthropic.promptCaching.extendedTtlMessages":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Also extend the 1 hour prompt cache TTL to message-level breakpoints. Requires `chat.anthropic.promptCaching.extendedTtl` to be enabled; has no effect on its own.\n\n**Note**: This is an experimental feature."},"github.copilot.chat.modelCapabilityOverrides":{"type":"object","default":{},"markdownDescription":"Per-model capability overrides keyed by model id, intended for evaluating preview and tenanted models against an existing model's capability profile. For each model id, declare an aliased `family`. Setting `family` to a known production family (e.g. `\"claude-opus-4.7\"`) makes the model receive that family's full capability profile — Anthropic family detection, latest Opus prompt, multi-replace tools, tool search, context editing, extended cache TTL — without a code change.\n\n**Note**: This is an advanced setting for evaluation use; it is not intended for regular end-user configuration.","additionalProperties":{"type":"object","properties":{"family":{"type":"string","description":"Alias the model's family for capability routing (e.g. 'claude-opus-4.7')."}},"additionalProperties":false},"tags":["advanced"]},"github.copilot.chat.installExtensionSkill.enabled":{"type":"boolean","default":false,"tags":["advanced","experimental","onExp"],"description":"Whether to enable the install extension skill for Copilot."},"github.copilot.chat.debug.promptOverrideString":{"type":["string","null"],"default":null,"markdownDescription":"YAML string that overrides the system prompt and/or tool descriptions sent to the model. When both this setting and `github.copilot.chat.debug.promptOverrideFile` are configured, this setting takes precedence.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced","experimental"]},"github.copilot.chat.debug.promptOverrideFile":{"type":["string","null"],"default":null,"markdownDescription":"Path to a YAML file that overrides the system prompt and/or tool descriptions sent to the model.\n\n**Note**: This is an advanced debugging setting.","tags":["advanced","experimental"]},"github.copilot.chat.edits.gemini3MultiReplaceString":{"type":"boolean","default":false,"markdownDescription":"Enable the modern `multi_replace_string_in_file` edit tool when generating edits with Gemini 3 models.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.edits.batchReplaceStringDescriptions":{"type":"boolean","default":false,"markdownDescription":"Update tool descriptions to promote `multi_replace_string_in_file` as the primary multi-edit tool.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.expanded":{"type":"boolean","default":false,"markdownDescription":"Use the expanded format for project labels in prompts.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.chat":{"type":"boolean","default":false,"markdownDescription":"Add project labels in chat requests.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.projectLabels.inline":{"type":"boolean","default":false,"markdownDescription":"Add project labels in inline edit requests.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.maxLocalIndexSize":{"type":"number","default":100000,"markdownDescription":"Maximum size of the local workspace index.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.enableCodeSearch":{"type":"boolean","default":true,"markdownDescription":"Enable code search in workspace context.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.workspace.preferredEmbeddingsModel":{"type":"string","default":"","markdownDescription":"Preferred embeddings model for semantic search.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.feedback.onChange":{"type":"boolean","default":false,"markdownDescription":"Enable feedback collection on configuration changes.","tags":["advanced","experimental"]},"github.copilot.chat.review.intent":{"type":"boolean","default":false,"markdownDescription":"Enable intent detection for code review.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.summaryExperimentEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable the notebook summary experiment.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.variableFilteringEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable filtering variables by cell document symbols.","tags":["advanced","experimental"]},"github.copilot.chat.notebook.alternativeFormat":{"type":"string","default":"xml","enum":["xml","markdown"],"markdownDescription":"Alternative document format for notebooks.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.notebook.alternativeNESFormat.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable alternative format for Next Edit Suggestions in notebooks.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.debugTerminalCommandPatterns":{"type":"array","default":[],"items":{"type":"string"},"markdownDescription":"A list of commands for which the \"Debug Command\" quick fix action should be shown in the debug terminal.","tags":["advanced","experimental"]},"github.copilot.chat.localWorkspaceRecording.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable local workspace recording for analysis.","tags":["advanced","experimental"]},"github.copilot.chat.editRecording.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable edit recording for analysis.","tags":["advanced","experimental"]},"github.copilot.chat.inlineChat.reasoningEffort":{"type":"string","default":"low","enum":["none","minimal","low","medium","high"],"markdownDescription":"Controls the reasoning effort level for inline chat requests. Lower values result in faster responses with fewer reasoning tokens. Supported values depend on the model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineChat.enableThinking":{"type":"boolean","default":false,"markdownDescription":"Controls whether thinking/reasoning is enabled for inline chat requests. When disabled, reasoning summaries are suppressed for faster responses.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.debug.requestLogger.maxEntries":{"type":"number","default":100,"markdownDescription":"Maximum number of entries to keep in the request logger for debugging purposes.","tags":["advanced","experimental"]},"github.copilot.chat.inlineEdits.diagnosticsContextProvider.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable diagnostics context provider for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.chatSessionContextProvider.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable chat session context provider for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.codesearch.agent.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable code search capabilities in agent mode.","tags":["advanced","experimental"]},"github.copilot.chat.agent.temperature":{"type":["number","null"],"markdownDescription":"Temperature setting for agent mode requests.","tags":["advanced","experimental"]},"github.copilot.chat.agent.omitFileAttachmentContents":{"type":"boolean","default":false,"markdownDescription":"Omit summarized file contents from file attachments in agent mode, to encourage the agent to properly read and explore.","tags":["advanced","experimental"]},"github.copilot.chat.agent.backgroundTodoAgent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable background todo agent that automatically maintains a todo list during agent sessions.\n\n**Note**: This is an advanced experimental setting.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.longToolCallCachePreservation.enabled":{"type":"boolean","default":false,"markdownDescription":"When enabled, periodic keep-alive probes are sent during long-running tool calls to keep the server-side prompt cache warm.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.longToolCallCachePreservation.maxProbes":{"type":"number","default":1,"markdownDescription":"Maximum number of keep-alive probes to send during long-running tool calls before giving up.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.largeToolResultsToDisk.enabled":{"type":"boolean","default":true,"markdownDescription":"When enabled, large tool results are written to disk instead of being included directly in the context, helping manage context window usage.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agent.largeToolResultsToDisk.thresholdBytes":{"type":"number","default":8192,"markdownDescription":"The size threshold in bytes above which tool results are written to disk. Only applies when largeToolResultsToDisk.enabled is true.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.instantApply.shortContextModelName":{"type":"string","default":"gpt-4o-instant-apply-full-ft-v66-short","markdownDescription":"Model name for short context instant apply.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.instantApply.shortContextLimit":{"type":"number","default":8000,"markdownDescription":"Token limit for short context instant apply.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.enableUserPreferences":{"type":"boolean","default":false,"markdownDescription":"Enable remembering user preferences in agent mode.","tags":["advanced","experimental"]},"github.copilot.chat.skillTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the skill tool in Copilot Chat. When enabled, skills are invoked via a dedicated skill tool instead of readFile.","tags":["advanced","experimental"]},"github.copilot.chat.getChangedFilesTool.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the Get Changed Files tool in Copilot Chat. When enabled, the agent can retrieve git diffs of current changes via a dedicated tool.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the Execution Subagent tool in Copilot Chat. The Execution Subagent is designed to run terminal commands to accomplish an execution-based task. It is powered by Google's Gemini-3-Flash model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.model":{"type":"string","default":"gemini-3-flash","markdownDescription":"The model to use for the Execution Subagent tool in Copilot Chat. When useAgenticProxy is enabled, defaults to 'exec-subagent-router-a'. Otherwise defaults to gemini-3-flash.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.useAgenticProxy":{"type":"boolean","default":false,"markdownDescription":"Use the agentic proxy endpoint for the execution subagent.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.executionSubagent.toolCallLimit":{"type":"number","default":10,"markdownDescription":"Maximum number of tool calls the Execution Subagent can make during execution.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.summarizeAgentConversationHistoryThreshold":{"type":["number","null"],"markdownDescription":"Threshold at which agent conversation history is compacted. Specify either a ratio of the model's context window (a value greater than `0` and at most `1`, e.g. `0.8` to compact at 80%) or an absolute token count (a value of `100` or greater, e.g. `60000`). Leave unset to use the model's full context window.","tags":["advanced","experimental"]},"github.copilot.chat.agentHistorySummarizationMode":{"type":["string","null"],"markdownDescription":"Mode for agent history summarization.","tags":["advanced","experimental"]},"github.copilot.chat.useResponsesApiTruncation":{"type":"boolean","default":false,"markdownDescription":"Use Responses API for truncation.","tags":["advanced","experimental"]},"github.copilot.chat.omitBaseAgentInstructions":{"type":"boolean","default":false,"markdownDescription":"Omit base agent instructions from prompts.","tags":["advanced","experimental"]},"github.copilot.chat.promptFileContextProvider.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable prompt file context provider.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.tools.defaultToolsGrouped":{"type":"boolean","default":false,"markdownDescription":"Group default tools in prompts.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.gpt5AlternativePatch":{"type":"boolean","default":false,"markdownDescription":"Enable GPT-5 alternative patch format.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.triggerOnEditorChangeAfterSeconds":{"type":["number","null"],"default":10,"markdownDescription":"Trigger inline edits after editor has been idle for this many seconds.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.nextCursorPrediction.currentFileMaxTokens":{"type":"number","default":3000,"markdownDescription":"Maximum tokens for current file in next cursor prediction.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.inlineEdits.renameSymbolSuggestions":{"type":"boolean","default":true,"markdownDescription":"Enable rename symbol suggestions in inline edits.","tags":["advanced","experimental","onExp"]},"github.copilot.nextEditSuggestions.preferredModel":{"type":"string","default":"none","markdownDescription":"Preferred model for next edit suggestions.","tags":["advanced","experimental","onExp"]},"github.copilot.nextEditSuggestions.eagerness":{"type":"string","default":"auto","enum":["auto","low","medium","high"],"enumItemLabels":["Auto","Low","Medium","High"],"enumDescriptions":["Automatically determine the eagerness level.","Show fewer suggestions with longer delays.","Balanced suggestion frequency and delay.","Show more suggestions with minimal delay."],"markdownDescription":"Controls how eagerly next edit suggestions are shown. Higher values show more suggestions with less delay.","tags":["advanced","experimental"]},"github.copilot.chat.cli.mcp.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable Model Context Protocol (MCP) server for Copilot CLI.","tags":["advanced","experimental"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.sandbox.enabled":{"type":"string","enum":["off","on","allowNetwork"],"enumDescriptions":["Disable sandboxing for Copilot CLI tools.","Enable sandboxing for Copilot CLI tools.","Enable sandboxing for Copilot CLI tools and allow all network domains."],"default":"off","markdownDescription":"Run Copilot CLI tools (such as the terminal) inside a sandbox to limit what they can access on your system. The sandbox only applies to requests that run with default permissions — it is not used when bypassing approvals — and is not supported on Windows yet.","tags":["advanced","experimental"]},"github.copilot.chat.cli.branchSupport.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable branch support for Copilot CLI.","tags":["advanced"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.planExitMode.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable Plan Mode exit handling in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.autoModel.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the Auto model option in Copilot CLI, which automatically selects the best model for each request. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.autoMode.tiers.enabled":{"type":"boolean","default":false,"markdownDescription":"Choose a routing tier for the Auto model, biasing model selection toward cost, capability, or speed. When disabled, the service picks the routing profile.","tags":["advanced","onExp"]},"github.copilot.chat.agent.modelDetails.enabled":{"type":"boolean","default":true,"markdownDescription":"Show model details (model name and request multiplier) on Copilot CLI agent chat responses. Requires VS Code reload to update already loaded sessions.","tags":["advanced"]},"github.copilot.chat.cli.planCommand.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the /plan command in Copilot CLI to create implementation plans before coding.","tags":["advanced"]},"github.copilot.chat.cli.lazyLoadSessionItem.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable lazy loading of session items in Copilot CLI. Requires VS Code reload.","tags":["advanced"],"agentsWindow":{"default":false}},"github.copilot.chat.cli.aiGenerateBranchNames.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable AI-generated branch names in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.forkSessions.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable forking sessions in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.isolationOption.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the isolation mode option for Copilot CLI. When enabled, users can choose between Worktree and Workspace modes.","tags":["advanced"],"agentsWindow":{"default":true}},"github.copilot.chat.cli.autoCommit.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable automatic commit for Copilot CLI. When enabled, changes made by Copilot CLI will be automatically committed to the repository at the end of each turn.","tags":["advanced","experimental"],"agentsWindow":{"default":false}},"github.copilot.chat.cli.sessionController.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the new session controller API for Copilot CLI. Requires VS Code reload.","tags":["advanced"],"agentsWindow":{"default":false,"readOnly":true}},"github.copilot.chat.cli.thinkingEffort.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable thinking effort for Language Models in Copilot CLI.","tags":["advanced"]},"github.copilot.chat.cli.sessionControllerForSessionsApp.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the new session controller API for Sessions App. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.cli.terminalLinks.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable advanced clickable file links in Copilot CLI terminals. Resolves relative paths against session state directories. Requires VS Code reload.","tags":["advanced"]},"github.copilot.chat.cli.remote.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable the /remote command for Copilot CLI sessions, allowing you to view and steer from GitHub.com and the GitHub mobile app.","tags":["advanced"],"agentsWindow":{"default":false}},"github.copilot.chat.searchSubagent.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable the search subagent tool for iterative code exploration in the workspace.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.useAgenticProxy":{"type":"boolean","default":false,"markdownDescription":"Use the agentic proxy for the search subagent tool.","tags":["advanced"]},"github.copilot.chat.searchSubagent.model":{"type":"string","default":"","markdownDescription":"Model to use for the search subagent. When useAgenticProxy is enabled, defaults to 'vscode-agentic-search-router-a'. Otherwise defaults to the main agent model.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.toolCallLimit":{"type":"number","default":4,"markdownDescription":"Maximum number of tool calls the search subagent can make during exploration.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.thoroughnessEnabled":{"type":"boolean","default":false,"markdownDescription":"Enable the thoroughness parameter on the search subagent tool. When enabled, the caller can pass 'normal' or 'deep' to adjust the number of allowed tool-call turns (1× or 2× the base toolCallLimit respectively).","tags":["advanced","experimental","onExp"]},"github.copilot.chat.searchSubagent.subagentSemanticSearchEnabled":{"type":"boolean","default":true,"markdownDescription":"Enable the semantic search tool for the search subagent.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.fileLogging.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable agent debug logging: write chat debug events (tool calls, LLM requests, token usage, errors) to JSONL files for the debug panel and troubleshoot skill. Requires window reload to take effect.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.fileLogging.flushIntervalMs":{"type":"number","default":4000,"minimum":2000,"markdownDescription":"How often (in milliseconds) buffered debug log entries are flushed to disk. Lower values provide more up-to-date logs at the cost of more frequent disk writes.","tags":["advanced","experimental"]},"github.copilot.chat.agentDebugLog.fileLogging.maxRetainedSessionLogs":{"type":"number","default":50,"minimum":1,"markdownDescription":"Maximum number of chat debug session log directories to retain on disk. Each chat session produces one directory. Older session logs are automatically deleted when this limit is exceeded.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.agentDebugLog.fileLogging.maxSessionLogSizeMB":{"type":"number","default":100,"minimum":1,"markdownDescription":"Maximum size in megabytes for a single chat debug session log file. When the log exceeds this size, older entries are truncated to retain the most recent data. Defaults to 100 MB.","tags":["advanced","experimental","onExp"]},"github.copilot.chat.otel.enabled":{"type":"boolean","default":false,"scope":"application","policyReference":{"name":"CopilotOtelEnabled"},"markdownDescription":"Enable OpenTelemetry trace/metric/log emission for Copilot Chat operations. Precedence: enterprise policy > env var `COPILOT_OTEL_ENABLED` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.exporterType":{"type":"string","enum":["otlp-grpc","otlp-http","console","file"],"default":"otlp-http","scope":"application","policyReference":{"name":"CopilotOtelProtocol"},"markdownDescription":"OTel exporter type for Copilot Chat telemetry. Configurable in user settings or managed by enterprise policy (policy takes precedence). Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.protocol":{"type":"string","enum":["","http/json","http/protobuf","grpc"],"default":"","scope":"application","policyReference":{"name":"CopilotOtelOtlpProtocol"},"markdownDescription":"OTLP wire protocol for Copilot Chat OTel data, mirroring `OTEL_EXPORTER_OTLP_PROTOCOL`. `http/protobuf` selects the protobuf-over-HTTP exporter; the default (empty) uses `http/json`. Precedence: enterprise policy > env var > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.otlpEndpoint":{"type":"string","default":"http://localhost:4318","scope":"application","policyReference":{"name":"CopilotOtelEndpoint"},"markdownDescription":"OTLP collector endpoint URL for Copilot Chat OTel data. Precedence: enterprise policy > env var `OTEL_EXPORTER_OTLP_ENDPOINT` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.captureContent":{"type":"boolean","default":false,"scope":"application","policyReference":{"name":"CopilotOtelCaptureContent"},"markdownDescription":"Capture input/output messages, system instructions, and tool definitions in OTel telemetry. **Contains potentially sensitive data.** Precedence: enterprise policy > env var `COPILOT_OTEL_CAPTURE_CONTENT` > user setting. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.serviceName":{"type":"string","default":"","scope":"application","policyReference":{"name":"CopilotOtelServiceName"},"markdownDescription":"OTel `service.name` resource attribute for Copilot Chat OTel data. Configurable in user settings only. Env var `OTEL_SERVICE_NAME` takes precedence over the setting; enterprise policy takes precedence over both. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.resourceAttributes":{"type":"object","additionalProperties":{"type":"string"},"default":{},"scope":"application","policyReference":{"name":"CopilotOtelResourceAttributes"},"markdownDescription":"Additional OTel resource attributes for Copilot Chat OTel data, as a `{ \"key\": \"value\" }` map. Configurable in user settings only. Merged per-key with `OTEL_RESOURCE_ATTRIBUTES` env (env wins over the setting); enterprise policy wins over both. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.headers":{"type":"object","additionalProperties":{"type":"string"},"default":{},"scope":"application","policyReference":{"name":"CopilotOtelHeaders"},"markdownDescription":"Extra OTLP exporter headers (e.g. auth tokens) for Copilot Chat OTel data, as a `{ \"key\": \"value\" }` map. Applied directly to the OTLP exporter, not via environment variables. Configurable in user settings only. Merged per-key with `OTEL_EXPORTER_OTLP_HEADERS` env (env wins over the setting); enterprise policy wins over both. **Contains potentially sensitive credentials.** Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.maxAttributeSizeChars":{"type":"integer","default":0,"minimum":0,"scope":"application","markdownDescription":"Maximum size **in characters** for free-form OTel content attributes (prompts, responses, tool arguments/results, hook input/output). `0` (the default) disables truncation so backends without per-attribute size limits receive full JSON payloads. Set to a positive value when your OTel backend caps attribute size — consult your backend's documentation for its per-attribute limit. Truncated values are suffixed with `...[truncated, original N chars]`. Configurable in user settings only. Env var `COPILOT_OTEL_MAX_ATTRIBUTE_SIZE_CHARS` takes precedence. Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.outfile":{"type":"string","default":"","scope":"application","policyReference":{"name":"CopilotOtelOutfile"},"markdownDescription":"File path for file-based OTel exporter output (JSON-lines). When set, overrides exporter type to `file`. Configurable in user settings or managed by enterprise policy (policy takes precedence). Requires window reload.","tags":["advanced"]},"github.copilot.chat.otel.dbSpanExporter.enabled":{"type":"boolean","default":false,"scope":"application","markdownDescription":"Enable SQLite DB span exporter. Persists OTel spans to a local SQLite database. Automatically enables OTel when set to true. Configurable in user settings only. Requires window reload.","tags":["advanced"]},"github.copilot.chat.workspace.codeSearchExternalIngest.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable external ingest for semantic codebase search in this workspace. This setting can be used to enable/disable external ingest, but your Copilot Enterprise or Copilot subscription policies ultimately control availability. [Learn more about external ingest policies](https://aka.ms/vscode-external-ingest-policy).","tags":["advanced","onExp"]}}}],"submenus":[{"id":"copilot/reviewComment/additionalActions/applyAndNext","label":"Apply and Go to Next"},{"id":"copilot/reviewComment/additionalActions/discardAndNext","label":"Discard and Go to Next"},{"id":"copilot/reviewComment/additionalActions/discard","label":"Discard"},{"id":"github.copilot.chat.debug.filter","label":"Filter","icon":"$(filter)"},{"id":"github.copilot.chat.debug.exportAllPromptLogsAsJson","label":"Export All Logs as JSON","icon":"$(file-export)"}],"menus":{"editor/title":[{"command":"github.copilot.debug.generateInlineEditTests","when":"resourceScheme == 'ccreq'"},{"command":"github.copilot.chat.notebook.enableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && !github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && !config.notebook.globalToolbar","group":"navigation@10"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && !config.notebook.globalToolbar","group":"navigation@10"},{"command":"github.copilot.chat.copilotCLI.acceptDiff","group":"navigation@1","when":"github.copilot.chat.copilotCLI.hasActiveDiff"},{"command":"github.copilot.chat.copilotCLI.rejectDiff","group":"navigation@2","when":"github.copilot.chat.copilotCLI.hasActiveDiff"}],"editor/title/context":[{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"}],"explorer/context":[{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !explorerResourceIsFolder"}],"editor/context":[{"command":"github.copilot.chat.fix","when":"!github.copilot.interactiveSession.disabled && chatSetupCompleted && !editorReadonly && editorSelectionHasDiagnostics","group":"1_chat@4"},{"command":"github.copilot.chat.explain","when":"!github.copilot.interactiveSession.disabled && chatSetupCompleted","group":"1_chat@5"},{"command":"github.copilot.chat.review","when":"config.github.copilot.chat.reviewSelection.enabled && !github.copilot.interactiveSession.disabled && chatSetupCompleted && resourceScheme != 'vscode-chat-code-block'","group":"1_chat@6"},{"command":"github.copilot.chat.copilotCLI.addFileReference","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"},{"command":"github.copilot.chat.copilotCLI.addSelection","group":"copilot","when":"github.copilot.chat.copilotCLI.hasSession && editorHasSelection && !inOutput && resourceScheme != 'vscode-webview' && resourceScheme != 'webview-panel'"}],"chat/editor/inlineGutter":[{"command":"github.copilot.chat.explain","when":"!github.copilot.interactiveSession.disabled && editor.hasSelection && !inlineChatFileBelongsToChat","group":"2_chat@2"},{"command":"github.copilot.chat.review","when":"!github.copilot.interactiveSession.disabled && editor.hasSelection && config.github.copilot.chat.reviewSelection.enabled && !inlineChatFileBelongsToChat","group":"2_chat@3"}],"chat/input/editing/sessionToolbar":[{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","when":"chatSessionType == copilotcli && workbenchState != empty && !isSessionsWindow","group":"navigation@0"},{"command":"github.copilot.chat.checkoutPullRequestReroute","when":"chatSessionType == copilot-cloud-agent && chatSessionPullRequest != 'none' && !github.vscode-pull-request-github.activated && gitOpenRepositoryCount != 0","group":"navigation@0"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","when":"chatSessionType == copilot-cloud-agent && github.copilot.chat.cloudTaskCanCreatePullRequest && !isSessionsWindow","group":"navigation@0"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","when":"chatSessionType == copilot-cloud-agent && github.copilot.chat.cloudTaskCanOpenPullRequest && !isSessionsWindow","group":"navigation@0"}],"agents/changes/actions/primary":[{"command":"github.copilot.sessions.initializeRepository","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == workspace && !sessions.hasGitRepository && !sessions.isAgentHostSession","group":"0_init@1"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && !sessions.isMergeBaseBranchProtected && !sessions.hasPullRequest && (sessions.hasUncommittedChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"1_merge@1"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && !sessions.isMergeBaseBranchProtected && !sessions.hasPullRequest && (sessions.hasUncommittedChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"1_merge@2"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && sessions.hasGitHubRemote && !sessions.hasPullRequest && sessions.hasBranchChanges && !sessions.isAgentHostSession","group":"2_pull_request@1"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","when":"sessionType == copilotcli && isSessionsWindow && sessions.isolationMode == worktree && sessions.hasGitRepository && sessions.hasGitHubRemote && !sessions.hasPullRequest && sessions.hasBranchChanges && !sessions.isAgentHostSession","group":"2_pull_request@2"},{"command":"github.copilot.sessions.commit","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUncommittedChanges && !sessions.isAgentHostSession","group":"3_commit@1"},{"command":"github.copilot.sessions.commitAndSync","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUncommittedChanges && !sessions.isAgentHostSession","group":"3_commit@2"},{"command":"github.copilot.sessions.sync","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.hasUpstream && !sessions.hasUncommittedChanges && (sessions.hasIncomingChanges || sessions.hasOutgoingChanges) && !sessions.isAgentHostSession","group":"4_sync@1"}],"agents/change/inline":[{"command":"github.copilot.sessions.discardChanges","when":"sessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && !sessionIsArchived && !sessions.isAgentHostSession","group":"navigation@2"}],"chat/contextUsage/actions":[{"command":"github.copilot.chat.compact","when":"!chatIsAgentHostSession"}],"chat/input/status":[{"command":"github.copilot.chat.otel.statusActive","when":"github.copilot.otel.enabledExplicitly && isSessionsWindow","group":"otel@1"}],"chat/newSession":[{"command":"github.copilot.cli.newSession","group":"4_recommendations@0"}],"testing/item/result":[{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"testResultState == failed && !testResultOutdated","group":"inline@2"}],"testing/item/context":[{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"testResultState == failed && !testResultOutdated","group":"inline@2"}],"commandPalette":[{"command":"github.copilot.cli.openInCopilotCLI","when":"false"},{"command":"github.copilot.debug.extensionState","when":"false"},{"command":"github.copilot.cli.sessions.commitToWorktree","when":"false"},{"command":"github.copilot.cli.sessions.commitToRepository","when":"false"},{"command":"github.copilot.chat.triggerPermissiveSignIn","when":"false"},{"command":"github.copilot.chat.otel.statusActive","when":"false"},{"command":"github.copilot.interactiveSession.feedback","when":"github.copilot-chat.activated && !github.copilot.interactiveSession.disabled"},{"command":"github.copilot.debug.workbenchState","when":"true"},{"command":"github.copilot.chat.rerunWithCopilotDebug","when":"false"},{"command":"github.copilot.chat.startCopilotDebugCommand","when":"false"},{"command":"github.copilot.git.generateCommitMessage","when":"false"},{"command":"github.copilot.git.resolveMergeConflicts","when":"false"},{"command":"github.copilot.chat.explain","when":"false"},{"command":"github.copilot.chat.review","when":"!github.copilot.interactiveSession.disabled"},{"command":"github.copilot.chat.review.apply","when":"false"},{"command":"github.copilot.chat.review.applyAndNext","when":"false"},{"command":"github.copilot.chat.review.discard","when":"false"},{"command":"github.copilot.chat.review.discardAndNext","when":"false"},{"command":"github.copilot.chat.review.discardAll","when":"false"},{"command":"github.copilot.chat.review.stagedChanges","when":"false"},{"command":"github.copilot.chat.review.unstagedChanges","when":"false"},{"command":"github.copilot.chat.review.changes","when":"false"},{"command":"github.copilot.chat.review.stagedFileChange","when":"false"},{"command":"github.copilot.chat.review.unstagedFileChange","when":"false"},{"command":"github.copilot.chat.review.previous","when":"false"},{"command":"github.copilot.chat.review.next","when":"false"},{"command":"github.copilot.chat.review.continueInInlineChat","when":"false"},{"command":"github.copilot.chat.review.continueInChat","when":"false"},{"command":"github.copilot.chat.review.markHelpful","when":"false"},{"command":"github.copilot.chat.review.markUnhelpful","when":"false"},{"command":"github.copilot.devcontainer.generateDevContainerConfig","when":"false"},{"command":"github.copilot.tests.fixTestFailure","when":"false"},{"command":"github.copilot.tests.fixTestFailure.fromInline","when":"false"},{"command":"github.copilot.search.markHelpful","when":"false"},{"command":"github.copilot.search.markUnhelpful","when":"false"},{"command":"github.copilot.search.feedback","when":"false"},{"command":"github.copilot.chat.debug.showElements","when":"false"},{"command":"github.copilot.chat.debug.hideElements","when":"false"},{"command":"github.copilot.chat.debug.showTools","when":"false"},{"command":"github.copilot.chat.debug.hideTools","when":"false"},{"command":"github.copilot.chat.debug.showNesRequests","when":"false"},{"command":"github.copilot.chat.debug.hideNesRequests","when":"false"},{"command":"github.copilot.chat.debug.showGhostRequests","when":"false"},{"command":"github.copilot.chat.debug.hideGhostRequests","when":"false"},{"command":"github.copilot.chat.debug.exportLogItem","when":"false"},{"command":"github.copilot.chat.debug.exportPromptArchive","when":"false"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","when":"false"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","when":"false"},{"command":"github.copilot.chat.mcp.setup.check","when":"false"},{"command":"github.copilot.chat.mcp.setup.validatePackage","when":"false"},{"command":"github.copilot.chat.mcp.setup.flow","when":"false"},{"command":"github.copilot.chat.debug.showRawRequestBody","when":"false"},{"command":"github.copilot.debug.showOutputChannel","when":"false"},{"command":"github.copilot.cli.sessions.delete","when":"false"},{"command":"github.copilot.cli.sessions.resumeInTerminal","when":"false"},{"command":"github.copilot.cli.sessions.rename","when":"false"},{"command":"github.copilot.cli.sessions.setTitle","when":"false"},{"command":"github.copilot.cli.sessions.openRepository","when":"false"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","when":"false"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","when":"false"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","when":"false"},{"command":"github.copilot.cloud.sessions.openInBrowser","when":"false"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","when":"false"},{"command":"github.copilot.cloud.sessions.installPRExtension","when":"false"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"false"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges.apply","when":"false"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge","when":"false"},{"command":"github.copilot.chat.mergeCopilotCLIAgentSessionChanges.mergeAndSync","when":"false"},{"command":"github.copilot.chat.createPullRequestCopilotCLIAgentSession.createPR","when":"false"},{"command":"github.copilot.chat.createDraftPullRequestCopilotCLIAgentSession.createDraftPR","when":"false"},{"command":"github.copilot.chat.checkoutPullRequestReroute","when":"false"},{"command":"github.copilot.chat.cloudSessions.openRepository","when":"false"},{"command":"github.copilot.chat.cloudSessions.createPullRequestForTask","when":"false"},{"command":"github.copilot.chat.cloudSessions.openPullRequestForTask","when":"false"},{"command":"github.copilot.nes.captureExpected.start","when":"github.copilot.inlineEditsEnabled"},{"command":"github.copilot.nes.captureExpected.submit","when":"github.copilot.inlineEditsEnabled"},{"command":"github.copilot.sessions.commit","when":"false"},{"command":"github.copilot.sessions.commitAndSync","when":"false"},{"command":"github.copilot.sessions.sync","when":"false"},{"command":"github.copilot.sessions.discardChanges","when":"false"},{"command":"github.copilot.sessions.refreshChanges","when":"false"},{"command":"github.copilot.sessions.initializeRepository","when":"false"}],"view/title":[{"submenu":"github.copilot.chat.debug.filter","when":"view == copilot-chat","group":"navigation"},{"command":"github.copilot.chat.debug.exportAllPromptLogsAsJson","when":"view == copilot-chat","group":"export@1"},{"command":"workbench.action.chat.openAgentDebugPanel","when":"view == copilot-chat","group":"3_show@0"},{"command":"github.copilot.debug.showOutputChannel","when":"view == copilot-chat","group":"3_show@1"},{"command":"github.copilot.debug.showChatLogView","when":"view == workbench.panel.chat.view.copilot","group":"3_show"}],"view/item/context":[{"command":"github.copilot.chat.debug.showRawRequestBody","when":"view == copilot-chat && viewItem == request","group":"export@0"},{"command":"github.copilot.chat.debug.exportLogItem","when":"view == copilot-chat && (viewItem == toolcall || viewItem == request)","group":"export@1"},{"command":"github.copilot.chat.debug.exportPromptArchive","when":"view == copilot-chat && viewItem == chatprompt","group":"export@2"},{"command":"github.copilot.chat.debug.exportPromptLogsAsJson","when":"view == copilot-chat && viewItem == chatprompt","group":"export@3"}],"searchPanel/aiResults/commands":[{"command":"github.copilot.search.markHelpful","group":"inline@0","when":"aiResultsTitle && aiResultsRequested"},{"command":"github.copilot.search.markUnhelpful","group":"inline@1","when":"aiResultsTitle && aiResultsRequested"},{"command":"github.copilot.search.feedback","group":"inline@2","when":"aiResultsTitle && aiResultsRequested && github.copilot.debugReportFeedback"}],"comments/comment/title":[{"command":"github.copilot.chat.review.markHelpful","group":"inline@0","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.markUnhelpful","group":"inline@1","when":"commentController == github-copilot-review"}],"commentsView/commentThread/context":[{"command":"github.copilot.chat.review.apply","group":"context@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discard","group":"context@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discardAll","group":"context@3","when":"commentController == github-copilot-review"}],"comments/commentThread/additionalActions":[{"submenu":"copilot/reviewComment/additionalActions/applyAndNext","group":"inline@1","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments > 1"},{"command":"github.copilot.chat.review.apply","group":"inline@1","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments == 1"},{"submenu":"copilot/reviewComment/additionalActions/discardAndNext","group":"inline@2","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments > 1"},{"submenu":"copilot/reviewComment/additionalActions/discard","group":"inline@2","when":"commentController == github-copilot-review && github.copilot.chat.review.numberOfComments == 1"}],"copilot/reviewComment/additionalActions/applyAndNext":[{"command":"github.copilot.chat.review.applyAndNext","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.apply","group":"inline@2","when":"commentController == github-copilot-review"}],"copilot/reviewComment/additionalActions/discardAndNext":[{"command":"github.copilot.chat.review.discardAndNext","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discard","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInInlineChat","group":"inline@3","when":"commentController == github-copilot-review"}],"copilot/reviewComment/additionalActions/discard":[{"command":"github.copilot.chat.review.discard","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInInlineChat","group":"inline@3","when":"commentController == github-copilot-review"}],"comments/commentThread/title":[{"command":"github.copilot.chat.review.previous","group":"inline@1","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.next","group":"inline@2","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.continueInChat","group":"inline@3","when":"commentController == github-copilot-review"},{"command":"github.copilot.chat.review.discardAll","group":"inline@4","when":"commentController == github-copilot-review"}],"scm/title":[{"command":"github.copilot.chat.review.changes","group":"navigation","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmProviderRootUri in github.copilot.chat.reviewDiff.enabledRootUris"}],"scm/sourceControl":[{"command":"github.copilot.cli.openInCopilotCLI","group":"3_worktree@1","when":"scmProvider == git"}],"scm/resourceGroup/context":[{"command":"github.copilot.chat.review.stagedChanges","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == index","group":"inline@-3"},{"command":"github.copilot.chat.review.unstagedChanges","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == workingTree","group":"inline@-3"}],"scm/resourceState/context":[{"command":"github.copilot.git.resolveMergeConflicts","when":"scmProvider == git && scmResourceGroup == merge && git.activeResourceHasMergeConflicts","group":"z_chat@1"},{"command":"github.copilot.chat.review.stagedFileChange","group":"3_copilot","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == index"},{"command":"github.copilot.chat.review.unstagedFileChange","group":"3_copilot","when":"config.github.copilot.chat.reviewAgent.enabled && github.copilot.chat.reviewDiff.enabled && scmProvider == git && scmResourceGroup == workingTree"}],"scm/inputBox":[{"command":"github.copilot.git.generateCommitMessage","when":"scmProvider == git && chatSetupCompleted"}],"testing/message/context":[{"command":"github.copilot.tests.fixTestFailure","when":"testing.testItemHasUri","group":"inline@1"}],"issue/reporter":[{"command":"github.copilot.report"}],"github.copilot.chat.debug.filter":[{"command":"github.copilot.chat.debug.showElements","when":"github.copilot.chat.debug.elementsHidden","group":"commands@0"},{"command":"github.copilot.chat.debug.hideElements","when":"!github.copilot.chat.debug.elementsHidden","group":"commands@0"},{"command":"github.copilot.chat.debug.showTools","when":"github.copilot.chat.debug.toolsHidden","group":"commands@1"},{"command":"github.copilot.chat.debug.hideTools","when":"!github.copilot.chat.debug.toolsHidden","group":"commands@1"},{"command":"github.copilot.chat.debug.showNesRequests","when":"github.copilot.chat.debug.nesRequestsHidden","group":"commands@2"},{"command":"github.copilot.chat.debug.hideNesRequests","when":"!github.copilot.chat.debug.nesRequestsHidden","group":"commands@2"},{"command":"github.copilot.chat.debug.showGhostRequests","when":"github.copilot.chat.debug.ghostRequestsHidden","group":"commands@3"},{"command":"github.copilot.chat.debug.hideGhostRequests","when":"!github.copilot.chat.debug.ghostRequestsHidden","group":"commands@3"}],"notebook/toolbar":[{"command":"github.copilot.chat.notebook.enableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && !github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && config.notebook.globalToolbar","group":"navigation/execute@15"},{"command":"github.copilot.chat.notebook.disableFollowCellExecution","when":"config.github.copilot.chat.notebook.followCellExecution.enabled && github.copilot.notebookFollowInSessionEnabled && github.copilot.notebookAgentModeUsage && config.notebook.globalToolbar","group":"navigation/execute@15"}],"editor/content":[{"command":"github.copilot.git.resolveMergeConflicts","group":"z_chat@1","when":"config.git.enabled && !git.missing && !isInDiffEditor && !isMergeEditor && resource in git.mergeChanges && git.activeResourceHasMergeConflicts && chatSetupCompleted"}],"multiDiffEditor/content":[{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"resourceScheme == copilotcli-worktree-changes && workbenchState != empty && !isSessionsWindow"}],"chat/chatSessions":[{"command":"github.copilot.cli.sessions.delete","when":"chatSessionType == copilotcli","group":"1_edit@10"},{"command":"github.copilot.cli.sessions.rename","when":"chatSessionType == copilotcli","group":"1_edit@4"},{"command":"github.copilot.cli.sessions.openWorktreeInNewWindow","when":"chatSessionType == copilotcli && !isSessionsWindow","group":"2_open@1"},{"command":"github.copilot.cli.sessions.openWorktreeInTerminal","when":"chatSessionType == copilotcli","group":"2_open@2"},{"command":"github.copilot.cli.sessions.copyWorktreeBranchName","when":"chatSessionType == copilotcli","group":"2_open@3"},{"command":"github.copilot.cli.sessions.resumeInTerminal","when":"chatSessionType == copilotcli","group":"2_open@4"},{"command":"github.copilot.chat.applyCopilotCLIAgentSessionChanges","when":"chatSessionType == copilotcli && workbenchState != empty && !isSessionsWindow","group":"3_apply@0"},{"command":"github.copilot.cloud.sessions.openInBrowser","when":"chatSessionType == copilot-cloud-agent","group":"navigation@10"},{"command":"github.copilot.cloud.sessions.proxy.closeChatSessionPullRequest","when":"chatSessionType == copilot-cloud-agent","group":"1_edit@10"}],"chatSessions/item/context":[{"command":"github.copilot.cli.sessions.rename","when":"sessionType == copilotcli && sessionProviderId == default-copilot","group":"1_edit@4"}],"chat/multiDiff/context":[{"command":"github.copilot.cloud.sessions.installPRExtension","when":"chatSessionType == copilot-cloud-agent && !github.copilot.prExtensionInstalled","group":"inline@1"}],"chat/input/editing/sessionTitleToolbar":[{"command":"github.copilot.sessions.refreshChanges","when":"sessionType == copilotcli && isSessionsWindow && !sessions.isAgentHostSession","group":"9_refresh@1"}]},"icons":{"copilot-logo":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0041"}},"copilot-warning":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0042"}},"copilot-notconnected":{"description":"GitHub Copilot icon","default":{"fontPath":"assets/copilot.woff","fontCharacter":"\\0043"}}},"iconFonts":[{"id":"copilot-font","src":[{"path":"assets/copilot.woff","format":"woff"}]}],"terminalQuickFixes":[{"id":"copilot-chat.fixWithCopilot","commandLineMatcher":".+","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":".+","offset":0},"kind":"explain"},{"id":"copilot-chat.generateCommitMessage","commandLineMatcher":"git add .+","commandExitResult":"success","kind":"explain","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":".+","offset":0}},{"id":"copilot-chat.terminalToDebugging","commandLineMatcher":".+","kind":"explain","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":"","offset":0}},{"id":"copilot-chat.terminalToDebuggingSuccess","commandLineMatcher":".+","kind":"explain","commandExitResult":"success","outputMatcher":{"anchor":"bottom","length":1,"lineMatcher":"","offset":0}}],"languages":[{"id":"ignore","filenamePatterns":[".copilotignore"],"aliases":[]},{"id":"markdown","extensions":[".copilotmd"]}],"views":{"copilot-chat":[{"id":"copilot-chat","name":"Chat Debug","icon":"assets/debug-icon.svg","when":"github.copilot.chat.showLogView"}],"context-inspector":[{"id":"context-inspector","name":"Language Context Inspector","icon":"$(inspect)","when":"github.copilot.chat.showContextInspectorView"}]},"viewsContainers":{"activitybar":[{"id":"copilot-chat","title":"Chat Debug","icon":"assets/debug-icon.svg"},{"id":"context-inspector","title":"Language Context Inspector","icon":"$(inspect)"}]},"configurationDefaults":{"workbench.editorAssociations":{"*.copilotmd":"vscode.markdown.preview.editor"}},"keybindings":[{"command":"github.copilot.chat.copilotCLI.addFileReference","key":"ctrl+shift+.","mac":"cmd+shift+.","when":"github.copilot.chat.copilotCLI.hasSession && editorTextFocus"},{"command":"github.copilot.chat.rerunWithCopilotDebug","key":"ctrl+alt+.","mac":"cmd+alt+.","when":"github.copilot-chat.activated && terminalShellIntegrationEnabled && terminalFocus && !terminalAltBufferActive"},{"command":"github.copilot.nes.captureExpected.confirm","key":"ctrl+enter","mac":"cmd+enter","when":"copilotNesCaptureMode && editorTextFocus"},{"command":"github.copilot.nes.captureExpected.abort","key":"escape","when":"copilotNesCaptureMode && editorTextFocus"}],"walkthroughs":[{"id":"copilotWelcome","title":"GitHub Copilot","description":"Your AI pair programmer to write code faster and smarter","when":"!isWeb","steps":[{"id":"copilot.setup.signIn","title":"Sign in to use Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.\n\n[Use Copilot for Free](command:workbench.action.chat.triggerSetupForceSignIn)","when":"chatEntitlementSignedOut && !view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && !github.copilot.interactiveSession.individual.disabled && !github.copilot.interactiveSession.individual.expired && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signInNoAction","title":"Sign in to use Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.","when":"chatEntitlementSignedOut && view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && !github.copilot.interactiveSession.individual.disabled && !github.copilot.interactiveSession.individual.expired && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signUp","title":"Get started with Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.\n\n[Use Copilot for Free](command:workbench.action.chat.triggerSetupForceSignIn)","when":"chatPlanCanSignUp && !view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && (github.copilot.interactiveSession.individual.disabled || github.copilot.interactiveSession.individual.expired) && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.setup.signUpNoAction","title":"Get started with Copilot for free","description":"You can use Copilot to generate code across multiple files, fix errors, ask questions about your code and much more using natural language.\n We now offer [Copilot for free](https://github.com/features/copilot/plans) with your GitHub account.","when":"chatPlanCanSignUp && view.workbench.panel.chat.view.copilot.visible && !github.copilot-chat.activated && !github.copilot.offline && (github.copilot.interactiveSession.individual.disabled || github.copilot.interactiveSession.individual.expired) && !github.copilot.interactiveSession.enterprise.disabled && !github.copilot.interactiveSession.contactSupport && !github.copilot.interactiveSession.invalidToken && !github.copilot.interactiveSession.rateLimited && !github.copilot.interactiveSession.gitHubLoginFailed","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.panelChat","title":"Chat about your code","description":"Ask Copilot programming questions or get help with your code using **@workspace**.\n Type **@** to see all available chat participants that you can chat with directly, each with their own expertise.\n[Chat with Copilot](command:workbench.action.chat.open?%7B%22mode%22%3A%22ask%22%7D)","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/workspace-hclight.mp4"},"altText":"The user invokes @workspace in the Chat panel in the secondary sidebar to understand the code base. Copilot retrieves the relevant information and provides a response with links to the files"}},{"id":"copilot.edits","title":"Make changes using natural language","description":"Use **Copilot Edits** to select files you want to work with and describe changes you want to make. Copilot applies them directly to your files.\n[Edit with Copilot](command:workbench.action.chat.open?%7B%22mode%22%3A%22edit%22%7D)","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/edits-hclight.mp4"},"altText":"The video shows the user dragging and dropping files into the Copilot Edits input box located in the secondary sidebar. Copilot then updates the file according to the user’s request"}},{"id":"copilot.firstSuggest","title":"AI-suggested inline suggestions","description":"As you type in the editor, Copilot suggests code to help you complete what you started.","when":"!chatEntitlementSignedOut || chatIsEnabled ","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/ghost-text-hclight.mp4"},"altText":"The video shows different Copilot inline suggestions, where Copilot suggests code to help the user complete their code"}},{"id":"copilot.inlineChatNotMac","title":"Use natural language in your files","description":"Sometimes, it's easier to describe the code you want to write directly within a file.\nPlace your cursor or make a selection and use **``Ctrl+I``** to open **Inline Chat**.","when":"!isMac && (!chatEntitlementSignedOut || chatIsEnabled )","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hclight.mp4"},"altText":"Inline Chat view in the editor. The video shows the user invoking the inline chat widget and asking Copilot to make a change in the file using natural language. Copilot then makes the requested change"}},{"id":"copilot.inlineChatMac","title":"Use natural language in your files","description":"Sometimes, it's easier to describe the code you want to write directly within a file.\nPlace your cursor or make a selection and use **``Cmd+I``** to open **Inline Chat**.","when":"isMac && (!chatEntitlementSignedOut || chatIsEnabled )","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/inline-hclight.mp4"},"altText":"The video shows the user invoking the inline chat widget and asking Copilot to make a change in the file using natural language. Copilot then makes the requested change"}},{"id":"copilot.sparkle","title":"Look out for smart actions","description":"Copilot enhances your coding experience with AI-powered smart actions throughout the VS Code interface.\nLook for $(sparkle) icons, such as in the [Source Control view](command:workbench.view.scm), where Copilot generates commit messages and PR descriptions based on code changes.\n\n[Discover Tips and Tricks](https://code.visualstudio.com/docs/copilot/copilot-vscode-features)","when":"!chatEntitlementSignedOut || chatIsEnabled","media":{"video":{"dark":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit.mp4","light":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-light.mp4","hc":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-hc.mp4","hcLight":"https://vscodewalkthroughs.z1.web.core.windows.net/v0.26/git-commit-hclight.mp4"},"altText":"The video shows the sparkle icon in the source control input box being clicked, triggering GitHub Copilot to generate a commit message automatically"}}]}],"jsonValidation":[{"fileMatch":"settings.json","url":"ccsettings://root/schema.json"}],"typescriptServerPlugins":[{"name":"@vscode/copilot-typescript-server-plugin","enableForWorkspaceTypeScriptVersions":true}],"chatSessions":[{"type":"copilotcli","name":"cli","displayName":"Copilot CLI","icon":"$(copilot)","welcomeTitle":"Copilot CLI","welcomeMessage":"Run tasks in the background with the Copilot CLI","inputPlaceholder":"Run tasks in the background with the Copilot CLI, type `#` for adding context","order":1,"canDelegate":true,"description":"Delegate tasks to a background agent running locally on your machine. The agent iterates via chat and works asynchronously in a Git worktree to implement changes isolated from your main workspace using the GitHub Copilot CLI.","when":"config.github.copilot.chat.backgroundAgent.enabled","supportsAutoModel":true,"requiresCopilotSignIn":true,"capabilities":{"supportsFileAttachments":true,"supportsProblemAttachments":true,"supportsToolAttachments":false,"supportsImageAttachments":true,"supportsSymbolAttachments":true,"supportsSearchResultAttachments":true,"supportsSourceControlAttachments":true,"supportsPromptAttachments":true,"supportsHandOffs":true},"commands":[{"name":"delegate","description":"Delegate chat session to cloud agent and create associated PR","when":"config.github.copilot.chat.cloudAgent.enabled"},{"name":"compact","description":"Free up context by compacting the conversation history"},{"name":"plan","description":"Create an implementation plan before coding","when":"config.github.copilot.chat.cli.planCommand.enabled"},{"name":"fleet","description":"Enable fleet mode for parallel subagent execution","when":"false"},{"name":"remote","description":"Show remote control status, or use /remote on and /remote off","when":"config.github.copilot.chat.cli.remote.enabled"}],"customAgentTarget":"github-copilot","requiresCustomModels":true,"autoAttachReferences":true,"useRequestToPopulateBuiltInPickers":true},{"type":"copilot-cloud-agent","alternativeIds":["copilot-swe-agent"],"name":"cloud","displayName":"Cloud","icon":"$(cloud)","welcomeTitle":"Cloud Agent","welcomeMessage":"Delegate tasks to the cloud","inputPlaceholder":"Delegate tasks to the cloud, type `#` for adding context","order":2,"canDelegate":true,"description":"Delegate tasks to the GitHub Copilot coding agent. The agent iterates via chat and works asynchronously in the cloud to implement changes and pull requests as needed.","when":"config.github.copilot.chat.cloudAgent.enabled","supportsAutoModel":false,"requiresCopilotSignIn":true,"capabilities":{"supportsFileAttachments":true},"autoAttachReferences":true}],"chatAgents":[],"chatPromptFiles":[{"path":"./assets/prompts/plan.prompt.md","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-standup.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-tips.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-cost-tips.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-improve.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-reindex.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/chronicle-search.prompt.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]}],"chatSkills":[{"path":"./assets/prompts/skills/project-setup-info-local/SKILL.md","when":"!config.github.copilot.chat.newWorkspace.useContext7","sessionTypes":["local"]},{"path":"./assets/prompts/skills/project-setup-info-context7/SKILL.md","when":"config.github.copilot.chat.newWorkspace.useContext7","sessionTypes":["local"]},{"path":"./assets/prompts/skills/install-vscode-extension/SKILL.md","when":"config.github.copilot.chat.installExtensionSkill.enabled && config.github.copilot.chat.newWorkspaceCreation.enabled","sessionTypes":["local"]},{"path":"./assets/prompts/skills/get-search-view-results/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/troubleshoot/SKILL.md","sessionTypes":["local","copilotcli"]},{"path":"./assets/prompts/skills/agent-customization/SKILL.md","sessionTypes":["local","copilotcli"]},{"path":"./assets/prompts/skills/init/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-prompt/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-instructions/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-skill/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-agent/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/create-hook/SKILL.md","sessionTypes":["local"]},{"path":"./assets/prompts/skills/chronicle/SKILL.md","when":"github.copilot.sessionSearch.enabled","sessionTypes":["local"]}],"terminal":{"profiles":[{"icon":"copilot","id":"copilot-cli","title":"GitHub Copilot CLI","titleTemplate":"${sequence}"}]}},"prettier":{"useTabs":true,"tabWidth":4,"singleQuote":true},"scripts":{"postinstall":"tsx ./script/postinstall.ts","build":"node .esbuild.mts --sourcemaps","compile":"node .esbuild.mts --dev","watch":"npm-run-all -lp watch:esbuild watch:typecheck","watch:esbuild":"node .esbuild.mts --watch --dev","watch:typecheck":"tsc --noEmit --watch --preserveWatchOutput --project tsconfig.json","watch:typecheck-extension":"tsc --noEmit --watch --project tsconfig.json","watch:typecheck-extension-web":"tsc --noEmit --watch --project tsconfig.worker.json","watch:typecheck-simulation-workbench":"tsc --noEmit --watch --project test/simulation/workbench/tsconfig.json","typecheck":"tsc --noEmit --project tsconfig.json && tsc --noEmit --project test/simulation/workbench/tsconfig.json && tsc --noEmit --project tsconfig.worker.json && tsc --noEmit --project src/extension/completions-core/vscode-node/extension/src/copilotPanel/webView/tsconfig.json","lint":"npx eslint . --max-warnings=0","lint-staged":"npx eslint --max-warnings=0","tsfmt":"npx tsfmt -r --verify","test":"npm-run-all test:*","test:extension":"vscode-test","test:sanity":"vscode-test --sanity","test:unit":"vitest --run --pool=forks","vitest":"vitest","bench":"vitest bench","get_env":"tsx script/setup/getEnv.mts","get_token":"tsx script/setup/getToken.mts","prettier":"prettier --list-different --write --cache .","simulate":"node dist/simulationMain.js","simulate-require-cache":"node dist/simulationMain.js --require-cache","simulate-ci":"node dist/simulationMain.js --ci --require-cache","simulate-update-baseline":"node dist/simulationMain.js --update-baseline","simulate-gc":"node dist/simulationMain.js --require-cache --gc","setup":"npm run get_env && npm run get_token","setup:dotnet":"run-script-os","setup:dotnet:darwin:linux":"curl -O https://raw.githubusercontent.com/dotnet/install-scripts/main/src/dotnet-install.sh && chmod u+x dotnet-install.sh && ./dotnet-install.sh --channel 10.0 && rm dotnet-install.sh","setup:dotnet:win32":"powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"Invoke-WebRequest -Uri https://raw.githubusercontent.com/dotnet/install-scripts/main/src/dotnet-install.ps1 -OutFile dotnet-install.ps1; ./dotnet-install.ps1 -channel 10.0; Remove-Item dotnet-install.ps1\"","analyze-edits":"tsx script/analyzeEdits.ts","extract-chat-lib":"tsx script/build/extractChatLib.ts","create_venv":"tsx script/setup/createVenv.mts","package":"vsce package","web":"vscode-test-web --headless --extensionDevelopmentPath=. .","test:prompt":"mocha \"src/extension/completions-core/vscode-node/prompt/**/test/**/*.test.{ts,tsx}\"","test:completions-core":"tsx src/extension/completions-core/vscode-node/extension/test/runTest.ts"},"devDependencies":{"@azure/identity":"4.9.1","@azure/keyvault-secrets":"^4.10.0","@azure/msal-node":"^3.6.3","@c4312/scip":"^0.1.0","@fluentui/react-components":"^9.66.6","@fluentui/react-icons":"^2.0.305","@hediet/node-reload":"^0.8.0","@octokit/types":"^14.1.0","@stylistic/eslint-plugin":"^3.0.1","@types/eslint":"^9.0.0","@types/express":"^5.0.6","@types/google-protobuf":"^3.15.12","@types/js-yaml":"^4.0.9","@types/markdown-it":"^14.0.0","@types/minimist":"^1.2.5","@types/mocha":"^10.0.10","@types/node":"^22.16.3","@types/picomatch":"^4.0.0","@types/react":"17.0.44","@types/react-dom":"^18.2.17","@types/sinon":"^17.0.4","@types/source-map-support":"^0.5.10","@types/tar":"^6.1.13","@types/vinyl":"^2.0.12","@types/vscode-webview":"^1.57.5","@types/ws":"^8.5.3","@types/yargs":"^17.0.24","@typescript-eslint/eslint-plugin":"^8.35.0","@typescript-eslint/parser":"^8.32.0","@typescript-eslint/typescript-estree":"^8.26.1","@typescript/native":"npm:typescript@7.1.0-dev.20260818.1","@vitest/coverage-v8":"^4.1.8","@vitest/snapshot":"^1.5.0","@vscode/debugadapter":"^1.68.0","@vscode/debugprotocol":"^1.68.0","@vscode/dts":"^0.4.1","@vscode/lsif-language-service":"^0.1.0-pre.4","@vscode/test-cli":"^0.0.11","@vscode/test-electron":"^2.5.2","@vscode/test-web":"^0.0.81","@vscode/vsce":"3.6.0","copyfiles":"^2.4.1","csv-parse":"^6.0.0","dotenv":"^17.2.0","electron":"^42.5.0","esbuild":"0.28.1","fastq":"^1.19.1","glob":"^11.1.0","js-yaml":"^4.3.0","minimist":"^1.2.8","mobx":"^6.13.7","mobx-react-lite":"^4.1.0","mocha":"^11.7.1","mocha-junit-reporter":"^2.2.1","mocha-multi-reporters":"^1.5.1","monaco-editor":"0.44.0","npm-run-all":"^4.1.5","open":"^10.1.2","openai":"^6.7.0","outdent":"^0.8.0","picomatch":"^4.0.4","playwright":"^1.61.1","prettier":"^3.6.2","react":"^17.0.2","react-dom":"17.0.2","rimraf":"^6.0.1","run-script-os":"^1.1.6","shiki":"~1.15.0","sinon":"^21.0.0","source-map-support":"^0.5.21","tar":"^7.5.16","ts-dedent":"^2.2.0","tsx":"^4.22.4","typescript":"npm:@typescript/typescript6@^6.0.2","vite-plugin-wasm":"^3.6.0","vitest":"^4.1.8","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12","vscode-languageserver-types":"^3.17.5","yaml":"^2.8.0","yargs":"^17.7.2","zod":"3.25.76"},"dependencies":{"@anthropic-ai/sdk":"^0.82.0","@github/blackbird-external-ingest-utils":"^0.3.0","@github/copilot":"^1.0.73","@google/genai":"1.30.0","@humanwhocodes/gitignore-to-minimatch":"1.0.2","@microsoft/tiktokenizer":"^1.0.10","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.212.0","@opentelemetry/exporter-logs-otlp-grpc":"^0.219.0","@opentelemetry/exporter-logs-otlp-http":"^0.219.0","@opentelemetry/exporter-logs-otlp-proto":"^0.219.0","@opentelemetry/exporter-metrics-otlp-grpc":"^0.219.0","@opentelemetry/exporter-metrics-otlp-http":"^0.219.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.219.0","@opentelemetry/exporter-trace-otlp-grpc":"^0.219.0","@opentelemetry/exporter-trace-otlp-http":"^0.219.0","@opentelemetry/exporter-trace-otlp-proto":"^0.219.0","@opentelemetry/resources":"^2.5.1","@opentelemetry/sdk-logs":"^0.212.0","@opentelemetry/sdk-metrics":"^2.5.1","@opentelemetry/sdk-trace-node":"^2.5.1","@opentelemetry/semantic-conventions":"^1.39.0","@sinclair/typebox":"^0.34.41","@vscode/copilot-api":"^0.5.2","@vscode/extension-telemetry":"^1.5.1","@vscode/l10n":"^0.0.18","@vscode/prompt-tsx":"^0.4.0-alpha.8","@vscode/tree-sitter-wasm":"0.0.5-php.2","@vscode/webview-ui-toolkit":"^1.3.1","@xterm/headless":"^5.5.0","ajv":"^8.18.0","applicationinsights":"^2.9.7","best-effort-json-parser":"^1.2.1","diff":"^8.0.3","express":"^5.2.1","ignore":"^7.0.5","isbinaryfile":"^5.0.4","jsonc-parser":"^3.3.1","lru-cache":"^11.1.0","markdown-it":"^14.2.0","minimatch":"^10.2.1","undici":"^7.24.1","vscode-tas-client":"^0.3.1","web-tree-sitter":"^0.23.0"},"overrides":{"string_decoder":"npm:string_decoder@1.2.0","yauzl":"^3.3.1","zod":"3.25.76"},"vscodeCommit":"94c8e2adc50e26ef70af85a0de3a9efed757acaa","allowScripts":{"esbuild@0.28.1":true,"keytar@7.9.0":true,"@playwright/browser-chromium@1.61.1":true,"@vscode/vsce-sign@2.1.0":true,"protobufjs":false,"fsevents@2.3.3":true,"fsevents@2.3.2":true},"isPreRelease":false,"originalEnabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","chatDebug","chatHooks","extensionsAny","newSymbolNamesProvider","interactive","codeActionAI","activeComment","commentReveal","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","documentFiltersExclusive","embeddings","findTextInFiles","findTextInFiles2","languageModelToolSupportsModel","findFiles2","textSearchProvider","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","chatParticipantAdditions","defaultChatParticipant","contribSourceControlInputBoxMenu","authLearnMore","testObserver","aiTextSearchProvider","chatParticipantPrivate","chatProvider","contribDebugCreateConfiguration","chatReferenceDiagnostic","textSearchProvider2","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelPricing","inlineCompletionsAdditions","chatStatusItem","chatInputNotification","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","languageModelThinkingPart","chatSessionsProvider","devDeviceId","contribEditorContentMenu","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","environmentPower","terminalTitle","toolInvocationApproveCombination","chatSessionCustomizationProvider"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/copilot","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":true},{"type":0,"identifier":{"id":"vscode.cpp"},"manifest":{"name":"cpp","displayName":"C/C++ Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in C/C++ files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"c","extensions":[".c",".i"],"aliases":["C","c"],"configuration":"./language-configuration.json"},{"id":"cpp","extensions":[".cpp",".cppm",".cc",".ccm",".cxx",".cxxm",".c++",".c++m",".hpp",".hh",".hxx",".h++",".h",".ii",".ino",".inl",".ipp",".ixx",".mpp",".mxx",".tpp",".txx",".hpp.in",".h.in"],"aliases":["C++","Cpp","cpp"],"configuration":"./language-configuration.json"},{"id":"cuda-cpp","extensions":[".cu",".cuh"],"aliases":["CUDA C++"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"c","scopeName":"source.c","path":"./syntaxes/c.tmLanguage.json"},{"language":"cpp","scopeName":"source.cpp.embedded.macro","path":"./syntaxes/cpp.embedded.macro.tmLanguage.json"},{"language":"cpp","scopeName":"source.cpp","path":"./syntaxes/cpp.tmLanguage.json"},{"scopeName":"source.c.platform","path":"./syntaxes/platform.tmLanguage.json"},{"language":"cuda-cpp","scopeName":"source.cuda-cpp","path":"./syntaxes/cuda-cpp.tmLanguage.json"}],"problemPatterns":[{"name":"nvcc-location","regexp":"^(.*)\\((\\d+)\\):\\s+(warning|error):\\s+(.*)","kind":"location","file":1,"location":2,"severity":3,"message":4}],"problemMatchers":[{"name":"nvcc","owner":"cuda-cpp","fileLocation":["relative","${workspaceFolder}"],"pattern":"$nvcc-location"}],"snippets":[{"language":"c","path":"./snippets/c.code-snippets"},{"language":"cpp","path":"./snippets/cpp.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/cpp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.csharp"},"manifest":{"name":"csharp","displayName":"C# Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in C# files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dotnet/csharp-tmLanguage grammars/csharp.tmLanguage ./syntaxes/csharp.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"configurationDefaults":{"[csharp]":{"editor.maxTokenizationLineLength":2500}},"languages":[{"id":"csharp","extensions":[".cs",".csx",".cake"],"aliases":["C#","csharp"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"csharp","scopeName":"source.cs","path":"./syntaxes/csharp.tmLanguage.json","tokenTypes":{"meta.interpolation":"other"},"unbalancedBracketScopes":["keyword.operator.relational.cs","keyword.operator.arrow.cs","punctuation.accessor.pointer.cs","keyword.operator.bitwise.shift.cs","keyword.operator.assignment.compound.bitwise.cs"]}],"snippets":[{"language":"csharp","path":"./snippets/csharp.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/csharp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.css"},"manifest":{"name":"css","displayName":"CSS Language Basics","description":"Provides syntax highlighting and bracket matching for CSS, LESS and SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin microsoft/vscode-css grammars/css.cson ./syntaxes/css.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"css","aliases":["CSS","css"],"extensions":[".css"],"mimetypes":["text/css"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"css","scopeName":"source.css","path":"./syntaxes/css.tmLanguage.json","tokenTypes":{"meta.function.url string.quoted":"other"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/css","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.css-language-features"},"manifest":{"name":"css-language-features","displayName":"CSS Language Features","description":"Provides rich language support for CSS, LESS and SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.77.0"},"icon":"icons/css.png","activationEvents":["onLanguage:css","onLanguage:less","onLanguage:scss"],"main":"./client/dist/node/cssClientMain","browser":"./client/dist/browser/cssClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"categories":["Programming Languages"],"contributes":{"configuration":[{"order":22,"id":"css","title":"CSS","properties":{"css.customData":{"type":"array","markdownDescription":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-css-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its CSS support for CSS custom properties (variables), at-rules, pseudo-classes, and pseudo-elements you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","default":[],"items":{"type":"string"},"scope":"resource"},"css.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"css.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"css.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"css.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in CSS hovers."},"css.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in CSS hovers."},"css.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"css.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"css.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"css.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"css.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"css.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"css.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"css.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"css.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"css.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"css.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"css.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"css.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"css.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"css.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"css.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"css.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"css.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"css.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"css.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"css.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the CSS language server."},"css.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default CSS formatter."},"css.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"css.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"css.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"css.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"css.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"css.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#css.format.preserveNewLines#` is enabled."}}},{"id":"scss","order":24,"title":"SCSS (Sass)","properties":{"scss.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"scss.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"scss.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"scss.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in SCSS hovers."},"scss.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in SCSS hovers."},"scss.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"scss.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"scss.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"scss.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"scss.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"scss.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"scss.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"scss.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"scss.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"scss.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"scss.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"scss.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"scss.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"scss.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"scss.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"scss.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"scss.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"scss.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"scss.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"scss.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"scss.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default SCSS formatter."},"scss.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"scss.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"scss.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"scss.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"scss.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"scss.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#scss.format.preserveNewLines#` is enabled."}}},{"id":"less","order":23,"type":"object","title":"LESS","properties":{"less.completion.triggerPropertyValueCompletion":{"type":"boolean","scope":"resource","default":true,"description":"By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior."},"less.completion.completePropertyWithSemicolon":{"type":"boolean","scope":"resource","default":true,"description":"Insert semicolon at end of line when completing CSS properties."},"less.validate":{"type":"boolean","scope":"resource","default":true,"description":"Enables or disables all validations."},"less.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show property and value documentation in LESS hovers."},"less.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in LESS hovers."},"less.lint.compatibleVendorPrefixes":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"When using a vendor-specific prefix make sure to also include all other vendor-specific properties."},"less.lint.vendorPrefix":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"When using a vendor-specific prefix, also include the standard property."},"less.lint.duplicateProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Do not use duplicate style definitions."},"less.lint.emptyRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Do not use empty rulesets."},"less.lint.importStatement":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Import statements do not load in parallel."},"less.lint.boxModel":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Do not use `width` or `height` when using `padding` or `border`."},"less.lint.universalSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"The universal selector (`*`) is known to be slow."},"less.lint.zeroUnits":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"No unit for zero needed."},"less.lint.fontFaceProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"`@font-face` rule must define `src` and `font-family` properties."},"less.lint.hexColorLength":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Hex colors must consist of 3, 4, 6 or 8 hex numbers."},"less.lint.argumentsInColorFunction":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"error","description":"Invalid number of parameters."},"less.lint.unknownProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown property."},"less.lint.validProperties":{"type":"array","uniqueItems":true,"items":{"type":"string"},"scope":"resource","default":[],"markdownDescription":"A list of properties that are not validated against the `unknownProperties` rule."},"less.lint.ieHack":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"IE hacks are only necessary when supporting IE7 and older."},"less.lint.unknownVendorSpecificProperties":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Unknown vendor specific property."},"less.lint.propertyIgnoredDueToDisplay":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","markdownDescription":"Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect."},"less.lint.important":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."},"less.lint.float":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","markdownDescription":"Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."},"less.lint.idSelector":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"ignore","description":"Selectors should not contain IDs because these rules are too tightly coupled with the HTML."},"less.lint.unknownAtRules":{"type":"string","scope":"resource","enum":["ignore","warning","error"],"default":"warning","description":"Unknown at-rule."},"less.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default LESS formatter."},"less.format.newlineBetweenSelectors":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate selectors with a new line."},"less.format.newlineBetweenRules":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Separate rulesets by a blank line."},"less.format.spaceAroundSelectorSeparator":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Ensure a space character around selector separators `>`, `+`, `~` (e.g. `a > b`)."},"less.format.braceStyle":{"type":"string","scope":"resource","default":"collapse","enum":["collapse","expand"],"markdownDescription":"Put braces on the same line as rules (`collapse`) or put braces on own line (`expand`)."},"less.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Whether existing line breaks before rules and declarations should be preserved."},"less.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk, when `#less.format.preserveNewLines#` is enabled."}}}],"configurationDefaults":{"[css]":{"editor.suggest.insertMode":"replace"},"[scss]":{"editor.suggest.insertMode":"replace"},"[less]":{"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.css-data.json","url":"https://raw.githubusercontent.com/microsoft/vscode-css-languageservice/master/docs/customData.schema.json"},{"fileMatch":"package.json","url":"./schemas/package.schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/css-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.dart"},"manifest":{"name":"dart","displayName":"Dart Language Basics","description":"Provides syntax highlighting & bracket matching in Dart files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dart-lang/dart-syntax-highlight grammars/dart.json ./syntaxes/dart.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dart","extensions":[".dart"],"aliases":["Dart"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dart","scopeName":"source.dart","path":"./syntaxes/dart.tmLanguage.json"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/dart","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.debug-auto-launch"},"manifest":{"name":"debug-auto-launch","displayName":"Node Debug Auto-attach","description":"Helper for auto-attach feature when node-debug extensions are not active.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.5.0"},"icon":"media/icon.png","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onStartupFinished"],"main":"./dist/extension","contributes":{"commands":[{"command":"extension.node-debug.toggleAutoAttach","title":"Toggle Auto Attach","category":"Debug"}]},"prettier":{"printWidth":100,"trailingComma":"all","singleQuote":true,"arrowParens":"avoid"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/debug-auto-launch","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.debug-server-ready"},"manifest":{"name":"debug-server-ready","displayName":"Server Ready Action","description":"Open URI in browser if server under debugging is ready.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.32.0"},"icon":"media/icon.png","activationEvents":["onDebugResolve"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["terminalDataWriteEvent"],"main":"./dist/extension","contributes":{"debuggers":[{"type":"*","configurationAttributes":{"launch":{"properties":{"serverReadyAction":{"oneOf":[{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"openExternally","killOnServerStop":false},"properties":{"action":{"type":"string","enum":["openExternally","openIntegratedBrowser"],"enumDescriptions":["Open URI externally with the default application.","Open URI in the integrated browser."],"markdownDescription":"What to do with the URI when the server is ready.","default":"openExternally"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"uriFormat":{"type":"string","markdownDescription":"A format string used when constructing the URI from a port number. The first '%s' is substituted with the port number.","default":"http://localhost:%s"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"debugWithEdge","pattern":"listening on port ([0-9]+)","uriFormat":"http://localhost:%s","webRoot":"${workspaceFolder}","killOnServerStop":false},"properties":{"action":{"type":"string","enum":["debugWithChrome","debugWithEdge"],"enumDescriptions":["Start debugging with the 'Debugger for Chrome'."],"markdownDescription":"What to do with the URI when the server is ready.","default":"debugWithEdge"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"uriFormat":{"type":"string","markdownDescription":"A format string used when constructing the URI from a port number. The first '%s' is substituted with the port number.","default":"http://localhost:%s"},"webRoot":{"type":"string","markdownDescription":"Value passed to the debug configuration for the 'Debugger for Chrome'.","default":"${workspaceFolder}"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"startDebugging","name":"","killOnServerStop":false},"required":["name"],"properties":{"action":{"type":"string","enum":["startDebugging"],"enumDescriptions":["Run another launch configuration."],"markdownDescription":"What to do with the URI when the server is ready.","default":"startDebugging"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"name":{"type":"string","markdownDescription":"Name of the launch configuration to run.","default":"Launch Browser"},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}},{"type":"object","additionalProperties":false,"markdownDescription":"Act upon a URI when a server program under debugging is ready (indicated by sending output of the form 'listening on port 3000' or 'Now listening on: https://localhost:5001' to the debug console.)","default":{"action":"startDebugging","config":{"type":"node","request":"launch"},"killOnServerStop":false},"required":["config"],"properties":{"action":{"type":"string","enum":["startDebugging"],"enumDescriptions":["Run another launch configuration."],"markdownDescription":"What to do with the URI when the server is ready.","default":"startDebugging"},"pattern":{"type":"string","markdownDescription":"Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.","default":"listening on port ([0-9]+)"},"config":{"type":"object","markdownDescription":"The debug configuration to run.","default":{}},"killOnServerStop":{"type":"boolean","markdownDescription":"Stop the child session when the parent session stopped.","default":false}}}]}}}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalDataWriteEvent"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/debug-server-ready","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.diff"},"manifest":{"name":"diff","displayName":"Diff Language Basics","description":"Provides syntax highlighting & bracket matching in Diff files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/diff.tmbundle Syntaxes/Diff.plist ./syntaxes/diff.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"diff","aliases":["Diff","diff"],"extensions":[".diff",".patch",".rej"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"diff","scopeName":"source.diff","path":"./syntaxes/diff.tmLanguage.json"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/diff","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.docker"},"manifest":{"name":"docker","displayName":"Docker Language Basics","description":"Provides syntax highlighting and bracket matching in Docker files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dockerfile","extensions":[".dockerfile",".containerfile"],"filenames":["Dockerfile","Containerfile"],"filenamePatterns":["Dockerfile.*","Containerfile.*"],"aliases":["Docker","Dockerfile","Containerfile"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dockerfile","scopeName":"source.dockerfile","path":"./syntaxes/docker.tmLanguage.json"}],"configurationDefaults":{"[dockerfile]":{"editor.quickSuggestions":{"strings":true}}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/docker","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.dotenv"},"manifest":{"name":"dotenv","displayName":"Dotenv Language Basics","description":"Provides syntax highlighting and bracket matching in dotenv files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin dotenv-org/dotenv-vscode syntaxes/dotenv.tmLanguage.json ./syntaxes/dotenv.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"dotenv","extensions":[".env"],"filenames":[".env",".flaskenv","user-dirs.dirs"],"filenamePatterns":[".env.*"],"aliases":["Dotenv"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"dotenv","scopeName":"source.dotenv","path":"./syntaxes/dotenv.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/dotenv","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.emmet"},"manifest":{"name":"emmet","displayName":"Emmet","description":"Emmet support for VS Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.13.0"},"icon":"images/icon.png","categories":["Other"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"activationEvents":["onCommand:emmet.expandAbbreviation","onLanguage"],"main":"./dist/node/emmetNodeMain","browser":"./dist/browser/emmetBrowserMain","contributes":{"configuration":{"type":"object","title":"Emmet","properties":{"emmet.showExpandedAbbreviation":{"type":["string"],"enum":["never","always","inMarkupAndStylesheetFilesOnly"],"default":"always","markdownDescription":"Shows expanded Emmet abbreviations as suggestions.\nThe option `\"inMarkupAndStylesheetFilesOnly\"` applies to html, haml, jade, slim, xml, xsl, css, scss, sass, less and stylus.\nThe option `\"always\"` applies to all parts of the file regardless of markup/css."},"emmet.showAbbreviationSuggestions":{"type":"boolean","default":true,"scope":"language-overridable","markdownDescription":"Shows possible Emmet abbreviations as suggestions. Not applicable in stylesheets or when emmet.showExpandedAbbreviation is set to `\"never\"`."},"emmet.includeLanguages":{"type":"object","additionalProperties":{"type":"string"},"default":{},"markdownDescription":"Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and Emmet supported language.\n For example: `{\"vue-html\": \"html\", \"javascript\": \"javascriptreact\"}`"},"emmet.variables":{"type":"object","properties":{"lang":{"type":"string","default":"en"},"charset":{"type":"string","default":"UTF-8"}},"additionalProperties":{"type":"string"},"default":{},"markdownDescription":"Variables to be used in Emmet snippets."},"emmet.syntaxProfiles":{"type":"object","default":{},"markdownDescription":"Define profile for specified syntax or use your own profile with specific rules."},"emmet.excludeLanguages":{"type":"array","items":{"type":"string"},"default":["markdown"],"markdownDescription":"An array of languages where Emmet abbreviations should not be expanded."},"emmet.extensionsPath":{"type":"array","items":{"type":"string","markdownDescription":"A path containing Emmet syntaxProfiles and/or snippets."},"default":[],"scope":"machine-overridable","markdownDescription":"An array of paths, where each path can contain Emmet syntaxProfiles and/or snippet files.\nIn case of conflicts, the profiles/snippets of later paths will override those of earlier paths.\nSee https://code.visualstudio.com/docs/editor/emmet for more information and an example snippet file."},"emmet.triggerExpansionOnTab":{"type":"boolean","default":false,"scope":"language-overridable","markdownDescription":"When enabled, Emmet abbreviations are expanded when pressing TAB, even when completions do not show up. When disabled, completions that show up can still be accepted by pressing TAB."},"emmet.useInlineCompletions":{"type":"boolean","default":false,"markdownDescription":"If `true`, Emmet will use inline completions to suggest expansions. To prevent the non-inline completion item provider from showing up as often while this setting is `true`, turn `#editor.quickSuggestions#` to `inline` or `off` for the `other` item."},"emmet.preferences":{"type":"object","default":{},"markdownDescription":"Preferences used to modify behavior of some actions and resolvers of Emmet.","properties":{"css.intUnit":{"type":"string","default":"px","markdownDescription":"Default unit for integer values."},"css.floatUnit":{"type":"string","default":"em","markdownDescription":"Default unit for float values."},"css.propertyEnd":{"type":"string","default":";","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations."},"sass.propertyEnd":{"type":"string","default":"","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations in Sass files."},"stylus.propertyEnd":{"type":"string","default":"","markdownDescription":"Symbol to be placed at the end of CSS property when expanding CSS abbreviations in Stylus files."},"css.valueSeparator":{"type":"string","default":": ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations."},"sass.valueSeparator":{"type":"string","default":": ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations in Sass files."},"stylus.valueSeparator":{"type":"string","default":" ","markdownDescription":"Symbol to be placed at the between CSS property and value when expanding CSS abbreviations in Stylus files."},"bem.elementSeparator":{"type":"string","default":"__","markdownDescription":"Element separator used for classes when using the BEM filter."},"bem.modifierSeparator":{"type":"string","default":"_","markdownDescription":"Modifier separator used for classes when using the BEM filter."},"filter.commentBefore":{"type":"string","default":"","markdownDescription":"A definition of comment that should be placed before matched element when comment filter is applied."},"filter.commentAfter":{"type":"string","default":"\n","markdownDescription":"A definition of comment that should be placed after matched element when comment filter is applied."},"filter.commentTrigger":{"type":"array","default":["id","class"],"markdownDescription":"A comma-separated list of attribute names that should exist in the abbreviation for the comment filter to be applied."},"format.noIndentTags":{"type":"array","default":["html"],"markdownDescription":"An array of tag names that should never get inner indentation."},"format.forceIndentationForTags":{"type":"array","default":["body"],"markdownDescription":"An array of tag names that should always get inner indentation."},"profile.allowCompactBoolean":{"type":"boolean","default":false,"markdownDescription":"If `true`, compact notation of boolean attributes are produced."},"css.webkitProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `webkit` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `webkit` prefix."},"css.mozProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `moz` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `moz` prefix."},"css.oProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `o` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `o` prefix."},"css.msProperties":{"type":"string","default":null,"markdownDescription":"Comma separated CSS properties that get the `ms` vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the `ms` prefix."},"css.fuzzySearchMinScore":{"type":"number","default":0.3,"markdownDescription":"The minimum score (from 0 to 1) that fuzzy-matched abbreviation should achieve. Lower values may produce many false-positive matches, higher values may reduce possible matches."},"output.inlineBreak":{"type":"number","default":0,"markdownDescription":"The number of sibling inline elements needed for line breaks to be placed between those elements. If `0`, inline elements are always expanded onto a single line."},"output.reverseAttributes":{"type":"boolean","default":false,"markdownDescription":"If `true`, reverses attribute merging directions when resolving snippets."},"output.selfClosingStyle":{"type":"string","enum":["html","xhtml","xml"],"default":"html","markdownDescription":"Style of self-closing tags: html (`
`), xml (`
`) or xhtml (`
`)."},"css.color.short":{"type":"boolean","default":true,"markdownDescription":"If `true`, color values like `#f` will be expanded to `#fff` instead of `#ffffff`."}}},"emmet.showSuggestionsAsSnippets":{"type":"boolean","default":false,"markdownDescription":"If `true`, then Emmet suggestions will show up as snippets allowing you to order them as per `#editor.snippetSuggestions#` setting."},"emmet.optimizeStylesheetParsing":{"type":"boolean","default":true,"markdownDescription":"When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in CSS/SCSS/Less files is parsed."}}},"commands":[{"command":"editor.emmet.action.wrapWithAbbreviation","title":"Wrap with Abbreviation","category":"Emmet"},{"command":"editor.emmet.action.removeTag","title":"Remove Tag","category":"Emmet"},{"command":"editor.emmet.action.updateTag","title":"Update Tag","category":"Emmet"},{"command":"editor.emmet.action.matchTag","title":"Go to Matching Pair","category":"Emmet"},{"command":"editor.emmet.action.balanceIn","title":"Balance (inward)","category":"Emmet"},{"command":"editor.emmet.action.balanceOut","title":"Balance (outward)","category":"Emmet"},{"command":"editor.emmet.action.prevEditPoint","title":"Go to Previous Edit Point","category":"Emmet"},{"command":"editor.emmet.action.nextEditPoint","title":"Go to Next Edit Point","category":"Emmet"},{"command":"editor.emmet.action.mergeLines","title":"Merge Lines","category":"Emmet"},{"command":"editor.emmet.action.selectPrevItem","title":"Select Previous Item","category":"Emmet"},{"command":"editor.emmet.action.selectNextItem","title":"Select Next Item","category":"Emmet"},{"command":"editor.emmet.action.splitJoinTag","title":"Split/Join Tag","category":"Emmet"},{"command":"editor.emmet.action.toggleComment","title":"Toggle Comment","category":"Emmet"},{"command":"editor.emmet.action.evaluateMathExpression","title":"Evaluate Math Expression","category":"Emmet"},{"command":"editor.emmet.action.updateImageSize","title":"Update Image Size","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByOneTenth","title":"Increment by 0.1","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByOne","title":"Increment by 1","category":"Emmet"},{"command":"editor.emmet.action.incrementNumberByTen","title":"Increment by 10","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByOneTenth","title":"Decrement by 0.1","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByOne","title":"Decrement by 1","category":"Emmet"},{"command":"editor.emmet.action.decrementNumberByTen","title":"Decrement by 10","category":"Emmet"},{"command":"editor.emmet.action.reflectCSSValue","title":"Reflect CSS Value","category":"Emmet"},{"command":"workbench.action.showEmmetCommands","title":"Show Emmet Commands","category":""}],"menus":{"commandPalette":[{"command":"editor.emmet.action.wrapWithAbbreviation","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.removeTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.updateTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.matchTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.balanceIn","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.balanceOut","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.prevEditPoint","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.nextEditPoint","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.mergeLines","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.selectPrevItem","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.selectNextItem","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.splitJoinTag","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.toggleComment","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.evaluateMathExpression","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.updateImageSize","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByOneTenth","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByOne","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.incrementNumberByTen","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByOneTenth","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByOne","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.decrementNumberByTen","when":"activeEditor && !activeEditorIsReadonly"},{"command":"editor.emmet.action.reflectCSSValue","when":"activeEditor && !activeEditorIsReadonly"}]}},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/emmet","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.extension-editing"},"manifest":{"name":"extension-editing","displayName":"Extension Authoring","description":"Provides linting capabilities for authoring extensions.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.4.0"},"icon":"images/icon.png","activationEvents":["onLanguage:json","onLanguage:markdown"],"main":"./dist/extensionEditingMain","browser":"./dist/browser/extensionEditingBrowserMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"jsonValidation":[{"fileMatch":"package.json","url":"vscode://schemas/vscode-extensions"},{"fileMatch":"*language-configuration.json","url":"vscode://schemas/language-configuration"},{"fileMatch":["*icon-theme.json","!*product-icon-theme.json"],"url":"vscode://schemas/icon-theme"},{"fileMatch":"*product-icon-theme.json","url":"vscode://schemas/product-icon-theme"},{"fileMatch":"*color-theme.json","url":"vscode://schemas/color-theme"}],"languages":[{"id":"ignore","filenames":[".vscodeignore"]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/extension-editing","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.fsharp"},"manifest":{"name":"fsharp","displayName":"F# Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in F# files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin ionide/ionide-fsgrammar grammars/fsharp.json ./syntaxes/fsharp.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"fsharp","extensions":[".fs",".fsi",".fsx",".fsscript"],"aliases":["F#","FSharp","fsharp"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"fsharp","scopeName":"source.fsharp","path":"./syntaxes/fsharp.tmLanguage.json"}],"snippets":[{"language":"fsharp","path":"./snippets/fsharp.code-snippets"}],"configurationDefaults":{"[fsharp]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/fsharp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.git"},"manifest":{"name":"git","displayName":"Git","description":"Git SCM Integration","publisher":"vscode","license":"MIT","version":"10.0.0","engines":{"vscode":"^1.5.0"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","canonicalUriProvider","contribEditSessions","contribEditorContentMenu","contribMergeEditorMenus","contribMultiDiffEditorMenus","contribDiffEditorGutterToolBarMenus","contribSourceControlArtifactGroupMenu","contribSourceControlArtifactMenu","contribSourceControlHistoryItemMenu","contribSourceControlHistoryTitleMenu","contribSourceControlInputBoxMenu","contribSourceControlTitleMenu","contribViewsWelcome","editSessionIdentityProvider","envIsConnectionMetered","findFiles2","quickDiffProvider","quickPickSortByLabel","scmActionButton","scmArtifactProvider","scmHistoryProvider","scmMultiDiffEditor","scmProviderOptions","scmSelectedProvider","scmTextDocument","scmValidation","statusBarItemTooltip","taskRunOptions","tabInputMultiDiff","tabInputTextMerge","textEditorDiffInformation","timeline","workspaceTrust"],"categories":["Other"],"activationEvents":["*","onEditSession:file","onFileSystem:git","onFileSystem:git-show"],"extensionDependencies":["vscode.git-base"],"main":"./dist/main","icon":"resources/icons/git.png","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":false}},"contributes":{"commands":[{"command":"git.continueInLocalClone","title":"Clone Repository Locally and Open on Desktop...","category":"Git","icon":"$(repo-clone)","enablement":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && remoteName"},{"command":"git.clone","title":"Clone","category":"Git","enablement":"!operationInProgress"},{"command":"git.cloneRecursive","title":"Clone (Recursive)","category":"Git","enablement":"!operationInProgress"},{"command":"git.init","title":"Initialize Repository","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.openRepository","title":"Open Repository","category":"Git","enablement":"!operationInProgress"},{"command":"git.reopenClosedRepositories","title":"Reopen Closed Repositories...","icon":"$(repo)","category":"Git","enablement":"!operationInProgress && git.closedRepositoryCount != 0"},{"command":"git.close","title":"Close Repository","category":"Git","enablement":"!operationInProgress"},{"command":"git.closeOtherRepositories","title":"Close Other Repositories","category":"Git","enablement":"!operationInProgress"},{"command":"git.openWorktree","title":"Open Worktree in Current Window","category":"Git","enablement":"!operationInProgress"},{"command":"git.openWorktreeInNewWindow","title":"Open Worktree in New Window","category":"Git","enablement":"!operationInProgress"},{"command":"git.refresh","title":"Refresh","category":"Git","icon":"$(refresh)","enablement":"!operationInProgress"},{"command":"git.compareWithWorkspace","title":"Compare with Workspace","category":"Git"},{"command":"git.openChange","title":"Open Changes","category":"Git","icon":"$(compare-changes)"},{"command":"git.openAllChanges","title":"Open All Changes","category":"Git"},{"command":"git.openFile","title":"Open File","category":"Git","icon":"$(go-to-file)"},{"command":"git.openFile2","title":"Open File","category":"Git","icon":"$(go-to-file)"},{"command":"git.openHEADFile","title":"Open File (HEAD)","category":"Git"},{"command":"git.stage","title":"Stage Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAll","title":"Stage All Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllTracked","title":"Stage All Tracked Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllUntracked","title":"Stage All Untracked Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageAllMerge","title":"Stage All Merge Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageSelectedRanges","title":"Stage Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.diff.stageHunk","title":"Stage Block","category":"Git","icon":"$(plus)"},{"command":"git.diff.stageSelection","title":"Stage Selection","category":"Git","icon":"$(plus)"},{"command":"git.revertSelectedRanges","title":"Revert Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.stageChange","title":"Stage Change","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.stageFile","title":"Stage Changes","category":"Git","icon":"$(add)","enablement":"!operationInProgress"},{"command":"git.revertChange","title":"Revert Change","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.unstage","title":"Unstage Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageAll","title":"Unstage All Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageSelectedRanges","title":"Unstage Selected Ranges","category":"Git","enablement":"!operationInProgress"},{"command":"git.unstageChange","title":"Unstage Change","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.unstageFile","title":"Unstage Changes","category":"Git","icon":"$(remove)","enablement":"!operationInProgress"},{"command":"git.clean","title":"Discard Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAll","title":"Discard All Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAllTracked","title":"Discard All Tracked Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.cleanAllUntracked","title":"Discard All Untracked Changes","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.rename","title":"Rename","category":"Git","icon":"$(discard)","enablement":"!operationInProgress"},{"command":"git.delete","title":"Delete","category":"Git","icon":"$(trash)","enablement":"!operationInProgress"},{"command":"git.commit","title":"Commit","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitAmend","title":"Commit (Amend)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitSigned","title":"Commit (Signed Off)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitStaged","title":"Commit Staged","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitEmpty","title":"Commit Empty","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedSigned","title":"Commit Staged (Signed Off)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedAmend","title":"Commit Staged (Amend)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAll","title":"Commit All","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllSigned","title":"Commit All (Signed Off)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllAmend","title":"Commit All (Amend)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitNoVerify","title":"Commit (No Verify)","category":"Git","icon":"$(check)","enablement":"!operationInProgress"},{"command":"git.commitStagedNoVerify","title":"Commit Staged (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitEmptyNoVerify","title":"Commit Empty (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedSignedNoVerify","title":"Commit Staged (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAmendNoVerify","title":"Commit (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitSignedNoVerify","title":"Commit (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitStagedAmendNoVerify","title":"Commit Staged (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllNoVerify","title":"Commit All (No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllSignedNoVerify","title":"Commit All (Signed Off, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitAllAmendNoVerify","title":"Commit All (Amend, No Verify)","category":"Git","enablement":"!operationInProgress"},{"command":"git.commitMessageAccept","title":"Commit","category":"Git"},{"command":"git.commitMessageDiscard","title":"Cancel","icon":"$(close)","category":"Git"},{"command":"git.restoreCommitTemplate","title":"Restore Commit Template","category":"Git","enablement":"!operationInProgress"},{"command":"git.undoCommit","title":"Undo Last Commit","category":"Git","enablement":"!operationInProgress"},{"command":"git.checkout","title":"Checkout to...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.checkout","title":"Checkout","category":"Git","enablement":"!operationInProgress"},{"command":"git.checkoutDetached","title":"Checkout to (Detached)...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.checkoutDetached","title":"Checkout (Detached)","category":"Git","enablement":"!operationInProgress"},{"command":"git.branch","title":"Create Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.branchFrom","title":"Create Branch From...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteBranch","title":"Delete Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.deleteBranch","title":"Delete Branch","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteRemoteBranch","title":"Delete Remote Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.renameBranch","title":"Rename Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.merge","title":"Merge...","category":"Git","enablement":"!operationInProgress"},{"command":"git.mergeAbort","title":"Abort Merge","category":"Git","enablement":"gitMergeInProgress"},{"command":"git.rebase","title":"Rebase Branch...","category":"Git","enablement":"!operationInProgress"},{"command":"git.createTag","title":"Create Tag...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteTag","title":"Delete Tag...","category":"Git","enablement":"!operationInProgress"},{"command":"git.migrateWorktreeChanges","title":"Migrate Worktree Changes...","category":"Git","enablement":"!operationInProgress"},{"command":"git.createWorktree","title":"Create Worktree...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteWorktree","title":"Delete Worktree...","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteWorktree2","title":"Delete Worktree","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.deleteTag","title":"Delete Tag","category":"Git","enablement":"!operationInProgress"},{"command":"git.deleteRemoteTag","title":"Delete Remote Tag...","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetch","title":"Fetch","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchPrune","title":"Fetch (Prune)","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchAll","title":"Fetch From All Remotes","icon":"$(git-fetch)","category":"Git","enablement":"!operationInProgress"},{"command":"git.fetchRef","title":"Fetch","icon":"$(git-fetch)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pull","title":"Pull","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullRebase","title":"Pull (Rebase)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullFrom","title":"Pull from...","category":"Git","enablement":"!operationInProgress"},{"command":"git.pullRef","title":"Pull","icon":"$(repo-pull)","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefInFilter && scmCurrentHistoryItemRefHasRemote"},{"command":"git.push","title":"Push","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushForce","title":"Push (Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushTo","title":"Push to...","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushToForce","title":"Push to... (Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushTags","title":"Push Tags","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushWithTags","title":"Push (Follow Tags)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushWithTagsForce","title":"Push (Follow Tags, Force)","category":"Git","enablement":"!operationInProgress"},{"command":"git.pushRef","title":"Push","icon":"$(repo-push)","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefInFilter && scmCurrentHistoryItemRefHasRemote"},{"command":"git.cherryPick","title":"Cherry Pick...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.cherryPick","title":"Cherry Pick","category":"Git","enablement":"!operationInProgress"},{"command":"git.cherryPickAbort","title":"Abort Cherry Pick","category":"Git","enablement":"!operationInProgress"},{"command":"git.addRemote","title":"Add Remote...","category":"Git","enablement":"!operationInProgress"},{"command":"git.removeRemote","title":"Remove Remote","category":"Git","enablement":"!operationInProgress"},{"command":"git.sync","title":"Sync","category":"Git","enablement":"!operationInProgress"},{"command":"git.syncRebase","title":"Sync (Rebase)","category":"Git","enablement":"!operationInProgress"},{"command":"git.publish","title":"Publish Branch...","category":"Git","icon":"$(cloud-upload)","enablement":"!operationInProgress"},{"command":"git.showOutput","title":"Show Git Output","category":"Git"},{"command":"git.ignore","title":"Add to .gitignore","category":"Git","enablement":"!operationInProgress"},{"command":"git.revealInExplorer","title":"Reveal in Explorer View","category":"Git"},{"command":"git.revealFileInOS.linux","title":"Open Containing Folder","category":"Git"},{"command":"git.revealFileInOS.mac","title":"Reveal in Finder","category":"Git"},{"command":"git.revealFileInOS.windows","title":"Reveal in File Explorer","category":"Git"},{"command":"git.stashIncludeUntracked","title":"Stash (Include Untracked)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stash","title":"Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashStaged","title":"Stash Staged","category":"Git","enablement":"!operationInProgress && gitVersion2.35"},{"command":"git.stashPop","title":"Pop Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashPopLatest","title":"Pop Latest Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashPopEditor","title":"Pop Stash","icon":"$(git-stash-pop)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApply","title":"Apply Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApplyLatest","title":"Apply Latest Stash","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashApplyEditor","title":"Apply Stash","icon":"$(git-stash-apply)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDrop","title":"Drop Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDropAll","title":"Drop All Stashes...","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashDropEditor","title":"Drop Stash","icon":"$(trash)","category":"Git","enablement":"!operationInProgress"},{"command":"git.stashView","title":"View Stash...","category":"Git","enablement":"!operationInProgress"},{"command":"git.timeline.openDiff","title":"Open Changes","icon":"$(compare-changes)","category":"Git"},{"command":"git.timeline.copyCommitId","title":"Copy Commit Hash","category":"Git"},{"command":"git.timeline.copyCommitMessage","title":"Copy Commit Message","category":"Git"},{"command":"git.timeline.selectForCompare","title":"Select for Compare","category":"Git"},{"command":"git.timeline.compareWithSelected","title":"Compare with Selected","category":"Git"},{"command":"git.timeline.viewCommit","title":"Open Commit","icon":"$(diff-multiple)","category":"Git"},{"command":"git.rebaseAbort","title":"Abort Rebase","category":"Git","enablement":"gitRebaseInProgress"},{"command":"git.closeAllDiffEditors","title":"Close All Diff Editors","category":"Git","enablement":"!operationInProgress"},{"command":"git.closeAllUnmodifiedEditors","title":"Close All Unmodified Editors","category":"Git","enablement":"!operationInProgress"},{"command":"git.api.getRepositories","title":"Get Repositories","category":"Git API"},{"command":"git.api.getRepositoryState","title":"Get Repository State","category":"Git API"},{"command":"git.api.getRemoteSources","title":"Get Remote Sources","category":"Git API"},{"command":"git.acceptMerge","title":"Complete Merge","category":"Git","enablement":"isMergeEditor && mergeEditorResultUri in git.mergeChanges"},{"command":"git.openMergeEditor","title":"Resolve in Merge Editor","category":"Git"},{"command":"git.runGitMerge","title":"Compute Conflicts With Git","category":"Git","enablement":"isMergeEditor"},{"command":"git.runGitMergeDiff3","title":"Compute Conflicts With Git (Diff3)","category":"Git","enablement":"isMergeEditor"},{"command":"git.manageUnsafeRepositories","title":"Manage Unsafe Repositories","category":"Git"},{"command":"git.openRepositoriesInParentFolders","title":"Open Repositories In Parent Folders","category":"Git"},{"command":"git.viewChanges","title":"Open Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewStagedChanges","title":"Open Staged Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewUntrackedChanges","title":"Open Untracked Changes","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.viewCommit","title":"Open Commit","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.copyCommitId","title":"Copy Commit Hash","category":"Git"},{"command":"git.copyCommitMessage","title":"Copy Commit Message","category":"Git"},{"command":"git.blame.toggleEditorDecoration","title":"Toggle Git Blame Editor Decoration","category":"Git"},{"command":"git.blame.toggleStatusBarItem","title":"Toggle Git Blame Status Bar Item","category":"Git"},{"command":"git.graph.compareRef","title":"Compare with...","category":"Git","enablement":"!operationInProgress"},{"command":"git.graph.compareWithRemote","title":"Compare with Remote","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefHasRemote"},{"command":"git.graph.compareWithMergeBase","title":"Compare with Merge Base","category":"Git","enablement":"!operationInProgress && scmCurrentHistoryItemRefHasBase"},{"command":"git.repositories.checkout","title":"Checkout","icon":"$(target)","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.checkoutDetached","title":"Checkout (Detached)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.compareRef","title":"Compare with...","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createBranch","title":"Create Branch...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createTag","title":"Create Tag...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.merge","title":"Merge","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.rebase","title":"Rebase","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.deleteBranch","title":"Delete","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.deleteTag","title":"Delete","category":"Git","enablement":"!operationInProgress && !scmArtifactIsHistoryItemRef"},{"command":"git.repositories.createFrom","title":"Create from...","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashView","title":"View Stash","icon":"$(diff-multiple)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashApply","title":"Apply Stash","icon":"$(git-stash-apply)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashPop","title":"Pop Stash","icon":"$(git-stash-pop)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.stashDrop","title":"Drop Stash","icon":"$(trash)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.createWorktree","title":"Create Worktree...","icon":"$(plus)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.openWorktree","title":"Open","icon":"$(folder-opened)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.openWorktreeInNewWindow","title":"Open in New Window","icon":"$(folder-opened)","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.deleteWorktree","title":"Delete","category":"Git","enablement":"!operationInProgress"},{"command":"git.repositories.worktreeCopyBranchName","title":"Copy Branch Name","category":"Git"},{"command":"git.repositories.worktreeCopyCommitHash","title":"Copy Commit Hash","category":"Git"},{"command":"git.repositories.worktreeCopyPath","title":"Copy Worktree Path","category":"Git"},{"command":"git.repositories.copyCommitHash","title":"Copy Commit Hash","category":"Git"},{"command":"git.repositories.copyBranchName","title":"Copy Branch Name","category":"Git"},{"command":"git.repositories.copyTagName","title":"Copy Tag Name","category":"Git"},{"command":"git.repositories.copyStashName","title":"Copy Stash Name","category":"Git"},{"command":"git.repositories.stashCopyBranchName","title":"Copy Branch Name","category":"Git"}],"continueEditSession":[{"command":"git.continueInLocalClone","qualifiedName":"Continue Working in New Local Clone","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && remoteName","remoteGroup":"remote_42_git_0_local@0"}],"keybindings":[{"command":"git.stageSelectedRanges","key":"ctrl+k ctrl+alt+s","mac":"cmd+k cmd+alt+s","when":"editorTextFocus && resourceScheme == file"},{"command":"git.unstageSelectedRanges","key":"ctrl+k ctrl+n","mac":"cmd+k cmd+n","when":"editorTextFocus && isInDiffEditor && isInDiffRightEditor && resourceScheme == git"},{"command":"git.revertSelectedRanges","key":"ctrl+k ctrl+r","mac":"cmd+k cmd+r","when":"editorTextFocus && resourceScheme == file"}],"menus":{"commandPalette":[{"command":"git.continueInLocalClone","when":"false"},{"command":"git.clone","when":"config.git.enabled && !git.missing"},{"command":"git.cloneRecursive","when":"config.git.enabled && !git.missing"},{"command":"git.init","when":"config.git.enabled && !git.missing && remoteName != 'codespaces'"},{"command":"git.openRepository","when":"config.git.enabled && !git.missing"},{"command":"git.close","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.closeOtherRepositories","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.openWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.openWorktreeInNewWindow","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount > 1"},{"command":"git.refresh","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.openFile","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceHasChanges"},{"command":"git.openHEADFile","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceHasChanges"},{"command":"git.openChange","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stage","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllTracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageAllMerge","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stageSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.stageChange","when":"false"},{"command":"git.revertSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.revertChange","when":"false"},{"command":"git.openFile2","when":"false"},{"command":"git.unstage","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.unstageAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.unstageSelectedRanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == git"},{"command":"git.unstageChange","when":"false"},{"command":"git.clean","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAllTracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cleanAllUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.rename","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceRepository"},{"command":"git.delete","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"},{"command":"git.commit","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStaged","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitEmpty","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAllSigned","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.commitAllAmend","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.rebaseAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitRebaseInProgress"},{"command":"git.commitNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitEmptyNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitStagedAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllSignedNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.commitAllAmendNoVerify","when":"config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"},{"command":"git.restoreCommitTemplate","when":"false"},{"command":"git.commitMessageAccept","when":"false"},{"command":"git.commitMessageDiscard","when":"false"},{"command":"git.revealInExplorer","when":"false"},{"command":"git.revealFileInOS.linux","when":"false"},{"command":"git.revealFileInOS.mac","when":"false"},{"command":"git.revealFileInOS.windows","when":"false"},{"command":"git.undoCommit","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.checkout","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.branch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.branchFrom","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteRemoteBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.renameBranch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cherryPick","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.cherryPickAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitCherryPickInProgress"},{"command":"git.pull","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pullFrom","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pullRebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.merge","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.mergeAbort","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitMergeInProgress"},{"command":"git.rebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.createTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.migrateWorktreeChanges","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.createWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.openWorktree","when":"false"},{"command":"git.openWorktreeInNewWindow","when":"false"},{"command":"git.deleteWorktree","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.deleteWorktree2","when":"false"},{"command":"git.deleteRemoteTag","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetch","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetchPrune","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.fetchAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.push","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushTo","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushToForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushWithTags","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.pushWithTagsForce","when":"config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"},{"command":"git.pushTags","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.addRemote","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.removeRemote","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.sync","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.syncRebase","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.publish","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.showOutput","when":"config.git.enabled"},{"command":"git.ignore","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file && scmActiveResourceRepository"},{"command":"git.stashIncludeUntracked","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stash","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashStaged","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitVersion2.35"},{"command":"git.stashPop","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashPopLatest","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashPopEditor","when":"false"},{"command":"git.stashApply","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashApplyLatest","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashApplyEditor","when":"false"},{"command":"git.stashDrop","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashDropAll","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.stashDropEditor","when":"false"},{"command":"git.timeline.openDiff","when":"false"},{"command":"git.timeline.copyCommitId","when":"false"},{"command":"git.timeline.copyCommitMessage","when":"false"},{"command":"git.timeline.selectForCompare","when":"false"},{"command":"git.timeline.compareWithSelected","when":"false"},{"command":"git.timeline.viewCommit","when":"false"},{"command":"git.closeAllDiffEditors","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"},{"command":"git.api.getRepositories","when":"false"},{"command":"git.api.getRepositoryState","when":"false"},{"command":"git.api.getRemoteSources","when":"false"},{"command":"git.openMergeEditor","when":"false"},{"command":"git.manageUnsafeRepositories","when":"config.git.enabled && !git.missing && git.unsafeRepositoryCount != 0"},{"command":"git.openRepositoriesInParentFolders","when":"config.git.enabled && !git.missing && git.parentRepositoryCount != 0"},{"command":"git.stashView","when":"config.git.enabled && !git.missing"},{"command":"git.viewChanges","when":"config.git.enabled && !git.missing"},{"command":"git.viewStagedChanges","when":"config.git.enabled && !git.missing"},{"command":"git.viewUntrackedChanges","when":"config.git.enabled && !git.missing && config.git.untrackedChanges == separate"},{"command":"git.viewCommit","when":"false"},{"command":"git.stageFile","when":"false"},{"command":"git.unstageFile","when":"false"},{"command":"git.fetchRef","when":"false"},{"command":"git.pullRef","when":"false"},{"command":"git.pushRef","when":"false"},{"command":"git.copyCommitId","when":"false"},{"command":"git.copyCommitMessage","when":"false"},{"command":"git.graph.checkout","when":"false"},{"command":"git.graph.checkoutDetached","when":"false"},{"command":"git.graph.deleteBranch","when":"false"},{"command":"git.graph.compareRef","when":"false"},{"command":"git.graph.deleteTag","when":"false"},{"command":"git.graph.cherryPick","when":"false"},{"command":"git.graph.compareWithMergeBase","when":"false"},{"command":"git.graph.compareWithRemote","when":"false"},{"command":"git.diff.stageHunk","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"},{"command":"git.diff.stageSelection","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"},{"command":"git.repositories.checkout","when":"false"},{"command":"git.repositories.checkoutDetached","when":"false"},{"command":"git.repositories.compareRef","when":"false"},{"command":"git.repositories.createBranch","when":"false"},{"command":"git.repositories.createTag","when":"false"},{"command":"git.repositories.merge","when":"false"},{"command":"git.repositories.rebase","when":"false"},{"command":"git.repositories.deleteBranch","when":"false"},{"command":"git.repositories.deleteTag","when":"false"},{"command":"git.repositories.createFrom","when":"false"},{"command":"git.repositories.stashView","when":"false"},{"command":"git.repositories.stashApply","when":"false"},{"command":"git.repositories.stashPop","when":"false"},{"command":"git.repositories.stashDrop","when":"false"},{"command":"git.repositories.createWorktree","when":"false"},{"command":"git.repositories.openWorktree","when":"false"},{"command":"git.repositories.openWorktreeInNewWindow","when":"false"},{"command":"git.repositories.deleteWorktree","when":"false"},{"command":"git.repositories.worktreeCopyBranchName","when":"false"},{"command":"git.repositories.worktreeCopyCommitHash","when":"false"},{"command":"git.repositories.worktreeCopyPath","when":"false"},{"command":"git.repositories.copyCommitHash","when":"false"},{"command":"git.repositories.copyBranchName","when":"false"},{"command":"git.repositories.copyTagName","when":"false"},{"command":"git.repositories.copyStashName","when":"false"},{"command":"git.repositories.stashCopyBranchName","when":"false"}],"scm/title":[{"command":"git.commit","group":"navigation","when":"scmProvider == git"},{"command":"git.refresh","group":"navigation","when":"scmProvider == git"},{"command":"git.pull","group":"1_header@1","when":"scmProvider == git"},{"command":"git.push","group":"1_header@2","when":"scmProvider == git"},{"command":"git.clone","group":"1_header@3","when":"scmProvider == git"},{"command":"git.checkout","group":"1_header@4","when":"scmProvider == git"},{"command":"git.fetch","group":"1_header@5","when":"scmProvider == git"},{"submenu":"git.commit","group":"2_main@1","when":"scmProvider == git"},{"submenu":"git.changes","group":"2_main@2","when":"scmProvider == git"},{"submenu":"git.pullpush","group":"2_main@3","when":"scmProvider == git"},{"submenu":"git.branch","group":"2_main@4","when":"scmProvider == git"},{"submenu":"git.remotes","group":"2_main@5","when":"scmProvider == git"},{"submenu":"git.stash","group":"2_main@6","when":"scmProvider == git"},{"submenu":"git.tags","group":"2_main@7","when":"scmProvider == git"},{"submenu":"git.worktrees","group":"2_main@8","when":"scmProvider == git"},{"command":"git.showOutput","group":"3_footer","when":"scmProvider == git"}],"scm/repositories/title":[{"command":"git.reopenClosedRepositories","group":"navigation@1","when":"git.closedRepositoryCount > 0"}],"scm/repository":[{"command":"git.pull","group":"1_header@1","when":"scmProvider == git"},{"command":"git.push","group":"1_header@2","when":"scmProvider == git"},{"command":"git.clone","group":"1_header@3","when":"scmProvider == git"},{"command":"git.checkout","group":"1_header@4","when":"scmProvider == git"},{"command":"git.fetch","group":"1_header@5","when":"scmProvider == git"},{"submenu":"git.commit","group":"2_main@1","when":"scmProvider == git"},{"submenu":"git.changes","group":"2_main@2","when":"scmProvider == git"},{"submenu":"git.pullpush","group":"2_main@3","when":"scmProvider == git"},{"submenu":"git.branch","group":"2_main@4","when":"scmProvider == git"},{"submenu":"git.remotes","group":"2_main@5","when":"scmProvider == git"},{"submenu":"git.stash","group":"2_main@6","when":"scmProvider == git"},{"submenu":"git.tags","group":"2_main@7","when":"scmProvider == git"},{"submenu":"git.worktrees","group":"2_main@8","when":"scmProvider == git"},{"command":"git.showOutput","group":"3_footer","when":"scmProvider == git"}],"scm/sourceControl":[{"command":"git.close","group":"navigation@1","when":"scmProvider == git"},{"command":"git.closeOtherRepositories","group":"navigation@2","when":"scmProvider == git && gitOpenRepositoryCount > 1"},{"command":"git.openWorktree","group":"1_worktree@1","when":"scmProvider == git && scmProviderContext == worktree"},{"command":"git.openWorktreeInNewWindow","group":"1_worktree@2","when":"scmProvider == git && scmProviderContext == worktree"},{"command":"git.deleteWorktree2","group":"2_worktree@1","when":"scmProvider == git && scmProviderContext == worktree"}],"scm/artifactGroup/context":[{"command":"git.repositories.createBranch","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == branches"},{"command":"git.repositories.createTag","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == tags"},{"submenu":"git.repositories.stash","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == stashes"},{"command":"git.repositories.createWorktree","group":"inline@1","when":"scmProvider == git && scmArtifactGroup == worktrees"}],"scm/artifact/context":[{"command":"git.repositories.checkout","group":"inline@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.stashApply","alt":"git.repositories.stashPop","group":"inline@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashView","group":"1_view@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashApply","group":"2_apply@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashPop","group":"2_apply@2","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashDrop","group":"3_drop@3","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.stashCopyBranchName","group":"4_copy@1","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.copyStashName","group":"4_copy@2","when":"scmProvider == git && scmArtifactGroupId == stashes"},{"command":"git.repositories.checkout","group":"1_checkout@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.checkoutDetached","group":"1_checkout@2","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.merge","group":"2_modify@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.rebase","group":"2_modify@2","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.createFrom","group":"3_modify@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.deleteBranch","group":"3_modify@2","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.deleteTag","group":"3_modify@1","when":"scmProvider == git && scmArtifactGroupId == tags"},{"command":"git.repositories.compareRef","group":"4_compare@1","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.copyCommitHash","group":"5_copy@2","when":"scmProvider == git && (scmArtifactGroupId == branches || scmArtifactGroupId == tags)"},{"command":"git.repositories.copyBranchName","group":"5_copy@1","when":"scmProvider == git && scmArtifactGroupId == branches"},{"command":"git.repositories.copyTagName","group":"5_copy@2","when":"scmProvider == git && scmArtifactGroupId == tags"},{"command":"git.repositories.openWorktreeInNewWindow","group":"inline@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.openWorktree","group":"1_open@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.openWorktreeInNewWindow","group":"1_open@2","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.deleteWorktree","group":"2_modify@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyCommitHash","group":"3_copy@2","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyBranchName","group":"3_copy@1","when":"scmProvider == git && scmArtifactGroupId == worktrees"},{"command":"git.repositories.worktreeCopyPath","group":"3_copy@3","when":"scmProvider == git && scmArtifactGroupId == worktrees"}],"scm/resourceGroup/context":[{"command":"git.stageAllMerge","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.stageAllMerge","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.unstageAll","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstageAll","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.viewStagedChanges","when":"scmProvider == git && scmResourceGroup == index","group":"inline@1"},{"command":"git.viewChanges","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@1"},{"command":"git.cleanAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"1_modification"},{"command":"git.stageAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"1_modification"},{"command":"git.cleanAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"inline@2"},{"command":"git.stageAll","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges == mixed","group":"inline@2"},{"command":"git.cleanAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"1_modification"},{"command":"git.stageAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"1_modification"},{"command":"git.cleanAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"inline@2"},{"command":"git.stageAllTracked","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.untrackedChanges != mixed","group":"inline@2"},{"command":"git.cleanAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.stageAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.viewUntrackedChanges","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@1"},{"command":"git.cleanAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.stageAllUntracked","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"}],"scm/resourceFolder/context":[{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification@3"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification@3"}],"scm/resourceState/context":[{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == merge","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == merge","group":"inline@2"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == merge && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == merge","group":"2_view@2"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == merge && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == merge && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == index","group":"navigation"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"1_modification"},{"command":"git.unstage","when":"scmProvider == git && scmResourceGroup == index","group":"inline@2"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == index && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == index","group":"2_view@2"},{"command":"git.compareWithWorkspace","when":"scmProvider == git && scmResourceGroup == index && scmResourceState == worktree","group":"worktree_diff"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == index && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == index && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == workingTree","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == workingTree","group":"inline@2"},{"command":"git.compareWithWorkspace","when":"scmProvider == git && scmResourceGroup == workingTree && scmResourceState == worktree","group":"worktree_diff"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == workingTree && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == workingTree","group":"1_modification@3"},{"command":"git.revealFileInOS.linux","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isLinux","group":"2_view@1"},{"command":"git.revealFileInOS.mac","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isMac","group":"2_view@1"},{"command":"git.revealFileInOS.windows","when":"scmProvider == git && scmResourceGroup == workingTree && remoteName == '' && isWindows","group":"2_view@1"},{"command":"git.revealInExplorer","when":"scmProvider == git && scmResourceGroup == workingTree","group":"2_view@2"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.openHEADFile","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.openFile","when":"scmProvider == git && scmResourceGroup == untracked","group":"navigation"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked && !gitFreshRepository","group":"1_modification"},{"command":"git.clean","when":"scmProvider == git && scmResourceGroup == untracked && !gitFreshRepository","group":"inline@2"},{"command":"git.stage","when":"scmProvider == git && scmResourceGroup == untracked","group":"inline@2"},{"command":"git.openFile2","when":"scmProvider == git && scmResourceGroup == untracked && config.git.showInlineOpenFileAction && config.git.openDiffOnClick","group":"inline@1"},{"command":"git.openChange","when":"scmProvider == git && scmResourceGroup == untracked && config.git.showInlineOpenFileAction && !config.git.openDiffOnClick","group":"inline@1"},{"command":"git.ignore","when":"scmProvider == git && scmResourceGroup == untracked","group":"1_modification@3"}],"scm/history/title":[{"command":"git.fetchAll","group":"navigation@900","when":"scmProvider == git"},{"command":"git.pullRef","group":"navigation@901","when":"scmProvider == git"},{"command":"git.pushRef","when":"scmProvider == git && scmCurrentHistoryItemRefHasRemote","group":"navigation@902"},{"command":"git.publish","when":"scmProvider == git && !scmCurrentHistoryItemRefHasRemote","group":"navigation@903"}],"scm/historyItem/context":[{"command":"git.graph.checkoutDetached","when":"scmProvider == git","group":"1_checkout@2"},{"command":"git.branch","when":"scmProvider == git","group":"2_branch@2"},{"command":"git.createTag","when":"scmProvider == git","group":"3_tag@1"},{"command":"git.graph.cherryPick","when":"scmProvider == git","group":"4_modify@1"},{"command":"git.graph.compareWithRemote","when":"scmProvider == git","group":"5_compare@1"},{"command":"git.graph.compareWithMergeBase","when":"scmProvider == git","group":"5_compare@2"},{"command":"git.graph.compareRef","when":"scmProvider == git","group":"5_compare@3"},{"command":"git.copyCommitId","when":"scmProvider == git && !listMultiSelection","group":"9_copy@1"},{"command":"git.copyCommitMessage","when":"scmProvider == git && !listMultiSelection","group":"9_copy@2"}],"scm/historyItemRef/context":[{"command":"git.graph.checkout","when":"scmProvider == git","group":"1_checkout@1"},{"command":"git.graph.deleteBranch","when":"scmProvider == git && scmHistoryItemRef =~ /^refs\\/heads\\/|^refs\\/remotes\\//","group":"2_branch@2"},{"command":"git.graph.deleteTag","when":"scmProvider == git && scmHistoryItemRef =~ /^refs\\/tags\\//","group":"3_tag@2"}],"editor/title":[{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme =~ /^git$|^file$/"},{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInNotebookTextDiffEditor && resourceScheme =~ /^git$|^file$/"},{"command":"git.openFile","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isInNotebookTextDiffEditor && resourceScheme == git"},{"command":"git.openChange","group":"navigation@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && scmActiveResourceHasChanges && !isSessionsWindow"},{"command":"git.stashApplyEditor","alt":"git.stashPopEditor","group":"navigation@1","when":"config.git.enabled && !git.missing && resourceScheme == git-stash"},{"command":"git.stashDropEditor","group":"navigation@2","when":"config.git.enabled && !git.missing && resourceScheme == git-stash"},{"command":"git.stage","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && git.activeResourceHasUnstagedChanges && !isSessionsWindow"},{"command":"git.unstage","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && !isMergeEditor && resourceScheme == file && git.activeResourceHasStagedChanges && !isSessionsWindow"},{"command":"git.stage","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"},{"command":"git.stageSelectedRanges","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"},{"command":"git.unstage","group":"2_git@3","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git && !isSessionsWindow"},{"command":"git.unstageSelectedRanges","group":"2_git@4","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git && !isSessionsWindow"},{"command":"git.revertSelectedRanges","group":"2_git@5","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file && !isSessionsWindow"}],"editor/context":[{"command":"git.stageSelectedRanges","group":"2_git@1","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file"},{"command":"git.unstageSelectedRanges","group":"2_git@2","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == git"},{"command":"git.revertSelectedRanges","group":"2_git@3","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && isInDiffRightEditor && !isEmbeddedDiffEditor && resourceScheme == file"}],"editor/content":[{"command":"git.acceptMerge","when":"isMergeResultEditor && mergeEditorBaseUri =~ /^(git|file):/ && mergeEditorResultUri in git.mergeChanges"},{"command":"git.openMergeEditor","group":"navigation@-10","when":"config.git.enabled && !git.missing && !isInDiffEditor && !isMergeEditor && resource in git.mergeChanges && git.activeResourceHasMergeConflicts"},{"command":"git.commitMessageAccept","group":"navigation","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && editorLangId == git-commit"},{"command":"git.commitMessageDiscard","group":"secondary","when":"config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && editorLangId == git-commit"}],"multiDiffEditor/resource/title":[{"command":"git.stageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == workingTree"},{"command":"git.stageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == untracked"},{"command":"git.unstageFile","group":"navigation","when":"scmProvider == git && scmResourceGroup == index"}],"diffEditor/gutter/hunk":[{"command":"git.diff.stageHunk","group":"primary@10","when":"diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"}],"diffEditor/gutter/selection":[{"command":"git.diff.stageSelection","group":"primary@10","when":"diffEditorOriginalUri =~ /^git\\:.*%22ref%22%3A%22~%22%7D$/"}],"scm/change/title":[{"command":"git.stageChange","when":"config.git.enabled && !git.missing && originalResource =~ /^git\\:.*%22ref%22%3A%22%22%7D$/"},{"command":"git.revertChange","when":"config.git.enabled && !git.missing && originalResource =~ /^git\\:.*%22ref%22%3A%22%22%7D$/"},{"command":"git.unstageChange","when":"false"}],"timeline/item/context":[{"command":"git.timeline.viewCommit","group":"inline","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.openDiff","group":"1_actions@1","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.viewCommit","group":"1_actions@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.compareWithSelected","group":"3_compare@1","when":"config.git.enabled && !git.missing && git.timeline.selectedForCompare && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.selectForCompare","group":"3_compare@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file\\b/ && !listMultiSelection"},{"command":"git.timeline.copyCommitId","group":"5_copy@1","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"},{"command":"git.timeline.copyCommitMessage","group":"5_copy@2","when":"config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/ && !listMultiSelection"}],"git.commit":[{"command":"git.commit","group":"1_commit@1"},{"command":"git.commitStaged","group":"1_commit@2"},{"command":"git.commitAll","group":"1_commit@3"},{"command":"git.undoCommit","group":"1_commit@4"},{"command":"git.rebaseAbort","group":"1_commit@5"},{"command":"git.commitNoVerify","group":"2_commit_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedNoVerify","group":"2_commit_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllNoVerify","group":"2_commit_noverify@3","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAmend","group":"3_amend@1"},{"command":"git.commitStagedAmend","group":"3_amend@2"},{"command":"git.commitAllAmend","group":"3_amend@3"},{"command":"git.commitAmendNoVerify","group":"4_amend_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedAmendNoVerify","group":"4_amend_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllAmendNoVerify","group":"4_amend_noverify@3","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitSigned","group":"5_signoff@1"},{"command":"git.commitStagedSigned","group":"5_signoff@2"},{"command":"git.commitAllSigned","group":"5_signoff@3"},{"command":"git.commitSignedNoVerify","group":"6_signoff_noverify@1","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitStagedSignedNoVerify","group":"6_signoff_noverify@2","when":"config.git.allowNoVerifyCommit"},{"command":"git.commitAllSignedNoVerify","group":"6_signoff_noverify@3","when":"config.git.allowNoVerifyCommit"}],"git.changes":[{"command":"git.stageAll","group":"changes@1"},{"command":"git.unstageAll","group":"changes@2"},{"command":"git.cleanAll","group":"changes@3"}],"git.pullpush":[{"command":"git.sync","group":"1_sync@1"},{"command":"git.syncRebase","when":"gitState == idle","group":"1_sync@2"},{"command":"git.pull","group":"2_pull@1"},{"command":"git.pullRebase","group":"2_pull@2"},{"command":"git.pullFrom","group":"2_pull@3"},{"command":"git.push","group":"3_push@1"},{"command":"git.pushForce","when":"config.git.allowForcePush","group":"3_push@2"},{"command":"git.pushTo","group":"3_push@3"},{"command":"git.pushToForce","when":"config.git.allowForcePush","group":"3_push@4"},{"command":"git.fetch","group":"4_fetch@1"},{"command":"git.fetchPrune","group":"4_fetch@2"},{"command":"git.fetchAll","group":"4_fetch@3"}],"git.branch":[{"command":"git.merge","group":"1_merge@1"},{"command":"git.rebase","group":"1_merge@2"},{"command":"git.branch","group":"2_branch@1"},{"command":"git.branchFrom","group":"2_branch@2"},{"command":"git.renameBranch","group":"3_modify@1"},{"command":"git.deleteBranch","group":"3_modify@2"},{"command":"git.deleteRemoteBranch","group":"3_modify@3"},{"command":"git.publish","group":"4_publish@1"}],"git.remotes":[{"command":"git.addRemote","group":"remote@1"},{"command":"git.removeRemote","group":"remote@2"}],"git.stash":[{"command":"git.stash","group":"1_stash@1"},{"command":"git.stashIncludeUntracked","group":"1_stash@2"},{"command":"git.stashStaged","when":"gitVersion2.35","group":"1_stash@3"},{"command":"git.stashApplyLatest","group":"2_apply@1"},{"command":"git.stashApply","group":"2_apply@2"},{"command":"git.stashPopLatest","group":"3_pop@1"},{"command":"git.stashPop","group":"3_pop@2"},{"command":"git.stashDrop","group":"4_drop@1"},{"command":"git.stashDropAll","group":"4_drop@2"},{"command":"git.stashView","group":"5_preview@1"}],"git.repositories.stash":[{"command":"git.stash","group":"1_stash@1"},{"command":"git.stashStaged","when":"gitVersion2.35","group":"2_stash@1"},{"command":"git.stashIncludeUntracked","group":"2_stash@2"}],"git.tags":[{"command":"git.createTag","group":"1_tags@1"},{"command":"git.deleteTag","group":"1_tags@2"},{"command":"git.deleteRemoteTag","group":"1_tags@3"},{"command":"git.pushTags","group":"2_tags@1"}],"git.worktrees":[{"when":"scmProviderContext == worktree","command":"git.openWorktree","group":"openWorktrees@1"},{"when":"scmProviderContext == worktree","command":"git.openWorktreeInNewWindow","group":"openWorktrees@2"},{"when":"scmProviderContext == repository","command":"git.createWorktree","group":"worktrees@1"},{"when":"scmProviderContext == worktree","command":"git.deleteWorktree2","group":"worktrees@2"}]},"submenus":[{"id":"git.commit","label":"Commit"},{"id":"git.changes","label":"Changes"},{"id":"git.pullpush","label":"Pull, Push"},{"id":"git.branch","label":"Branch"},{"id":"git.remotes","label":"Remote"},{"id":"git.stash","label":"Stash"},{"id":"git.tags","label":"Tags"},{"id":"git.worktrees","label":"Worktrees"},{"id":"git.repositories.stash","label":"Stash","icon":"$(plus)"}],"configuration":{"title":"Git","properties":{"git.enabled":{"type":"boolean","scope":"resource","description":"Whether Git is enabled.","default":true,"agentsWindow":{"default":true,"readOnly":true}},"git.path":{"type":["string","null","array"],"markdownDescription":"Path and filename of the git executable, e.g. `C:\\Program Files\\Git\\bin\\git.exe` (Windows). This can also be an array of string values containing multiple paths to look up.","default":null,"scope":"machine"},"git.autoRepositoryDetection":{"type":["boolean","string"],"enum":[true,false,"subFolders","openEditors"],"enumDescriptions":["Scan for both subfolders of the current opened folder and parent folders of open files.","Disable automatic repository scanning.","Scan for subfolders of the currently opened folder.","Scan for parent folders of open files."],"description":"Configures when repositories should be automatically detected.","default":true},"git.autorefresh":{"type":"boolean","description":"Whether auto refreshing is enabled.","default":true,"agentsWindow":{"default":true}},"git.autofetch":{"type":["boolean","string"],"enum":[true,false,"all"],"scope":"resource","markdownDescription":"When set to true, commits will automatically be fetched from the default remote of the current Git repository. Setting to `all` will fetch from all remotes.","default":false,"tags":["usesOnlineServices"],"agentsWindow":{"default":true}},"git.autofetchPeriod":{"type":"number","scope":"resource","markdownDescription":"Duration in seconds between each automatic git fetch, when `#git.autofetch#` is enabled.","default":180},"git.defaultBranchName":{"type":"string","markdownDescription":"The name of the default branch (example: main, trunk, development) when initializing a new Git repository. When set to empty, the default branch name configured in Git will be used. **Note:** Requires Git version `2.28.0` or later.","default":"main","scope":"resource"},"git.branchPrefix":{"type":"string","description":"Prefix used when creating a new branch.","default":"","scope":"resource"},"git.branchProtection":{"type":"array","markdownDescription":"List of protected branches. By default, a prompt is shown before changes are committed to a protected branch. The prompt can be controlled using the `#git.branchProtectionPrompt#` setting.","items":{"type":"string"},"default":[],"scope":"resource"},"git.branchProtectionPrompt":{"type":"string","description":"Controls whether a prompt is being shown before changes are committed to a protected branch.","enum":["alwaysCommit","alwaysCommitToNewBranch","alwaysPrompt"],"enumDescriptions":["Always commit changes to the protected branch.","Always commit changes to a new branch.","Always prompt before changes are committed to a protected branch."],"default":"alwaysPrompt","scope":"resource"},"git.branchValidationRegex":{"type":"string","description":"A regular expression to validate new branch names.","default":""},"git.branchWhitespaceChar":{"type":"string","description":"The character to replace whitespace in new branch names, and to separate segments of a randomly generated branch name.","default":"-"},"git.branchRandomName.enable":{"type":"boolean","description":"Controls whether a random name is generated when creating a new branch.","default":false,"scope":"resource","agentsWindow":{"default":true}},"git.branchRandomName.dictionary":{"type":"array","markdownDescription":"List of dictionaries used for the randomly generated branch name. Each value represents the dictionary used to generate the segment of the branch name. Supported dictionaries: `adjectives`, `animals`, `colors` and `numbers`.","items":{"type":"string","enum":["adjectives","animals","colors","numbers"],"enumDescriptions":["A random adjective","A random animal name","A random color name","A random number between 100 and 999"]},"minItems":1,"maxItems":5,"default":["adjectives","animals"],"scope":"resource"},"git.confirmSync":{"type":"boolean","description":"Confirm before synchronizing Git repositories.","default":true,"agentsWindow":{"default":false,"readOnly":true}},"git.confirmCommittedDelete":{"type":"boolean","description":"Confirm before deleting committed files with Git.","default":true},"git.countBadge":{"type":"string","enum":["all","tracked","off"],"enumDescriptions":["Count all changes.","Count only tracked changes.","Turn off counter."],"description":"Controls the Git count badge.","default":"all","scope":"resource"},"git.checkoutType":{"type":"array","items":{"type":"string","enum":["local","tags","remote"],"enumDescriptions":["Local branches","Tags","Remote branches"]},"uniqueItems":true,"markdownDescription":"Controls what type of Git refs are listed when running `Checkout to...`.","default":["local","remote","tags"]},"git.ignoreLegacyWarning":{"type":"boolean","description":"Ignores the legacy Git warning.","default":false},"git.ignoreMissingGitWarning":{"type":"boolean","description":"Ignores the warning when Git is missing.","default":false},"git.ignoreWindowsGit27Warning":{"type":"boolean","description":"Ignores the warning when Git 2.25 - 2.26 is installed on Windows.","default":false},"git.ignoreLimitWarning":{"type":"boolean","description":"Ignores the warning when there are too many changes in a repository.","default":false},"git.ignoreRebaseWarning":{"type":"boolean","description":"Ignores the warning when it looks like the branch might have been rebased when pulling.","default":false},"git.defaultCloneDirectory":{"type":["string","null"],"default":null,"scope":"machine","description":"The default location to clone a Git repository."},"git.useEditorAsCommitInput":{"type":"boolean","description":"Controls whether a full text editor will be used to author commit messages, whenever no message is provided in the commit input box.","default":true},"git.verboseCommit":{"type":"boolean","scope":"resource","markdownDescription":"Enable verbose output when `#git.useEditorAsCommitInput#` is enabled.","default":false},"git.enableSmartCommit":{"type":"boolean","scope":"resource","description":"Commit all changes when there are no staged changes.","default":false},"git.smartCommitChanges":{"type":"string","enum":["all","tracked"],"enumDescriptions":["Automatically stage all changes.","Automatically stage tracked changes only."],"scope":"resource","description":"Control which changes are automatically staged by Smart Commit.","default":"all"},"git.suggestSmartCommit":{"type":"boolean","scope":"resource","description":"Suggests to enable smart commit (commit all changes when there are no staged changes).","default":true},"git.enableCommitSigning":{"type":"boolean","scope":"resource","description":"Enables commit signing with GPG, X.509, or SSH.","default":false},"git.confirmEmptyCommits":{"type":"boolean","scope":"resource","description":"Always confirm the creation of empty commits for the 'Git: Commit Empty' command.","default":true},"git.decorations.enabled":{"type":"boolean","default":true,"description":"Controls whether Git contributes colors and badges to the Explorer and the Open Editors view."},"git.enableStatusBarSync":{"type":"boolean","default":true,"description":"Controls whether the Git Sync command appears in the status bar.","scope":"resource"},"git.followTagsWhenSync":{"type":"boolean","scope":"resource","default":false,"description":"Push all annotated tags when running the sync command."},"git.replaceTagsWhenPull":{"type":"boolean","scope":"resource","default":false,"description":"Automatically replace the local tags with the remote tags in case of a conflict when running the pull command."},"git.promptToSaveFilesBeforeStash":{"type":"string","enum":["always","staged","never"],"enumDescriptions":["Check for any unsaved files.","Check only for unsaved staged files.","Disable this check."],"scope":"resource","default":"always","description":"Controls whether Git should check for unsaved files before stashing changes."},"git.promptToSaveFilesBeforeCommit":{"type":"string","enum":["always","staged","never"],"enumDescriptions":["Check for any unsaved files.","Check only for unsaved staged files.","Disable this check."],"scope":"resource","default":"always","description":"Controls whether Git should check for unsaved files before committing."},"git.postCommitCommand":{"type":"string","enum":["none","push","sync"],"enumDescriptions":["Don't run any command after a commit.","Run 'git push' after a successful commit.","Run 'git pull' and 'git push' after a successful commit."],"markdownDescription":"Run a git command after a successful commit.","scope":"resource","default":"none","agentsWindow":{"default":"none","readOnly":true}},"git.rememberPostCommitCommand":{"type":"boolean","description":"Remember the last git command that ran after a commit.","scope":"resource","default":false,"agentsWindow":{"default":false,"readOnly":true}},"git.openAfterClone":{"type":"string","enum":["always","alwaysNewWindow","whenNoFolderOpen","prompt"],"enumDescriptions":["Always open in current window.","Always open in a new window.","Only open in current window when no folder is opened.","Always prompt for action."],"default":"prompt","description":"Controls whether to open a repository automatically after cloning."},"git.showInlineOpenFileAction":{"type":"boolean","default":true,"description":"Controls whether to show an inline Open File action in the Git changes view."},"git.showPushSuccessNotification":{"type":"boolean","description":"Controls whether to show a notification when a push is successful.","default":false},"git.inputValidation":{"type":"boolean","default":false,"description":"Controls whether to show commit message input validation diagnostics."},"git.inputValidationLength":{"type":"number","default":72,"description":"Controls the commit message length threshold for showing a warning."},"git.inputValidationSubjectLength":{"type":["number","null"],"default":50,"markdownDescription":"Controls the commit message subject length threshold for showing a warning. Unset it to inherit the value of `#git.inputValidationLength#`."},"git.detectSubmodules":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to automatically detect Git submodules."},"git.detectSubmodulesLimit":{"type":"number","scope":"resource","default":10,"description":"Controls the limit of Git submodules detected."},"git.detectWorktrees":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether to automatically detect Git worktrees.","agentsWindow":{"default":false}},"git.detectWorktreesLimit":{"type":"number","scope":"resource","default":50,"description":"Controls the limit of Git worktrees detected."},"git.worktreeIncludeFiles":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"Configure [glob patterns](https://aka.ms/vscode-glob-patterns) for files and folders that are included when creating a new worktree. Only files and folders that match the patterns and are listed in `.gitignore` will be copied to the newly created worktree.","scope":"resource","tags":["experimental"]},"git.alwaysShowStagedChangesResourceGroup":{"type":"boolean","scope":"resource","default":false,"description":"Always show the Staged Changes resource group."},"git.alwaysSignOff":{"type":"boolean","scope":"resource","default":false,"description":"Controls the signoff flag for all commits."},"git.addAICoAuthor":{"type":"string","enum":["off","chatAndAgent","all"],"enumDescriptions":["Never add the AI co-author trailer.","Add the AI co-author trailer when code from chat or agent edits is included.","Add the AI co-author trailer when any AI-generated code is included, such as inline completions, chat, or agent edits."],"scope":"resource","default":"off","description":"Controls whether a 'Co-authored-by' trailer is automatically added to the commit message when AI-generated code is included in the commit."},"git.ignoreSubmodules":{"type":"boolean","scope":"resource","default":false,"description":"Ignore modifications to submodules in the file tree."},"git.ignoredRepositories":{"type":"array","items":{"type":"string"},"default":[],"scope":"window","description":"List of Git repositories to ignore."},"git.scanRepositories":{"type":"array","items":{"type":"string"},"default":[],"scope":"resource","description":"List of paths to search for Git repositories in."},"git.showProgress":{"type":"boolean","description":"Controls whether Git actions should show progress.","default":true,"scope":"resource","agentsWindow":{"default":false,"readOnly":true}},"git.rebaseWhenSync":{"type":"boolean","scope":"resource","default":false,"description":"Force Git to use rebase when running the sync command."},"git.pullBeforeCheckout":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether a branch that does not have outgoing commits is fast-forwarded before it is checked out."},"git.fetchOnPull":{"type":"boolean","scope":"resource","default":false,"description":"When enabled, fetch all branches when pulling. Otherwise, fetch just the current one."},"git.pruneOnFetch":{"type":"boolean","scope":"resource","default":false,"description":"Prune when fetching."},"git.pullTags":{"type":"boolean","scope":"resource","default":true,"description":"Fetch all tags when pulling."},"git.autoStash":{"type":"boolean","scope":"resource","default":false,"description":"Stash any changes before pulling and restore them after successful pull."},"git.allowForcePush":{"type":"boolean","default":false,"description":"Controls whether force push (with or without lease) is enabled."},"git.useForcePushWithLease":{"type":"boolean","default":true,"description":"Controls whether force pushing uses the safer force-with-lease variant."},"git.useForcePushIfIncludes":{"type":"boolean","default":true,"markdownDescription":"Controls whether force pushing uses the safer force-if-includes variant. Note: This setting requires the `#git.useForcePushWithLease#` setting to be enabled, and Git version `2.30.0` or later."},"git.confirmForcePush":{"type":"boolean","default":true,"description":"Controls whether to ask for confirmation before force-pushing."},"git.allowNoVerifyCommit":{"type":"boolean","default":false,"description":"Controls whether commits without running pre-commit and commit-msg hooks are allowed."},"git.confirmNoVerifyCommit":{"type":"boolean","default":true,"description":"Controls whether to ask for confirmation before committing without verification."},"git.closeDiffOnOperation":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether the diff editor should be automatically closed when changes are stashed, committed, discarded, staged, or unstaged."},"git.openDiffOnClick":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the diff editor should be opened when clicking a change. Otherwise the regular editor will be opened."},"git.supportCancellation":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether a notification comes up when running the Sync action, which allows the user to cancel the operation."},"git.branchSortOrder":{"type":"string","enum":["committerdate","alphabetically"],"default":"committerdate","description":"Controls the sort order for branches."},"git.untrackedChanges":{"type":"string","enum":["mixed","separate","hidden"],"enumDescriptions":["All changes, tracked and untracked, appear together and behave equally.","Untracked changes appear separately in the Source Control view. They are also excluded from several actions.","Untracked changes are hidden and excluded from several actions."],"default":"mixed","description":"Controls how untracked changes behave.","scope":"resource"},"git.requireGitUserConfig":{"type":"boolean","description":"Controls whether to require explicit Git user configuration or allow Git to guess if missing.","default":true,"scope":"resource"},"git.showCommitInput":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to show the commit input in the Git source control panel."},"git.terminalAuthentication":{"type":"boolean","default":true,"description":"Controls whether to enable VS Code to be the authentication handler for Git processes spawned in the Integrated Terminal. Note: Terminals need to be restarted to pick up a change in this setting."},"git.terminalGitEditor":{"type":"boolean","default":false,"description":"Controls whether to enable VS Code to be the Git editor for Git processes spawned in the integrated terminal. Note: Terminals need to be restarted to pick up a change in this setting."},"git.useCommitInputAsStashMessage":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether to use the message from the commit input box as the default stash message."},"git.useIntegratedAskPass":{"type":"boolean","default":true,"description":"Controls whether GIT_ASKPASS should be overwritten to use the integrated version."},"git.githubAuthentication":{"markdownDeprecationMessage":"This setting is now deprecated, please use `#github.gitAuthentication#` instead."},"git.timeline.date":{"type":"string","enum":["committed","authored"],"enumDescriptions":["Use the committed date","Use the authored date"],"default":"committed","description":"Controls which date to use for items in the Timeline view.","scope":"window"},"git.timeline.showAuthor":{"type":"boolean","default":true,"description":"Controls whether to show the commit author in the Timeline view.","scope":"window"},"git.timeline.showUncommitted":{"type":"boolean","default":false,"description":"Controls whether to show uncommitted changes in the Timeline view.","scope":"window"},"git.showActionButton":{"type":"object","additionalProperties":false,"description":"Controls whether an action button is shown in the Source Control view.","properties":{"commit":{"type":"boolean","description":"Show an action button to commit changes when the local branch has modified files ready to be committed."},"publish":{"type":"boolean","description":"Show an action button to publish the local branch when it does not have a tracking remote branch."},"sync":{"type":"boolean","description":"Show an action button to synchronize changes when the local branch is either ahead or behind the remote branch."}},"default":{"commit":true,"publish":true,"sync":true},"scope":"resource"},"git.statusLimit":{"type":"number","scope":"resource","default":10000,"description":"Controls how to limit the number of changes that can be parsed from Git status command. Can be set to 0 for no limit."},"git.repositoryScanIgnoredFolders":{"type":"array","items":{"type":"string"},"default":["node_modules"],"scope":"resource","markdownDescription":"List of folders that are ignored while scanning for Git repositories when `#git.autoRepositoryDetection#` is set to `true` or `subFolders`."},"git.repositoryScanMaxDepth":{"type":"number","scope":"resource","default":1,"markdownDescription":"Controls the depth used when scanning workspace folders for Git repositories when `#git.autoRepositoryDetection#` is set to `true` or `subFolders`. Can be set to `-1` for no limit."},"git.commandsToLog":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"List of git commands (ex: commit, push) that would have their `stdout` logged to the [git output](command:git.showOutput). If the git command has a client-side hook configured, the client-side hook's `stdout` will also be logged to the [git output](command:git.showOutput)."},"git.mergeEditor":{"type":"boolean","default":false,"markdownDescription":"Open the merge editor for files that are currently under conflict.","scope":"window"},"git.optimisticUpdate":{"type":"boolean","default":true,"markdownDescription":"Controls whether to optimistically update the state of the Source Control view after running git commands.","scope":"resource","tags":["experimental"]},"git.openRepositoryInParentFolders":{"type":"string","enum":["always","never","prompt"],"enumDescriptions":["Always open a repository in parent folders of workspaces or open files.","Never open a repository in parent folders of workspaces or open files.","Prompt before opening a repository the parent folders of workspaces or open files."],"default":"prompt","markdownDescription":"Control whether a repository in parent folders of workspaces or open files should be opened.","scope":"resource"},"git.similarityThreshold":{"type":"number","default":50,"minimum":0,"maximum":100,"markdownDescription":"Controls the threshold of the similarity index (the amount of additions/deletions compared to the file's size) for changes in a pair of added/deleted files to be considered a rename. **Note:** Requires Git version `2.18.0` or later.","scope":"resource"},"git.blame.editorDecoration.enabled":{"type":"boolean","default":false,"markdownDescription":"Controls whether to show blame information in the editor using editor decorations."},"git.blame.editorDecoration.template":{"type":"string","default":"${subject}, ${authorName} (${authorDateAgo})","markdownDescription":"Template for the blame information editor decoration. Supported variables:\n\n* `hash`: Commit hash\n\n* `hashShort`: First N characters of the commit hash according to `#git.commitShortHashLength#`\n\n* `subject`: First line of the commit message\n\n* `authorName`: Author name\n\n* `authorEmail`: Author email\n\n* `authorDate`: Author date\n\n* `authorDateAgo`: Time difference between now and the author date\n\n"},"git.blame.editorDecoration.disableHover":{"type":"boolean","default":false,"markdownDescription":"Controls whether to disable the blame information editor decoration hover."},"git.blame.statusBarItem.enabled":{"type":"boolean","default":true,"markdownDescription":"Controls whether to show blame information in the status bar."},"git.blame.statusBarItem.template":{"type":"string","default":"${authorName} (${authorDateAgo})","markdownDescription":"Template for the blame information status bar item. Supported variables:\n\n* `hash`: Commit hash\n\n* `hashShort`: First N characters of the commit hash according to `#git.commitShortHashLength#`\n\n* `subject`: First line of the commit message\n\n* `authorName`: Author name\n\n* `authorEmail`: Author email\n\n* `authorDate`: Author date\n\n* `authorDateAgo`: Time difference between now and the author date\n\n"},"git.blame.ignoreWhitespace":{"type":"boolean","default":false,"markdownDescription":"Controls whether to ignore whitespace changes when computing blame information."},"git.commitShortHashLength":{"type":"number","default":7,"minimum":7,"maximum":40,"markdownDescription":"Controls the length of the commit short hash.","scope":"resource"},"git.diagnosticsCommitHook.enabled":{"type":"boolean","default":false,"markdownDescription":"Controls whether to check for unresolved diagnostics before committing.","scope":"resource"},"git.diagnosticsCommitHook.sources":{"type":"object","additionalProperties":{"type":"string","enum":["error","warning","information","hint","none"]},"default":{"*":"error"},"markdownDescription":"Controls the list of sources (**Item**) and the minimum severity (**Value**) to be considered before committing. **Note:** To ignore diagnostics from a particular source, add the source to the list and set the minimum severity to `none`.","scope":"resource"},"git.discardUntrackedChangesToTrash":{"type":"boolean","default":true,"markdownDescription":"Controls whether discarding untracked changes moves the file(s) to the Recycle Bin (Windows), Trash (macOS, Linux) instead of deleting them permanently. **Note:** This setting has no effect when connected to a remote or when running in Linux as a snap package."},"git.showReferenceDetails":{"type":"boolean","default":true,"markdownDescription":"Controls whether to show the details of the last commit for Git refs in the checkout, branch, and tag pickers."}}},"colors":[{"id":"gitDecoration.addedResourceForeground","description":"Color for added resources.","defaults":{"light":"#587c0c","dark":"#81b88b","highContrast":"#a1e3ad","highContrastLight":"#374e06"}},{"id":"gitDecoration.modifiedResourceForeground","description":"Color for modified resources.","defaults":{"light":"#895503","dark":"#E2C08D","highContrast":"#E2C08D","highContrastLight":"#895503"}},{"id":"gitDecoration.deletedResourceForeground","description":"Color for deleted resources.","defaults":{"light":"#ad0707","dark":"#c74e39","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.renamedResourceForeground","description":"Color for renamed or copied resources.","defaults":{"light":"#007100","dark":"#73C991","highContrast":"#73C991","highContrastLight":"#007100"}},{"id":"gitDecoration.untrackedResourceForeground","description":"Color for untracked resources.","defaults":{"light":"#007100","dark":"#73C991","highContrast":"#73C991","highContrastLight":"#007100"}},{"id":"gitDecoration.ignoredResourceForeground","description":"Color for ignored resources.","defaults":{"light":"#8E8E90","dark":"#8C8C8C","highContrast":"#A7A8A9","highContrastLight":"#8e8e90"}},{"id":"gitDecoration.stageModifiedResourceForeground","description":"Color for modified resources which have been staged.","defaults":{"light":"#895503","dark":"#E2C08D","highContrast":"#E2C08D","highContrastLight":"#895503"}},{"id":"gitDecoration.stageDeletedResourceForeground","description":"Color for deleted resources which have been staged.","defaults":{"light":"#ad0707","dark":"#c74e39","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.conflictingResourceForeground","description":"Color for resources with conflicts.","defaults":{"light":"#ad0707","dark":"#e4676b","highContrast":"#c74e39","highContrastLight":"#ad0707"}},{"id":"gitDecoration.submoduleResourceForeground","description":"Color for submodule resources.","defaults":{"light":"#1258a7","dark":"#8db9e2","highContrast":"#8db9e2","highContrastLight":"#1258a7"}},{"id":"git.blame.editorDecorationForeground","description":"Color for the blame editor decoration.","defaults":{"dark":"editorInlayHint.foreground","light":"editorInlayHint.foreground","highContrast":"editorInlayHint.foreground","highContrastLight":"editorInlayHint.foreground"}}],"configurationDefaults":{"[git-commit]":{"editor.rulers":[50,72],"editor.wordWrap":"off","workbench.editor.restoreViewState":false},"[git-rebase]":{"workbench.editor.restoreViewState":false}},"viewsWelcome":[{"view":"scm","contents":"If you would like to use Git features, please enable Git in your [settings](command:workbench.action.openSettings?%5B%22git.enabled%22%5D).\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"!config.git.enabled"},{"view":"scm","contents":"Install Git, a popular source control system, to track code changes and collaborate with others. Learn more in our [Git guides](https://aka.ms/vscode-scm).","when":"config.git.enabled && git.missing && remoteName != ''"},{"view":"scm","contents":"[Download Git for macOS](https://git-scm.com/download/mac)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isMac"},{"view":"scm","contents":"[Download Git for Windows](https://git-scm.com/download/win)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isWindows"},{"view":"scm","contents":"Source control depends on Git being installed.\n[Download Git for Linux](https://git-scm.com/download/linux)\nAfter installing, please [reload](command:workbench.action.reloadWindow) (or [troubleshoot](command:git.showOutput)). Additional source control providers can be installed [from the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22).","when":"config.git.enabled && git.missing && remoteName == '' && isLinux"},{"view":"scm","contents":"In order to use Git features, you can open a folder containing a Git repository or clone from a URL.\n[Open Folder](command:vscode.openFolder)\n[Clone Repository](command:git.cloneRecursive)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && workbenchState == empty && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0","enablement":"git.state == initialized","group":"2_open@1"},{"view":"scm","contents":"The workspace currently open doesn't have any folders containing Git repositories.\n[Add Folder to Workspace](command:workbench.action.addRootFolder)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && workbenchState == workspace && workspaceFolderCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0","enablement":"git.state == initialized","group":"2_open@1"},{"view":"scm","contents":"Scanning folder for Git repositories...","when":"config.git.enabled && !git.missing && workbenchState == folder && workspaceFolderCount != 0 && git.state != initialized"},{"view":"scm","contents":"Scanning workspace for Git repositories...","when":"config.git.enabled && !git.missing && workbenchState == workspace && workspaceFolderCount != 0 && git.state != initialized"},{"view":"scm","contents":"The folder currently open doesn't have a Git repository. You can initialize a repository which will enable source control features powered by Git.\n[Initialize Repository](command:git.init?%5Btrue%5D)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && workbenchState == folder && scm.providerCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0 && remoteName != 'codespaces'","group":"5_scm@1"},{"view":"scm","contents":"The workspace currently open doesn't have any folders containing Git repositories. You can initialize a repository on a folder which will enable source control features powered by Git.\n[Initialize Repository](command:git.init)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && workbenchState == workspace && workspaceFolderCount != 0 && scm.providerCount == 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0 && remoteName != 'codespaces'","group":"5_scm@1"},{"view":"scm","contents":"A Git repository was found in the parent folders of the workspace or the open file(s).\n[Open Repository](command:git.openRepositoriesInParentFolders)\nUse the [git.openRepositoryInParentFolders](command:workbench.action.openSettings?%5B%22git.openRepositoryInParentFolders%22%5D) setting to control whether Git repositories in parent folders of workspaces or open files are opened. To learn more [read our docs](https://aka.ms/vscode-git-repository-in-parent-folders).","when":"config.git.enabled && !git.missing && git.state == initialized && git.parentRepositoryCount == 1"},{"view":"scm","contents":"Git repositories were found in the parent folders of the workspace or the open file(s).\n[Open Repository](command:git.openRepositoriesInParentFolders)\nUse the [git.openRepositoryInParentFolders](command:workbench.action.openSettings?%5B%22git.openRepositoryInParentFolders%22%5D) setting to control whether Git repositories in parent folders of workspace or open files are opened. To learn more [read our docs](https://aka.ms/vscode-git-repository-in-parent-folders).","when":"config.git.enabled && !git.missing && git.state == initialized && git.parentRepositoryCount > 1"},{"view":"scm","contents":"The detected Git repository is potentially unsafe as the folder is owned by someone other than the current user.\n[Manage Unsafe Repositories](command:git.manageUnsafeRepositories)\nTo learn more about unsafe repositories [read our docs](https://aka.ms/vscode-git-unsafe-repository).","when":"config.git.enabled && !git.missing && git.state == initialized && git.unsafeRepositoryCount == 1"},{"view":"scm","contents":"The detected Git repositories are potentially unsafe as the folders are owned by someone other than the current user.\n[Manage Unsafe Repositories](command:git.manageUnsafeRepositories)\nTo learn more about unsafe repositories [read our docs](https://aka.ms/vscode-git-unsafe-repository).","when":"config.git.enabled && !git.missing && git.state == initialized && git.unsafeRepositoryCount > 1"},{"view":"scm","contents":"A Git repository was found that was previously closed.\n[Reopen Closed Repository](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && git.closedRepositoryCount == 1"},{"view":"scm","contents":"Git repositories were found that were previously closed.\n[Reopen Closed Repositories](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && !git.missing && git.state == initialized && git.closedRepositoryCount > 1"},{"view":"explorer","contents":"You can clone a repository locally.\n[Clone Repository](command:git.clone 'Clone a repository once the Git extension has activated')","when":"config.git.enabled && git.state == initialized && scm.providerCount == 0","group":"5_scm@1"},{"view":"explorer","contents":"To learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).","when":"config.git.enabled && git.state == initialized && scm.providerCount == 0","group":"5_scm@10"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"allowScripts":{"@vscode/fs-copyfile@2.0.0":true},"originalEnabledApiProposals":["agentSessionsWorkspace","agentsWindowConfiguration","canonicalUriProvider","contribEditSessions","contribEditorContentMenu","contribMergeEditorMenus","contribMultiDiffEditorMenus","contribDiffEditorGutterToolBarMenus","contribSourceControlArtifactGroupMenu","contribSourceControlArtifactMenu","contribSourceControlHistoryItemMenu","contribSourceControlHistoryTitleMenu","contribSourceControlInputBoxMenu","contribSourceControlTitleMenu","contribViewsWelcome","editSessionIdentityProvider","envIsConnectionMetered","findFiles2","quickDiffProvider","quickPickSortByLabel","scmActionButton","scmArtifactProvider","scmHistoryProvider","scmMultiDiffEditor","scmProviderOptions","scmSelectedProvider","scmTextDocument","scmValidation","statusBarItemTooltip","taskRunOptions","tabInputMultiDiff","tabInputTextMerge","textEditorDiffInformation","timeline","workspaceTrust"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/git","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.git-base"},"manifest":{"name":"git-base","displayName":"Git Base","description":"Git static contributions and pickers.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Other"],"activationEvents":["*"],"main":"./dist/extension.js","browser":"./dist/browser/extension.js","icon":"resources/icons/git.png","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"commands":[{"command":"git-base.api.getRemoteSources","title":"Get Remote Sources","category":"Git Base API"}],"menus":{"commandPalette":[{"command":"git-base.api.getRemoteSources","when":"false"}]},"languages":[{"id":"git-commit","aliases":["Git Commit Message","git-commit"],"filenames":["COMMIT_EDITMSG","MERGE_MSG"],"configuration":"./languages/git-commit.language-configuration.json"},{"id":"git-rebase","aliases":["Git Rebase Message","git-rebase"],"filenames":["git-rebase-todo"],"filenamePatterns":["**/rebase-merge/done"],"configuration":"./languages/git-rebase.language-configuration.json"},{"id":"ignore","aliases":["Ignore","ignore"],"extensions":[".gitignore_global",".gitignore",".git-blame-ignore-revs"],"configuration":"./languages/ignore.language-configuration.json"}],"grammars":[{"language":"git-commit","scopeName":"text.git-commit","path":"./syntaxes/git-commit.tmLanguage.json"},{"language":"git-rebase","scopeName":"text.git-rebase","path":"./syntaxes/git-rebase.tmLanguage.json"},{"language":"ignore","scopeName":"source.ignore","path":"./syntaxes/ignore.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/git-base","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.github"},"manifest":{"name":"github","displayName":"GitHub","description":"GitHub features for VS Code","publisher":"vscode","license":"MIT","version":"0.0.1","engines":{"vscode":"^1.41.0"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","icon":"images/icon.png","categories":["Other"],"activationEvents":["*"],"extensionDependencies":["vscode.git-base"],"type":"module","main":"./dist/extension.js","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["canonicalUriProvider","chatSessionsProvider","contribEditSessions","contribShareMenu","contribSourceControlHistoryItemMenu","scmHistoryProvider","shareProvider","timeline"],"contributes":{"commands":[{"command":"github.publish","title":"Publish to GitHub"},{"command":"github.copyVscodeDevLink","title":"Copy vscode.dev Link"},{"command":"github.copyVscodeDevLinkFile","title":"Copy vscode.dev Link"},{"command":"github.copyVscodeDevLinkWithoutRange","title":"Copy vscode.dev Link"},{"command":"github.openOnVscodeDev","title":"Open in vscode.dev","icon":"$(globe)"},{"command":"github.graph.openOnGitHub","title":"Open on GitHub","icon":"$(github)"},{"command":"github.timeline.openOnGitHub","title":"Open on GitHub","icon":"$(github)"},{"command":"github.createPullRequest","title":"Create PR","icon":"$(git-pull-request)"},{"command":"github.openPullRequest","title":"Open PR","icon":"$(git-pull-request)"}],"continueEditSession":[{"command":"github.openOnVscodeDev","when":"github.hasGitHubRepo","qualifiedName":"Continue Working in vscode.dev","category":"Remote Repositories","remoteGroup":"virtualfs_44_vscode-vfs_2_web@2"}],"menus":{"commandPalette":[{"command":"github.publish","when":"git-base.gitEnabled && workspaceFolderCount != 0 && remoteName != 'codespaces'"},{"command":"github.createPullRequest","when":"false"},{"command":"github.openPullRequest","when":"false"},{"command":"github.graph.openOnGitHub","when":"false"},{"command":"github.copyVscodeDevLink","when":"false"},{"command":"github.copyVscodeDevLinkFile","when":"false"},{"command":"github.copyVscodeDevLinkWithoutRange","when":"false"},{"command":"github.openOnVscodeDev","when":"false"},{"command":"github.timeline.openOnGitHub","when":"false"}],"file/share":[{"command":"github.copyVscodeDevLinkFile","when":"github.hasGitHubRepo && remoteName != 'codespaces'","group":"0_vscode@0"}],"editor/context/share":[{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'","group":"0_vscode@0"}],"explorer/context/share":[{"command":"github.copyVscodeDevLinkWithoutRange","when":"github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'","group":"0_vscode@0"}],"editor/lineNumber/context":[{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editors.files.textFileEditor && config.editor.lineNumbers == on && remoteName != 'codespaces'","group":"1_cutcopypaste@2"},{"command":"github.copyVscodeDevLink","when":"github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editor.notebook && remoteName != 'codespaces'","group":"1_cutcopypaste@2"}],"editor/title/context/share":[{"command":"github.copyVscodeDevLinkWithoutRange","when":"github.hasGitHubRepo && resourceScheme != untitled && remoteName != 'codespaces'","group":"0_vscode@0"}],"scm/historyItem/context":[{"command":"github.graph.openOnGitHub","when":"github.hasGitHubRepo","group":"0_view@2"}],"timeline/item/context":[{"command":"github.timeline.openOnGitHub","group":"1_actions@3","when":"github.hasGitHubRepo && timelineItem =~ /git:file:commit\\b/"}],"agents/changes/actions/primary":[]},"configuration":[{"title":"GitHub","properties":{"github.branchProtection":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to query repository rules for GitHub repositories"},"github.gitAuthentication":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to enable automatic GitHub authentication for git commands within VS Code."},"github.gitProtocol":{"type":"string","enum":["https","ssh"],"default":"https","description":"Controls which protocol is used to clone a GitHub repository"},"github.showAvatar":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether to show the GitHub avatar of the commit author in various hovers (ex: Git blame, Timeline, Source Control Graph, etc.)"}}}],"viewsWelcome":[{"view":"scm","contents":"You can directly publish this folder to a GitHub repository. Once published, you'll have access to source control features powered by Git and GitHub.\n[$(github) Publish to GitHub](command:github.publish)","when":"config.git.enabled && git.state == initialized && workbenchState == folder && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0"},{"view":"scm","contents":"You can directly publish a workspace folder to a GitHub repository. Once published, you'll have access to source control features powered by Git and GitHub.\n[$(github) Publish to GitHub](command:github.publish)","when":"config.git.enabled && git.state == initialized && workbenchState == workspace && workspaceFolderCount != 0 && git.parentRepositoryCount == 0 && git.unsafeRepositoryCount == 0 && git.closedRepositoryCount == 0"}],"markdown.previewStyles":["./markdown.css"]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["canonicalUriProvider","chatSessionsProvider","contribEditSessions","contribShareMenu","contribSourceControlHistoryItemMenu","scmHistoryProvider","shareProvider","timeline"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/github","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.github-authentication"},"manifest":{"name":"github-authentication","displayName":"GitHub Authentication","description":"GitHub Authentication Provider","publisher":"vscode","license":"MIT","version":"0.0.2","engines":{"vscode":"^1.41.0"},"icon":"images/icon.png","categories":["Other"],"api":"none","extensionKind":["ui","workspace"],"enabledApiProposals":["authIssuers","authProviderSpecific","authSessionAccountIcon"],"activationEvents":[],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","restrictedConfigurations":["github-enterprise.uri"]}},"contributes":{"authentication":[{"label":"GitHub","id":"github","authorizationServerGlobs":["https://github.com/login/oauth"]},{"label":"GitHub Enterprise Server","id":"github-enterprise","authorizationServerGlobs":["*"]}],"configuration":[{"title":"GHE.com & GitHub Enterprise Server Authentication","properties":{"github-enterprise.uri":{"type":"string","markdownDescription":"The URI for your GHE.com or GitHub Enterprise Server instance.\n\nExamples:\n* GHE.com: `https://octocat.ghe.com`\n* GitHub Enterprise Server: `https://github.octocat.com`\n\n> **Note:** This should _not_ be set to a GitHub.com URI. If your account exists on GitHub.com or is a GitHub Enterprise Managed User, you do not need any additional configuration and can simply log in to GitHub.","pattern":"^(?:$|(https?)://(?!github\\.com).*)"},"github-authentication.useElectronFetch":{"type":"boolean","default":true,"scope":"application","markdownDescription":"When true, uses Electron's built-in fetch function for HTTP requests. When false, uses the Node.js global fetch function. This setting only applies when running in the Electron environment. **Note:** A restart is required for this setting to take effect."},"github-authentication.preferDeviceCodeFlow":{"type":"boolean","default":false,"scope":"application","markdownDescription":"When true, prioritize the device code flow for authentication instead of other available flows. This is useful for environments like WSL where the local server or URL handler flows may not work as expected."}}}]},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","main":"./dist/extension.js","browser":"./dist/browser/extension.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["authIssuers","authProviderSpecific","authSessionAccountIcon"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/github-authentication","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.go"},"manifest":{"name":"go","displayName":"Go Language Basics","description":"Provides syntax highlighting and bracket matching in Go files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin worlpaker/go-syntax syntaxes/go.tmLanguage.json ./syntaxes/go.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"go","extensions":[".go"],"aliases":["Go"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"go","scopeName":"source.go","path":"./syntaxes/go.tmLanguage.json"}],"configurationDefaults":{"[go]":{"editor.insertSpaces":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/go","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.groovy"},"manifest":{"name":"groovy","displayName":"Groovy Language Basics","description":"Provides snippets, syntax highlighting and bracket matching in Groovy files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/groovy.tmbundle Syntaxes/Groovy.tmLanguage ./syntaxes/groovy.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"groovy","aliases":["Groovy","groovy"],"extensions":[".groovy",".gvy",".gradle",".jenkinsfile",".nf"],"filenames":["Jenkinsfile"],"filenamePatterns":["Jenkinsfile*"],"firstLine":"^#!.*\\bgroovy\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"groovy","scopeName":"source.groovy","path":"./syntaxes/groovy.tmLanguage.json"}],"snippets":[{"language":"groovy","path":"./snippets/groovy.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/groovy","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.grunt"},"manifest":{"name":"grunt","publisher":"vscode","description":"Extension to add Grunt capabilities to VS Code.","displayName":"Grunt support for VS Code","version":"10.0.0","private":true,"icon":"images/grunt.png","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:grunt"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"grunt","type":"object","title":"Grunt","properties":{"grunt.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Grunt task detection. Grunt task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"grunt","required":["task"],"properties":{"task":{"type":"string","description":"The Grunt task to customize."},"args":{"type":"array","description":"Command line arguments to pass to the grunt task"},"file":{"type":"string","description":"The Grunt file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/grunt","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.gulp"},"manifest":{"name":"gulp","publisher":"vscode","description":"Extension to add Gulp capabilities to VSCode.","displayName":"Gulp support for VSCode","version":"10.0.0","icon":"images/gulp.png","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:gulp"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"gulp","type":"object","title":"Gulp","properties":{"gulp.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Gulp task detection. Gulp task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"gulp","required":["task"],"properties":{"task":{"type":"string","description":"The Gulp task to customize."},"file":{"type":"string","description":"The Gulp file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/gulp","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.handlebars"},"manifest":{"name":"handlebars","displayName":"Handlebars Language Basics","description":"Provides syntax highlighting and bracket matching in Handlebars files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin daaain/Handlebars grammars/Handlebars.json ./syntaxes/Handlebars.tmLanguage.json"},"categories":["Programming Languages"],"extensionKind":["ui","workspace"],"contributes":{"languages":[{"id":"handlebars","extensions":[".handlebars",".hbs",".hjs"],"aliases":["Handlebars","handlebars"],"mimetypes":["text/x-handlebars-template"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"handlebars","scopeName":"text.html.handlebars","path":"./syntaxes/Handlebars.tmLanguage.json"}],"htmlLanguageParticipants":[{"languageId":"handlebars","autoInsert":true}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/handlebars","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[[2,"property `extensionKind` can be defined only if property `main` is also defined."]],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.hlsl"},"manifest":{"name":"hlsl","displayName":"HLSL Language Basics","description":"Provides syntax highlighting and bracket matching in HLSL files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin tgjones/shaders-tmLanguage grammars/hlsl.json ./syntaxes/hlsl.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"hlsl","extensions":[".hlsl",".hlsli",".fx",".fxh",".vsh",".psh",".cginc",".compute"],"aliases":["HLSL","hlsl"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"hlsl","path":"./syntaxes/hlsl.tmLanguage.json","scopeName":"source.hlsl"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/hlsl","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.html"},"manifest":{"name":"html","displayName":"HTML Language Basics","description":"Provides syntax highlighting, bracket matching & snippets in HTML files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"html","extensions":[".html",".htm",".shtml",".xhtml",".xht",".mdoc",".jsp",".asp",".aspx",".jshtm",".volt",".ejs",".rhtml"],"aliases":["HTML","htm","html","xhtml"],"mimetypes":["text/html","text/x-jshtm","text/template","text/ng-template","application/xhtml+xml"],"configuration":"./language-configuration.json"}],"grammars":[{"scopeName":"text.html.basic","path":"./syntaxes/html.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.css":"css","source.js":"javascript","source.python":"python","source.smarty":"smarty"},"tokenTypes":{"meta.tag string.quoted":"other"}},{"language":"html","scopeName":"text.html.derivative","path":"./syntaxes/html-derivative.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.css":"css","source.js":"javascript","source.python":"python","source.smarty":"smarty"},"tokenTypes":{"meta.tag string.quoted":"other"}}],"snippets":[{"language":"html","path":"./snippets/html.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/html","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.html-language-features"},"manifest":{"name":"html-language-features","displayName":"HTML Language Features","description":"Provides rich language support for HTML and Handlebar files","version":"10.0.0","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.77.0"},"icon":"icons/html.png","activationEvents":["onLanguage:html","onLanguage:handlebars"],"enabledApiProposals":["extensionsAny"],"main":"./client/dist/node/htmlClientMain","browser":"./client/dist/browser/htmlClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"categories":["Programming Languages"],"contributes":{"configuration":{"id":"html","order":20,"type":"object","title":"HTML","properties":{"html.completion.attributeDefaultValue":{"type":"string","scope":"resource","enum":["doublequotes","singlequotes","empty"],"enumDescriptions":["Attribute value is set to \"\".","Attribute value is set to ''.","Attribute value is not set."],"default":"doublequotes","markdownDescription":"Controls the default value for attributes when completion is accepted."},"html.customData":{"type":"array","markdownDescription":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-html-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its HTML support for the custom HTML tags, attributes and attribute values you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","default":[],"items":{"type":"string"},"scope":"resource"},"html.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default HTML formatter."},"html.format.wrapLineLength":{"type":"integer","scope":"resource","default":120,"description":"Maximum amount of characters per line (0 = disable)."},"html.format.unformatted":{"type":["string","null"],"scope":"resource","default":"wbr","markdownDescription":"List of tags, comma separated, that shouldn't be reformatted. `null` defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content."},"html.format.contentUnformatted":{"type":["string","null"],"scope":"resource","default":"pre,code,textarea","markdownDescription":"List of tags, comma separated, where the content shouldn't be reformatted. `null` defaults to the `pre` tag."},"html.format.indentInnerHtml":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Indent `` and `` sections."},"html.format.preserveNewLines":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text."},"html.format.maxPreserveNewLines":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Maximum number of line breaks to be preserved in one chunk. Use `null` for unlimited."},"html.format.indentHandlebars":{"type":"boolean","scope":"resource","default":false,"markdownDescription":"Format and indent `{{#foo}}` and `{{/foo}}`."},"html.format.extraLiners":{"type":["string","null"],"scope":"resource","default":"head, body, /html","markdownDescription":"List of tags, comma separated, that should have an extra newline before them. `null` defaults to `\"head, body, /html\"`."},"html.format.wrapAttributes":{"type":"string","scope":"resource","default":"auto","enum":["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"],"enumDescriptions":["Wrap attributes only when line length is exceeded.","Wrap each attribute except first.","Wrap each attribute except first and keep aligned.","Wrap each attribute.","Wrap when line length is exceeded, align attributes vertically.","Preserve wrapping of attributes.","Preserve wrapping of attributes but align."],"description":"Wrap attributes."},"html.format.wrapAttributesIndentSize":{"type":["number","null"],"scope":"resource","default":null,"markdownDescription":"Indent wrapped attributes to after N characters. Use `null` to use the default indent size. Ignored if `#html.format.wrapAttributes#` is set to `aligned`."},"html.format.templating":{"type":"boolean","scope":"resource","default":false,"description":"Honor django, erb, handlebars and php templating language tags."},"html.format.unformattedContentDelimiter":{"type":"string","scope":"resource","default":"","markdownDescription":"Keep text content together between this string."},"html.suggest.html5":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support suggests HTML5 tags, properties and values."},"html.suggest.hideEndTagSuggestions":{"type":"boolean","scope":"resource","default":false,"description":"Controls whether the built-in HTML language support suggests closing tags. When disabled, end tag completions like `` will not be shown."},"html.validate.scripts":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support validates embedded scripts."},"html.validate.styles":{"type":"boolean","scope":"resource","default":true,"description":"Controls whether the built-in HTML language support validates embedded styles."},"html.autoCreateQuotes":{"type":"boolean","scope":"resource","default":true,"markdownDescription":"Enable/disable auto creation of quotes for HTML attribute assignment. The type of quotes can be configured by `#html.completion.attributeDefaultValue#`."},"html.autoClosingTags":{"type":"boolean","scope":"resource","default":true,"description":"Enable/disable autoclosing of HTML tags."},"html.hover.documentation":{"type":"boolean","scope":"resource","default":true,"description":"Show tag and attribute documentation in hover."},"html.hover.references":{"type":"boolean","scope":"resource","default":true,"description":"Show references to MDN in hover."},"html.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the HTML language server."}}},"configurationDefaults":{"[html]":{"editor.suggest.insertMode":"replace"},"[handlebars]":{"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.html-data.json","url":"https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json"},{"fileMatch":"package.json","url":"./schemas/package.schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["extensionsAny"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/html-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ini"},"manifest":{"name":"ini","displayName":"Ini Language Basics","description":"Provides syntax highlighting and bracket matching in Ini files.","version":"10.0.0","private":true,"publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/ini.tmbundle Syntaxes/Ini.plist ./syntaxes/ini.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"ini","extensions":[".ini"],"aliases":["Ini","ini"],"configuration":"./ini.language-configuration.json"},{"id":"properties","extensions":[".conf",".properties",".cfg",".directory",".gitattributes",".gitconfig",".gitmodules",".editorconfig",".repo"],"filenames":["gitconfig"],"filenamePatterns":["**/.config/git/config","**/.git/config"],"aliases":["Properties","properties"],"configuration":"./properties.language-configuration.json"}],"grammars":[{"language":"ini","scopeName":"source.ini","path":"./syntaxes/ini.tmLanguage.json"},{"language":"properties","scopeName":"source.ini","path":"./syntaxes/ini.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/ini","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ipynb"},"manifest":{"name":"ipynb","displayName":".ipynb Support","description":"Provides basic support for opening and reading Jupyter's .ipynb notebook files","publisher":"vscode","version":"10.0.0","license":"MIT","icon":"media/icon.png","engines":{"vscode":"^1.57.0"},"enabledApiProposals":["diffContentOptions"],"activationEvents":["onNotebook:jupyter-notebook","onNotebookSerializer:interactive","onNotebookSerializer:repl"],"extensionKind":["workspace","ui"],"main":"./dist/ipynbMain.node.js","browser":"./dist/browser/ipynbMain.browser.js","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":[{"properties":{"ipynb.pasteImagesAsAttachments.enabled":{"type":"boolean","scope":"resource","markdownDescription":"Enable/disable pasting of images into Markdown cells in ipynb notebook files. Pasted images are inserted as attachments to the cell.","default":true},"ipynb.experimental.serialization":{"type":"boolean","scope":"resource","markdownDescription":"Experimental feature to serialize the Jupyter notebook in a worker thread.","default":true,"tags":["experimental"]}}}],"commands":[{"command":"ipynb.newUntitledIpynb","title":"New Jupyter Notebook","shortTitle":"Jupyter Notebook","category":"Create"},{"command":"ipynb.openIpynbInNotebookEditor","title":"Open IPYNB File In Notebook Editor"},{"command":"ipynb.cleanInvalidImageAttachment","title":"Clean Invalid Image Attachment Reference"},{"command":"notebook.cellOutput.copy","title":"Copy Cell Output","category":"Notebook"},{"command":"notebook.cellOutput.addToChat","title":"Add Cell Output to Chat","category":"Notebook","enablement":"chatIsEnabled"},{"command":"notebook.cellOutput.openInTextEditor","title":"Open Cell Output in Text Editor","category":"Notebook"}],"notebooks":[{"type":"jupyter-notebook","displayName":"Jupyter Notebook","selector":[{"filenamePattern":"*.ipynb"}],"priority":"default"}],"notebookRenderer":[{"id":"vscode.markdown-it-cell-attachment-renderer","displayName":"Markdown-It ipynb Cell Attachment renderer","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/cellAttachmentRenderer.js"}}],"menus":{"file/newFile":[{"command":"ipynb.newUntitledIpynb","group":"notebook"}],"commandPalette":[{"command":"ipynb.newUntitledIpynb"},{"command":"ipynb.openIpynbInNotebookEditor","when":"false"},{"command":"ipynb.cleanInvalidImageAttachment","when":"false"},{"command":"notebook.cellOutput.copy","when":"notebookCellHasOutputs"},{"command":"notebook.cellOutput.openInTextEditor","when":"false"}],"webview/context":[{"command":"notebook.cellOutput.copy","when":"webviewId == 'notebook.output' && webviewSection == 'image'","group":"context@1"},{"command":"notebook.cellOutput.copy","when":"webviewId == 'notebook.output' && webviewSection == 'text'"},{"command":"notebook.cellOutput.addToChat","when":"webviewId == 'notebook.output' && (webviewSection == 'text' || webviewSection == 'image')","group":"context@2"},{"command":"notebook.cellOutput.openInTextEditor","when":"webviewId == 'notebook.output' && webviewSection == 'text'"}]}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["diffContentOptions"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/ipynb","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.jake"},"manifest":{"name":"jake","publisher":"vscode","description":"Extension to add Jake capabilities to VS Code.","displayName":"Jake support for VS Code","icon":"images/cowboy_hat.png","version":"10.0.0","license":"MIT","engines":{"vscode":"*"},"categories":["Other"],"main":"./dist/main","activationEvents":["onTaskType:jake"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"id":"jake","type":"object","title":"Jake","properties":{"jake.autoDetect":{"scope":"application","type":"string","enum":["off","on"],"default":"off","description":"Controls enablement of Jake task detection. Jake task detection can cause files in any open workspace to be executed."}}},"taskDefinitions":[{"type":"jake","required":["task"],"properties":{"task":{"type":"string","description":"The Jake task to customize."},"file":{"type":"string","description":"The Jake file that provides the task. Can be omitted."}},"when":"shellExecutionSupported"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/jake","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.java"},"manifest":{"name":"java","displayName":"Java Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Java files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin redhat-developer/vscode-java language-support/java/java.tmLanguage.json ./syntaxes/java.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"java","extensions":[".java",".jav"],"aliases":["Java","java"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"java","scopeName":"source.java","path":"./syntaxes/java.tmLanguage.json"}],"snippets":[{"language":"java","path":"./snippets/java.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/java","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.javascript"},"manifest":{"name":"javascript","displayName":"JavaScript Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in JavaScript files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Programming Languages"],"contributes":{"configurationDefaults":{"[javascript]":{"editor.maxTokenizationLineLength":2500}},"languages":[{"id":"javascriptreact","aliases":["JavaScript JSX","JavaScript React","jsx"],"extensions":[".jsx"],"configuration":"./javascript-language-configuration.json"},{"id":"javascript","aliases":["JavaScript","javascript","js"],"extensions":[".js",".es6",".mjs",".cjs",".pac"],"filenames":["jakefile"],"firstLine":"^#!.*\\bnode","mimetypes":["text/javascript"],"configuration":"./javascript-language-configuration.json"},{"id":"jsx-tags","aliases":[],"configuration":"./tags-language-configuration.json"}],"grammars":[{"language":"javascriptreact","scopeName":"source.js.jsx","path":"./syntaxes/JavaScriptReact.tmLanguage.json","embeddedLanguages":{"meta.tag.js":"jsx-tags","meta.tag.without-attributes.js":"jsx-tags","meta.tag.attributes.js.jsx":"javascriptreact","meta.embedded.expression.js":"javascriptreact"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"language":"javascript","scopeName":"source.js","path":"./syntaxes/JavaScript.tmLanguage.json","embeddedLanguages":{"meta.tag.js":"jsx-tags","meta.tag.without-attributes.js":"jsx-tags","meta.tag.attributes.js":"javascript","meta.embedded.expression.js":"javascript"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"scopeName":"source.js.regexp","path":"./syntaxes/Regular Expressions (JavaScript).tmLanguage"}],"semanticTokenScopes":[{"language":"javascript","scopes":{"property":["variable.other.property.js"],"property.readonly":["variable.other.constant.property.js"],"variable":["variable.other.readwrite.js"],"variable.readonly":["variable.other.constant.object.js"],"function":["entity.name.function.js"],"namespace":["entity.name.type.module.js"],"variable.defaultLibrary":["support.variable.js"],"function.defaultLibrary":["support.function.js"]}},{"language":"javascriptreact","scopes":{"property":["variable.other.property.jsx"],"property.readonly":["variable.other.constant.property.jsx"],"variable":["variable.other.readwrite.jsx"],"variable.readonly":["variable.other.constant.object.jsx"],"function":["entity.name.function.jsx"],"namespace":["entity.name.type.module.jsx"],"variable.defaultLibrary":["support.variable.js"],"function.defaultLibrary":["support.function.js"]}}],"snippets":[{"language":"javascript","path":"./snippets/javascript.code-snippets"},{"language":"javascriptreact","path":"./snippets/javascript.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/javascript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.json"},"manifest":{"name":"json","displayName":"JSON Language Basics","description":"Provides syntax highlighting & bracket matching in JSON files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"json","aliases":["JSON","json"],"extensions":[".json",".bowerrc",".jscsrc",".webmanifest",".js.map",".css.map",".ts.map",".har",".jslintrc",".jsonld",".geojson",".ipynb",".vuerc"],"filenames":["composer.lock",".watchmanconfig"],"mimetypes":["application/json","application/manifest+json"],"configuration":"./language-configuration.json"},{"id":"jsonc","aliases":["JSON with Comments"],"extensions":[".jsonc",".eslintrc",".eslintrc.json",".jsfmtrc",".jshintrc",".swcrc",".hintrc",".babelrc",".toolset.jsonc"],"filenames":["babel.config.json","bun.lock",".babelrc.json",".ember-cli","typedoc.json"],"filenamePatterns":["**/.github/hooks/*.json"],"configuration":"./language-configuration.json"},{"id":"jsonl","aliases":["JSON Lines"],"extensions":[".jsonl",".ndjson"],"filenames":[],"configuration":"./language-configuration.json"},{"id":"snippets","aliases":["Code Snippets"],"extensions":[".code-snippets"],"filenamePatterns":["**/User/snippets/*.json","**/User/profiles/*/snippets/*.json","**/snippets*.json"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"json","scopeName":"source.json","path":"./syntaxes/JSON.tmLanguage.json"},{"language":"jsonc","scopeName":"source.json.comments","path":"./syntaxes/JSONC.tmLanguage.json"},{"language":"jsonl","scopeName":"source.json.lines","path":"./syntaxes/JSONL.tmLanguage.json"},{"language":"snippets","scopeName":"source.json.comments.snippets","path":"./syntaxes/snippets.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/json","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.json-language-features"},"manifest":{"name":"json-language-features","displayName":"JSON Language Features","description":"Provides rich language support for JSON files.","version":"10.0.0","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.77.0"},"enabledApiProposals":["extensionsAny"],"icon":"icons/json.png","activationEvents":["onLanguage:json","onLanguage:jsonc","onLanguage:snippets","onCommand:json.validate"],"main":"./client/dist/node/jsonClientMain","browser":"./client/dist/browser/jsonClientMain","capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","description":"The extension requires workspace trust to load schemas from http and https."}},"categories":["Programming Languages"],"contributes":{"configuration":{"id":"json","order":20,"type":"object","title":"JSON","properties":{"json.schemas":{"type":"array","scope":"resource","description":"Associate schemas to JSON files in the current project.","items":{"type":"object","default":{"fileMatch":["/myfile"],"url":"schemaURL"},"properties":{"url":{"type":"string","default":"/user.schema.json","markdownDescription":"A URL or absolute file path to a schema. Can be a relative path (starting with `./`) in workspace and workspace folder settings."},"fileMatch":{"type":"array","items":{"type":"string","default":"MyFile.json","markdownDescription":"A file pattern that can contain `*` and `**` to match against when resolving JSON files to schemas. When beginning with `!`, it defines an exclusion pattern."},"minItems":1,"markdownDescription":"An array of file patterns to match against when resolving JSON files to schemas. `*` and `**` can be used as a wildcard. Exclusion patterns can also be defined and start with `!`. A file matches when there is at least one matching pattern and the last matching pattern is not an exclusion pattern."},"schema":{"$ref":"http://json-schema.org/draft-07/schema#","description":"The schema definition for the given URL. The schema only needs to be provided to avoid accesses to the schema URL."}}}},"json.validate.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable JSON validation."},"json.format.enable":{"type":"boolean","scope":"window","default":true,"description":"Enable/disable default JSON formatter"},"json.format.keepLines":{"type":"boolean","scope":"window","default":false,"description":"Keep all existing new lines when formatting."},"json.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the JSON language server."},"json.colorDecorators.enable":{"type":"boolean","scope":"window","default":true,"description":"Enables or disables color decorators","deprecationMessage":"The setting `json.colorDecorators.enable` has been deprecated in favor of `editor.colorDecorators`."},"json.maxItemsComputed":{"type":"number","default":5000,"description":"The maximum number of outline symbols and folding regions computed (limited for performance reasons)."},"json.schemaDownload.enable":{"type":"boolean","default":true,"description":"When enabled, JSON schemas can be fetched from http and https locations.","tags":["usesOnlineServices"]},"json.schemaDownload.trustedDomains":{"type":"object","default":{"https://schemastore.azurewebsites.net/":true,"https://raw.githubusercontent.com/microsoft/vscode/":true,"https://raw.githubusercontent.com/devcontainers/spec/":true,"https://www.schemastore.org/":true,"https://json.schemastore.org/":true,"https://json-schema.org/":true,"https://developer.microsoft.com/json-schemas/":true},"additionalProperties":{"type":"boolean"},"markdownDescription":"List of trusted domains for downloading JSON schemas over http(s). Use `*` to trust all domains. `*` can also be used as a wildcard in domain names.","tags":["usesOnlineServices"]}}},"configurationDefaults":{"[json]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"},"[jsonc]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"},"[snippets]":{"editor.quickSuggestions":{"strings":true},"editor.suggest.insertMode":"replace"}},"jsonValidation":[{"fileMatch":"*.schema.json","url":"http://json-schema.org/draft-07/schema#"}],"jsonValidationRegistry":[{"url":"vscode://schemas-associations/schemas-associations.json"}],"commands":[{"command":"json.clearCache","title":"Clear Schema Cache","category":"JSON"},{"command":"json.sort","title":"Sort Document","category":"JSON"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["extensionsAny"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/json-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.julia"},"manifest":{"name":"julia","displayName":"Julia Language Basics","description":"Provides syntax highlighting & bracket matching in Julia files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin JuliaEditorSupport/atom-language-julia variants/julia_vscode.json ./syntaxes/julia.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"julia","aliases":["Julia","julia"],"extensions":[".jl"],"firstLine":"^#!\\s*/.*\\bjulia[0-9.-]*\\b","configuration":"./language-configuration.json"},{"id":"juliamarkdown","aliases":["Julia Markdown","juliamarkdown"],"extensions":[".jmd"]}],"grammars":[{"language":"julia","scopeName":"source.julia","path":"./syntaxes/julia.tmLanguage.json","embeddedLanguages":{"meta.embedded.inline.cpp":"cpp","meta.embedded.inline.javascript":"javascript","meta.embedded.inline.python":"python","meta.embedded.inline.r":"r","meta.embedded.inline.sql":"sql"}}],"configurationDefaults":{"[julia]":{"editor.defaultColorDecorators":"never"}}}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/julia","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.latex"},"manifest":{"name":"latex","displayName":"LaTeX Language Basics","description":"Provides syntax highlighting and bracket matching for TeX, LaTeX and BibTeX.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"tex","aliases":["TeX","tex"],"extensions":[".sty",".cls",".bbx",".cbx"],"configuration":"latex-language-configuration.json"},{"id":"latex","aliases":["LaTeX","latex"],"extensions":[".tex",".ltx",".ctx"],"configuration":"latex-language-configuration.json"},{"id":"bibtex","aliases":["BibTeX","bibtex"],"extensions":[".bib"]},{"id":"cpp_embedded_latex","configuration":"latex-cpp-embedded-language-configuration.json","aliases":[]},{"id":"markdown_latex_combined","configuration":"markdown-latex-combined-language-configuration.json","aliases":[]}],"grammars":[{"language":"tex","scopeName":"text.tex","path":"./syntaxes/TeX.tmLanguage.json","unbalancedBracketScopes":["keyword.control.ifnextchar.tex","punctuation.math.operator.tex"]},{"language":"latex","scopeName":"text.tex.latex","path":"./syntaxes/LaTeX.tmLanguage.json","unbalancedBracketScopes":["keyword.control.ifnextchar.tex","punctuation.math.operator.tex"],"embeddedLanguages":{"source.cpp":"cpp_embedded_latex","source.css":"css","text.html":"html","source.java":"java","source.js":"javascript","source.julia":"julia","source.lua":"lua","source.python":"python","source.ruby":"ruby","source.ts":"typescript","text.xml":"xml","source.yaml":"yaml","meta.embedded.markdown_latex_combined":"markdown_latex_combined"}},{"language":"bibtex","scopeName":"text.bibtex","path":"./syntaxes/Bibtex.tmLanguage.json"},{"language":"markdown_latex_combined","scopeName":"text.tex.markdown_latex_combined","path":"./syntaxes/markdown-latex-combined.tmLanguage.json"},{"language":"cpp_embedded_latex","scopeName":"source.cpp.embedded.latex","path":"./syntaxes/cpp-grammar-bailout.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/latex","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.less"},"manifest":{"name":"less","displayName":"Less Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Less files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"less","aliases":["Less","less"],"extensions":[".less"],"mimetypes":["text/x-less","text/less"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"less","scopeName":"source.css.less","path":"./syntaxes/less.tmLanguage.json"}],"problemMatchers":[{"name":"lessc","label":"Lessc compiler","owner":"lessc","source":"less","fileLocation":"absolute","pattern":{"regexp":"(.*)\\sin\\s(.*)\\son line\\s(\\d+),\\scolumn\\s(\\d+)","message":1,"file":2,"line":3,"column":4}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/less","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.log"},"manifest":{"name":"log","displayName":"Log","description":"Provides syntax highlighting for files with .log extension.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin emilast/vscode-logfile-highlighter syntaxes/log.tmLanguage ./syntaxes/log.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"log","extensions":[".log","*.log.?"],"aliases":["Log"]}],"grammars":[{"language":"log","scopeName":"text.log","path":"./syntaxes/log.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/log","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.lua"},"manifest":{"name":"lua","displayName":"Lua Language Basics","description":"Provides syntax highlighting and bracket matching in Lua files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin sumneko/lua.tmbundle Syntaxes/Lua.plist ./syntaxes/lua.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"lua","extensions":[".lua"],"aliases":["Lua","lua"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"lua","scopeName":"source.lua","path":"./syntaxes/lua.tmLanguage.json","tokenTypes":{"comment.line.double-dash.doc.lua":"other"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/lua","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.make"},"manifest":{"name":"make","displayName":"Make Language Basics","description":"Provides syntax highlighting and bracket matching in Make files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin fadeevab/make.tmbundle Syntaxes/Makefile.plist ./syntaxes/make.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"makefile","aliases":["Makefile","makefile"],"extensions":[".mak",".mk"],"filenames":["Makefile","makefile","GNUmakefile","OCamlMakefile"],"firstLine":"^#!\\s*/usr/bin/make","configuration":"./language-configuration.json"}],"grammars":[{"language":"makefile","scopeName":"source.makefile","path":"./syntaxes/make.tmLanguage.json","tokenTypes":{"string.interpolated":"other"}}],"configurationDefaults":{"[makefile]":{"editor.insertSpaces":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/make","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown"},"manifest":{"name":"markdown","displayName":"Markdown Language Basics","description":"Provides snippets and syntax highlighting for Markdown.","version":"30.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.20.0"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"markdown","aliases":["Markdown","markdown"],"extensions":[".md",".mkd",".mkdn",".mdwn",".mdown",".markdown",".markdn",".mdtxt",".mdtext",".litcoffee",".ron",".ronn",".workbook"],"filenamePatterns":["**/.cursor/**/*.mdc"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"markdown","scopeName":"text.html.markdown","path":"./syntaxes/markdown.tmLanguage.json","embeddedLanguages":{"meta.embedded.block.html":"html","source.js":"javascript","source.css":"css","meta.embedded.block.frontmatter":"yaml","meta.embedded.block.css":"css","meta.embedded.block.ini":"ini","meta.embedded.block.java":"java","meta.embedded.block.lua":"lua","meta.embedded.block.makefile":"makefile","meta.embedded.block.perl":"perl","meta.embedded.block.r":"r","meta.embedded.block.ruby":"ruby","meta.embedded.block.php":"php","meta.embedded.block.sql":"sql","meta.embedded.block.vs_net":"vs_net","meta.embedded.block.xml":"xml","meta.embedded.block.xsl":"xsl","meta.embedded.block.yaml":"yaml","meta.embedded.block.dosbatch":"dosbatch","meta.embedded.block.clojure":"clojure","meta.embedded.block.coffee":"coffee","meta.embedded.block.c":"c","meta.embedded.block.cpp":"cpp","meta.embedded.block.diff":"diff","meta.embedded.block.dockerfile":"dockerfile","meta.embedded.block.go":"go","meta.embedded.block.groovy":"groovy","meta.embedded.block.pug":"jade","meta.embedded.block.ignore":"ignore","meta.embedded.block.javascript":"javascript","meta.embedded.block.json":"json","meta.embedded.block.jsonc":"jsonc","meta.embedded.block.jsonl":"jsonl","meta.embedded.block.latex":"latex","meta.embedded.block.less":"less","meta.embedded.block.objc":"objc","meta.embedded.block.scss":"scss","meta.embedded.block.perl6":"perl6","meta.embedded.block.powershell":"powershell","meta.embedded.block.python":"python","meta.embedded.block.restructuredtext":"restructuredtext","meta.embedded.block.rust":"rust","meta.embedded.block.scala":"scala","meta.embedded.block.shellscript":"shellscript","meta.embedded.block.typescript":"typescript","meta.embedded.block.typescriptreact":"typescriptreact","meta.embedded.block.csharp":"csharp","meta.embedded.block.fsharp":"fsharp"},"unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown","keyword.operator.relational.cs","keyword.operator.arrow.cs","punctuation.accessor.pointer.cs","keyword.operator.bitwise.shift.cs","keyword.operator.assignment.compound.bitwise.cs","keyword.operator.relational.ts","storage.type.function.arrow.ts","keyword.operator.bitwise.shift.ts","keyword.operator.assignment.compound.bitwise.ts","keyword.operator.relational.tsx","storage.type.function.arrow.tsx","keyword.operator.bitwise.shift.tsx","keyword.operator.assignment.compound.bitwise.tsx"]}],"snippets":[{"language":"markdown","path":"./snippets/markdown.code-snippets"}],"configurationDefaults":{"[markdown]":{"editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false}}},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin microsoft/vscode-markdown-tm-grammar syntaxes/markdown.tmLanguage ./syntaxes/markdown.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/markdown-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown-language-features"},"manifest":{"name":"markdown-language-features","displayName":"Markdown Language Features","description":"Provides rich language support for Markdown.","version":"10.0.0","icon":"icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["agentEditorComments","customEditorDiffs","documentDiff","documentSyntaxHighlighting","externalUriOpener","linkPresentation","textEditorDiffInformation"],"engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension","categories":["Programming Languages"],"activationEvents":["onLanguage:markdown","onLanguage:prompt","onLanguage:instructions","onLanguage:chatagent","onLanguage:skill","onCommand:markdown.api.render","onCommand:markdown.api.reloadPlugins","onWebviewPanel:markdown.preview"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","description":"Required for loading styles configured in the workspace.","restrictedConfigurations":["markdown.styles"]}},"contributes":{"linkPresentationProviders":[{"id":"markdown.gitCommitLinkPresentations","kind":"commit","uriPattern":"^(?:commit:[^?#]+|https?://[^\\s?#]+/(?:commit|-/commit)/[^/?#]+)(?:[?#].*)?$"},{"id":"markdown.workspaceFileLinkPresentations","kind":"file","uriPattern":"^(?:(?:file|vscode-remote|vscode-vfs):[^?#]*|(?!(?:[a-z][a-z0-9+.-]*:|#))[^?#]+)(?:[?#].*)?$"}],"notebookRenderer":[{"id":"vscode.markdown-it-renderer","displayName":"Markdown it renderer","entrypoint":"./notebook-out/index.js","mimeTypes":["text/markdown","text/latex","text/x-css","text/x-html","text/x-json","text/x-typescript","text/x-abap","text/x-apex","text/x-azcli","text/x-bat","text/x-cameligo","text/x-clojure","text/x-coffee","text/x-cpp","text/x-csharp","text/x-csp","text/x-css","text/x-dart","text/x-dockerfile","text/x-ecl","text/x-fsharp","text/x-go","text/x-graphql","text/x-handlebars","text/x-hcl","text/x-html","text/x-ini","text/x-java","text/x-javascript","text/x-julia","text/x-kotlin","text/x-less","text/x-lexon","text/x-lua","text/x-m3","text/x-markdown","text/x-mips","text/x-msdax","text/x-mysql","text/x-objective-c/objective","text/x-pascal","text/x-pascaligo","text/x-perl","text/x-pgsql","text/x-php","text/x-postiats","text/x-powerquery","text/x-powershell","text/x-pug","text/x-python","text/x-r","text/x-razor","text/x-redis","text/x-redshift","text/x-restructuredtext","text/x-ruby","text/x-rust","text/x-sb","text/x-scala","text/x-scheme","text/x-scss","text/x-shell","text/x-solidity","text/x-sophia","text/x-sql","text/x-st","text/x-swift","text/x-systemverilog","text/x-tcl","text/x-twig","text/x-typescript","text/x-vb","text/x-xml","text/x-yaml","application/json"]}],"commands":[{"command":"_markdown.copyImage","title":"Copy Image","category":"Markdown"},{"command":"_markdown.openImage","title":"Open Image","category":"Markdown"},{"command":"_markdown.openFrontMatterSettings","title":"Configure Frontmatter Visibility","category":"Markdown"},{"command":"markdown.showPreview","title":"Open Preview","category":"Markdown","icon":{"light":"./media/preview-light.svg","dark":"./media/preview-dark.svg"}},{"command":"markdown.showPreviewToSide","title":"Open Preview to the Side","category":"Markdown","icon":"$(open-preview)"},{"command":"markdown.showLockedPreviewToSide","title":"Open Locked Preview to the Side","category":"Markdown","icon":"$(open-preview)"},{"command":"markdown.showSource","title":"Open Source File","category":"Markdown","icon":"$(file-code)"},{"command":"markdown.showPreviewSecuritySelector","title":"Change Preview Security Settings","category":"Markdown"},{"command":"markdown.preview.refresh","title":"Refresh Preview","category":"Markdown"},{"command":"markdown.preview.toggleLock","title":"Toggle Preview Locking","category":"Markdown"},{"command":"markdown.findAllFileReferences","title":"Find File References","category":"Markdown"},{"command":"markdown.reopenAsPreview","title":"Open as Preview","category":"Markdown","icon":"$(preview)"},{"command":"markdown.reopenAsSource","title":"Reopen as source file","category":"Markdown","icon":"$(file-code)"},{"command":"markdown.togglePreview","title":"Toggle Preview","category":"Markdown"},{"command":"markdown.editor.insertLinkFromWorkspace","title":"Insert Link to File in Workspace","category":"Markdown","enablement":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !activeEditorIsReadonly"},{"command":"markdown.editor.insertImageFromWorkspace","title":"Insert Image from Workspace","category":"Markdown","enablement":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !activeEditorIsReadonly"},{"command":"markdown.editor.cursorLeft","title":"Move Cursor Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorRight","title":"Move Cursor Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorUp","title":"Move Cursor Up","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDown","title":"Move Cursor Down","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLeftSelect","title":"Select Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorRightSelect","title":"Select Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorUpSelect","title":"Select Up","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDownSelect","title":"Select Down","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordLeft","title":"Move Cursor Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordRight","title":"Move Cursor Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","title":"Select Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","title":"Select Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","title":"Move Cursor to Visual Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","title":"Move Cursor to Visual Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","title":"Select to Visual Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","title":"Select to Visual Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","title":"Move Cursor to Logical Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","title":"Move Cursor to Logical Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","title":"Select to Logical Line Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","title":"Select to Logical Line End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentStart","title":"Move Cursor to Document Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","title":"Move Cursor to Document End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","title":"Select to Document Start","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","title":"Select to Document End","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.selectAll","title":"Select All","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLeft","title":"Delete Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteRight","title":"Delete Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteWordLeft","title":"Delete Word Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteWordRight","title":"Delete Word Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLineLeft","title":"Delete All Left","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.deleteLineRight","title":"Delete All Right","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.undo","title":"Undo","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.redo","title":"Redo","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertTab","title":"Insert Tab","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.outdent","title":"Outdent","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.toggleTabFocus","title":"Toggle Tab Key Moves Focus","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.smartEnter","title":"Insert Paragraph","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertHardLineBreak","title":"Insert Hard Line Break","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true},{"command":"markdown.editor.insertParagraph","title":"Insert Paragraph Without Continuing Markup","category":"Markdown Editor","enablement":"activeCustomEditorId == 'vscode.markdown.editor'","$generated":true}],"menus":{"webview/context":[{"command":"_markdown.copyImage","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && (webviewSection == 'image' || webviewSection == 'localImage')"},{"command":"_markdown.openImage","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && webviewSection == 'localImage'"},{"command":"_markdown.openFrontMatterSettings","when":"(webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor') && webviewSection == 'frontMatter'"}],"editor/title":[{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview","alt":"markdown.showPreview","group":"navigation@1"},{"command":"markdown.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview && !isSessionsWindow","group":"navigation@2"},{"command":"markdown.showSource","when":"activeWebviewPanelId == 'markdown.preview'","group":"navigation@2"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor' && !activeCustomEditorTextDiff && !isSessionsWindow","group":"navigation@2"},{"command":"markdown.preview.refresh","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"},{"command":"markdown.preview.toggleLock","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"},{"command":"markdown.showPreviewSecuritySelector","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"1_markdown"}],"modalEditor/editorTitle":[{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview","alt":"markdown.showPreview","group":"navigation"},{"command":"markdown.reopenAsPreview","when":"(activeEditor == workbench.editors.files.textFileEditor || activeEditor == workbench.editors.textDiffEditor) && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused && !hasCustomMarkdownPreview && !isSessionsWindow","group":"navigation"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor' && !activeCustomEditorTextDiff && !isSessionsWindow","group":"navigation"}],"explorer/context":[{"command":"markdown.showPreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !hasCustomMarkdownPreview","group":"navigation"},{"command":"markdown.findAllFileReferences","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/","group":"4_search"}],"editor/title/context":[{"command":"markdown.showPreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !hasCustomMarkdownPreview","group":"1_open"},{"command":"markdown.findAllFileReferences","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"}],"commandPalette":[{"command":"_markdown.openImage","when":"false"},{"command":"_markdown.copyImage","when":"false"},{"command":"markdown.showPreview","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showLockedPreviewToSide","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused","group":"navigation"},{"command":"markdown.showSource","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"navigation"},{"command":"markdown.showPreviewSecuritySelector","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.showPreviewSecuritySelector","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.preview.toggleLock","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.preview.refresh","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.preview.refresh","when":"activeWebviewPanelId == 'markdown.preview' || activeCustomEditorId == 'vscode.markdown.preview.editor'"},{"command":"markdown.findAllFileReferences","when":"editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"},{"command":"markdown.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/","group":"navigation"},{"command":"markdown.reopenAsSource","when":"activeCustomEditorId == 'vscode.markdown.preview.editor'","group":"navigation"},{"command":"markdown.togglePreview","when":"resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/"},{"command":"markdown.editor.cursorLeft","when":"false","$generated":true},{"command":"markdown.editor.cursorRight","when":"false","$generated":true},{"command":"markdown.editor.cursorUp","when":"false","$generated":true},{"command":"markdown.editor.cursorDown","when":"false","$generated":true},{"command":"markdown.editor.cursorLeftSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorRightSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorUpSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDownSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorWordLeft","when":"false","$generated":true},{"command":"markdown.editor.cursorWordRight","when":"false","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentStart","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","when":"false","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","when":"false","$generated":true},{"command":"markdown.editor.selectAll","when":"false","$generated":true},{"command":"markdown.editor.deleteLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteRight","when":"false","$generated":true},{"command":"markdown.editor.deleteWordLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteWordRight","when":"false","$generated":true},{"command":"markdown.editor.deleteLineLeft","when":"false","$generated":true},{"command":"markdown.editor.deleteLineRight","when":"false","$generated":true},{"command":"markdown.editor.undo","when":"false","$generated":true},{"command":"markdown.editor.redo","when":"false","$generated":true},{"command":"markdown.editor.insertTab","when":"false","$generated":true},{"command":"markdown.editor.outdent","when":"false","$generated":true},{"command":"markdown.editor.toggleTabFocus","when":"false","$generated":true},{"command":"markdown.editor.smartEnter","when":"false","$generated":true},{"command":"markdown.editor.insertHardLineBreak","when":"false","$generated":true},{"command":"markdown.editor.insertParagraph","when":"false","$generated":true}]},"keybindings":[{"command":"markdown.showPreviewToSide","key":"ctrl+k v","mac":"cmd+k v","when":"editorFocus && editorLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused"},{"command":"markdown.togglePreview","key":"shift+ctrl+v","mac":"shift+cmd+v","when":"!terminalFocus && ((editorFocus && resourceLangId =~ /^(markdown|prompt|instructions|chatagent|skill)$/ && !notebookEditorFocused) || activeCustomEditorId == 'vscode.markdown.preview.editor')"},{"command":"markdown.editor.cursorLeft","key":"ctrl+b","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLeft","key":"left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorRight","key":"ctrl+f","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorRight","key":"right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorUp","key":"ctrl+p","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorUp","key":"up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorDown","key":"ctrl+n","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDown","key":"down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorLeftSelect","key":"shift+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorRightSelect","key":"shift+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorUpSelect","key":"shift+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorDownSelect","key":"shift+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorWordLeft","key":"alt+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordLeft","key":"ctrl+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordRight","key":"alt+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordRight","key":"ctrl+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","key":"shift+alt+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordLeftSelect","key":"ctrl+shift+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","key":"shift+alt+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorWordRightSelect","key":"ctrl+shift+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","key":"cmd+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStart","key":"home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","key":"cmd+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineEnd","key":"end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","key":"shift+cmd+left","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineStartSelect","key":"shift+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","key":"shift+cmd+right","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorVisualLineEndSelect","key":"shift+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.cursorLogicalLineStart","key":"ctrl+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineEnd","key":"ctrl+e","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineStartSelect","key":"ctrl+shift+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorLogicalLineEndSelect","key":"ctrl+shift+e","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStart","key":"cmd+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStart","key":"ctrl+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","key":"cmd+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEnd","key":"ctrl+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","key":"shift+cmd+up","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentStartSelect","key":"ctrl+shift+home","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","key":"shift+cmd+down","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.cursorDocumentEndSelect","key":"ctrl+shift+end","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.selectAll","key":"cmd+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.selectAll","key":"ctrl+a","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"ctrl+h","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"ctrl+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLeft","key":"backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteLeft","key":"shift+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteRight","key":"ctrl+d","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteRight","key":"ctrl+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteRight","key":"delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.deleteWordLeft","key":"alt+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteWordLeft","key":"ctrl+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteWordRight","key":"alt+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteWordRight","key":"ctrl+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.deleteLineLeft","key":"cmd+backspace","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLineRight","key":"cmd+delete","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.deleteLineRight","key":"ctrl+k","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.undo","key":"cmd+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.undo","key":"ctrl+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.redo","key":"shift+cmd+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.redo","key":"ctrl+shift+z","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.redo","key":"ctrl+y","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && !isMac","$generated":true},{"command":"markdown.editor.smartEnter","key":"enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.insertHardLineBreak","key":"shift+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true},{"command":"markdown.editor.insertParagraph","key":"cmd+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus && isMac","$generated":true},{"command":"markdown.editor.insertParagraph","key":"ctrl+enter","when":"activeCustomEditorId == 'vscode.markdown.editor' && markdownEditorFocus","$generated":true}],"configuration":[{"title":"Language Features","order":20,"properties":{"markdown.experimental.richLinks.enabled":{"type":"boolean","default":true,"description":"Controls whether supported links in the Markdown editor are rendered as rich links with live metadata. Enabling this may make authenticated requests to services such as GitHub.","scope":"window","tags":["experimental","onExP"]},"markdown.links.openLocation":{"type":"string","default":"currentGroup","description":"Controls where links in Markdown files should be opened.","scope":"resource","enum":["currentGroup","beside"],"enumDescriptions":["Open links in the active editor group.","Open links beside the active editor."]},"markdown.suggest.paths.enabled":{"type":"boolean","default":true,"description":"Controls whether path suggestions are shown while writing links in Markdown files.","scope":"resource"},"markdown.suggest.paths.includeWorkspaceHeaderCompletions":{"type":"string","default":"onDoubleHash","scope":"resource","markdownDescription":"Enable suggestions for headers in other Markdown files in the current workspace. Accepting one of these suggestions inserts the full path to header in that file, for example: `[link text](/path/to/file.md#header)`.","enum":["never","onDoubleHash","onSingleOrDoubleHash"],"markdownEnumDescriptions":["Disable workspace header suggestions.","Enable workspace header suggestions after typing `##` in a path, for example: `[link text](##`.","Enable workspace header suggestions after typing either `##` or `#` in a path, for example: `[link text](#` or `[link text](##`."]},"markdown.editor.drop.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether dropping files into a Markdown editor while holding Shift inserts Markdown links. Requires enabling `#editor.dropIntoEditor.enabled#`.","default":"smart","enum":["always","smart","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not dropping into a code block or other special element. Use the drop widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.drop.copyIntoWorkspace":{"type":"string","markdownDescription":"Controls if files outside of the workspace that are dropped into a Markdown editor should be copied into the workspace.\n\nUse `#markdown.copyFiles.destination#` to configure where copied dropped files should be created","default":"mediaFiles","enum":["mediaFiles","never"],"markdownEnumDescriptions":["Try to copy external image and video files into the workspace.","Do not copy external files into the workspace."]},"markdown.editor.filePaste.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether pasting files into a Markdown editor creates Markdown links. Requires enabling `#editor.pasteAs.enabled#`.","default":"smart","enum":["always","smart","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.filePaste.copyIntoWorkspace":{"type":"string","markdownDescription":"Controls if files outside of the workspace that are pasted into a Markdown editor should be copied into the workspace.\n\nUse `#markdown.copyFiles.destination#` to configure where copied files should be created.","default":"mediaFiles","enum":["mediaFiles","never"],"markdownEnumDescriptions":["Try to copy external image and video files into the workspace.","Do not copy external files into the workspace."]},"markdown.editor.filePaste.videoSnippet":{"type":"string","markdownDescription":"Snippet used when adding videos to Markdown. This snippet can use the following variables:\n- `${src}` — The resolved path of the video file.\n- `${title}` — The title used for the video. A snippet placeholder will automatically be created for this variable.","default":""},"markdown.editor.filePaste.audioSnippet":{"type":"string","markdownDescription":"Snippet used when adding audio to Markdown. This snippet can use the following variables:\n- `${src}` — The resolved path of the audio file.\n- `${title}` — The title used for the audio. A snippet placeholder will automatically be created for this variable.","default":""},"markdown.editor.pasteUrlAsFormattedLink.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls if Markdown links are created when URLs are pasted into a Markdown editor. Requires enabling `#editor.pasteAs.enabled#`.","default":"smartWithSelection","enum":["always","smart","smartWithSelection","never"],"markdownEnumDescriptions":["Always insert Markdown links.","Smartly create Markdown links by default when not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Smartly create Markdown links by default when you have selected text and are not pasting into a code block or other special element. Use the paste widget to switch between pasting as plain text or as Markdown links.","Never create Markdown links."]},"markdown.editor.updateLinksOnPaste.enabled":{"type":"boolean","markdownDescription":"Enable/disable a paste option that updates links and reference in text that is copied and pasted between Markdown editors.\n\nTo use this feature, after pasting text that contains updatable links, just click on the Paste Widget and select `Paste and update pasted links`.","scope":"resource","default":true},"markdown.updateLinksOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each file move.","Always update links automatically.","Never try to update link and don't prompt."],"default":"never","markdownDescription":"Try to update links in Markdown files when a file is renamed/moved in the workspace. Use `#markdown.updateLinksOnFileMove.include#` to configure which files trigger link updates.","scope":"window"},"markdown.updateLinksOnFileMove.include":{"type":"array","markdownDescription":"Glob patterns that specifies files that trigger automatic link updates. See `#markdown.updateLinksOnFileMove.enabled#` for details about this feature.","scope":"window","items":{"type":"string","description":"The glob pattern to match file paths against. Set to true to enable the pattern."},"default":["**/*.{md,mkd,mdwn,mdown,markdown,markdn,mdtxt,mdtext,workbook}","**/*.{jpg,jpe,jpeg,png,bmp,gif,ico,webp,avif,tiff,svg,mp4}"]},"markdown.updateLinksOnFileMove.enableForDirectories":{"type":"boolean","default":true,"description":"Enable updating links when a directory is moved or renamed in the workspace.","scope":"window"},"markdown.occurrencesHighlight.enabled":{"type":"boolean","default":false,"description":"Controls whether link occurrences in the current document are highlighted.","scope":"resource"},"markdown.copyFiles.destination":{"type":"object","markdownDescription":"Configures the path and file name of files created by copy/paste or drag and drop. This is a map of globs that match against a Markdown document path to the destination path where the new file should be created.\n\nThe destination path may use the following variables:\n\n- `${documentDirName}` — Absolute parent directory path of the Markdown document, e.g. `/Users/me/myProject/docs`.\n- `${documentRelativeDirName}` — Relative parent directory path of the Markdown document, e.g. `docs`. This is the same as `${documentDirName}` if the file is not part of a workspace.\n- `${documentFileName}` — The full filename of the Markdown document, e.g. `README.md`.\n- `${documentBaseName}` — The basename of the Markdown document, e.g. `README`.\n- `${documentExtName}` — The extension of the Markdown document, e.g. `md`.\n- `${documentFilePath}` — Absolute path of the Markdown document, e.g. `/Users/me/myProject/docs/README.md`.\n- `${documentRelativeFilePath}` — Relative path of the Markdown document, e.g. `docs/README.md`. This is the same as `${documentFilePath}` if the file is not part of a workspace.\n- `${documentWorkspaceFolder}` — The workspace folder for the Markdown document, e.g. `/Users/me/myProject`. This is the same as `${documentDirName}` if the file is not part of a workspace.\n- `${fileName}` — The file name of the dropped file, e.g. `image.png`.\n- `${fileExtName}` — The extension of the dropped file, e.g. `png`.\n- `${unixTime}` — The current Unix timestamp in milliseconds.\n- `${isoTime}` — The current time in ISO 8601 format, e.g. '2025-06-06T08:40:32.123Z'.","additionalProperties":{"type":"string"}},"markdown.copyFiles.overwriteBehavior":{"type":"string","markdownDescription":"Controls if files created by drop or paste should overwrite existing files.","default":"nameIncrementally","enum":["nameIncrementally","overwrite"],"markdownEnumDescriptions":["If a file with the same name already exists, append a number to the file name, for example: `image.png` becomes `image-1.png`.","If a file with the same name already exists, overwrite it."]},"markdown.preferredMdPathExtensionStyle":{"type":"string","default":"auto","markdownDescription":"Controls if file extensions (for example `.md`) are added or not for links to Markdown files. This setting is used when file paths are added by tooling such as path completions or file renames.","enum":["auto","includeExtension","removeExtension"],"markdownEnumDescriptions":["For existing paths, try to maintain the file extension style. For new paths, add file extensions.","Prefer including the file extension. For example, path completions to a file named `file.md` will insert `file.md`.","Prefer removing the file extension. For example, path completions to a file named `file.md` will insert `file` without the `.md`."]}}},{"title":"Validation","order":22,"properties":{"markdown.validate.enabled":{"order":0,"type":"boolean","scope":"resource","description":"Controls whether error reporting is enabled in Markdown files.","default":false},"markdown.validate.referenceLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether reference links in Markdown files are validated, for example: `[link][ref]`. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fragmentLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether fragment links to headers in the current Markdown file are validated, for example: `[link](#header)`. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fileLinks.enabled":{"type":"string","scope":"resource","markdownDescription":"Controls whether links to other files in Markdown files are validated, for example `[link](/path/to/file.md)`. This checks that the target files exist. Requires enabling `#markdown.validate.enabled#`.","default":"warning","enum":["ignore","warning","error"]},"markdown.validate.fileLinks.markdownFragmentLinks":{"type":"string","scope":"resource","markdownDescription":"Validate the fragment part of links to headers in other files in Markdown files, for example: `[link](/path/to/file.md#header)`. Inherits the setting value from `#markdown.validate.fragmentLinks.enabled#` by default.","default":"inherit","enum":["inherit","ignore","warning","error"]},"markdown.validate.ignoredLinks":{"type":"array","scope":"resource","markdownDescription":"Configure links that should not be validated. For example adding `/about` would not validate the link `[about](/about)`, while the glob `/assets/**/*.svg` would let you skip validation for any link to `.svg` files under the `assets` directory.","items":{"type":"string"}},"markdown.validate.unusedLinkDefinitions.enabled":{"type":"string","scope":"resource","markdownDescription":"Validate link definitions that are unused in the current file.","default":"hint","enum":["ignore","hint","warning","error"]},"markdown.validate.duplicateLinkDefinitions.enabled":{"type":"string","scope":"resource","markdownDescription":"Validate duplicated definitions in the current file.","default":"warning","enum":["ignore","warning","error"]}}},{"title":"Preview","order":23,"properties":{"markdown.styles":{"type":"array","items":{"type":"string"},"default":[],"markdownDescription":"A list of URLs or local paths to CSS style sheets to use from the Markdown preview. Relative paths are interpreted relative to the folder open in the Explorer. If there is no open folder, they are interpreted relative to the location of the Markdown file. All `\\` need to be written as `\\\\`.","scope":"resource"},"markdown.preview.breaks":{"type":"boolean","default":false,"markdownDescription":"Sets how line-breaks are rendered in the Markdown preview. Setting it to `true` creates a `
` for newlines inside paragraphs.","scope":"resource"},"markdown.preview.linkify":{"type":"boolean","default":true,"description":"Convert URL-like text to links in the Markdown preview.","scope":"resource"},"markdown.preview.typographer":{"type":"boolean","default":false,"description":"Enable some language-neutral replacement and quotes beautification in the Markdown preview.","scope":"resource"},"markdown.preview.fontFamily":{"type":"string","default":"-apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif","description":"Controls the font family used in the Markdown preview.","scope":"resource"},"markdown.preview.fontSize":{"type":"number","default":14,"description":"Controls the font size in pixels used in the Markdown preview.","scope":"resource"},"markdown.preview.lineHeight":{"type":"number","default":1.6,"description":"Controls the line height used in the Markdown preview. This number is relative to the font size.","scope":"resource"},"markdown.preview.scrollPreviewWithEditor":{"type":"boolean","default":true,"description":"When a Markdown editor is scrolled, update the view of the preview.","scope":"resource"},"markdown.preview.markEditorSelection":{"type":"boolean","default":false,"description":"Mark the current editor selection in the Markdown preview.","scope":"resource"},"markdown.preview.scrollEditorWithPreview":{"type":"boolean","default":true,"description":"When a Markdown preview is scrolled, update the view of the editor.","scope":"resource"},"markdown.preview.doubleClickToSwitchToEditor":{"type":"boolean","default":false,"description":"Double-click in the Markdown preview to switch to the editor.","scope":"resource"},"markdown.preview.openMarkdownLinks":{"type":"string","default":"inPreview","description":"Controls how links to other Markdown files in the Markdown preview should be opened.","scope":"resource","enum":["inPreview","inEditor"],"enumDescriptions":["Try to open links in the Markdown preview.","Try to open links in the editor."]},"markdown.preview.frontMatter":{"type":"string","default":"table","scope":"resource","markdownDescription":"Controls how YAML frontmatter (delimited by `---`) at the start of a Markdown file is rendered in the preview.","enum":["hide","codeBlock","table"],"enumDescriptions":["Do not render frontmatter.","Render frontmatter as a code block.","Render frontmatter as a table of keys and values."]}}},{"title":"Advanced","order":24,"properties":{"markdown.trace.server":{"type":"string","scope":"window","enum":["off","messages","verbose"],"default":"off","description":"Traces the communication between VS Code and the Markdown language server."},"markdown.server.log":{"type":"string","scope":"window","enum":["off","debug","trace"],"default":"off","description":"Controls the logging level of the Markdown language server."}}}],"configurationDefaults":{"[markdown]":{"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"off","other":"off"}}},"jsonValidation":[{"fileMatch":"package.json","url":"./schemas/package.schema.json"}],"markdown.previewStyles":["./media/markdown.css","./media/highlight.css"],"markdown.previewScripts":[{"path":"./media/index.js","type":"module"}],"customEditors":[{"viewType":"vscode.markdown.preview.editor","displayName":"Markdown Preview","priority":{"diffEditor":"option","textEditor":"option"},"selector":[{"filenamePattern":"*.md"}]},{"viewType":"vscode.markdown.editor","displayName":"Markdown Editor","priority":{"diffEditor":"explicit","textEditor":"option"},"selector":[{"filenamePattern":"*.md"}]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["agentEditorComments","customEditorDiffs","documentDiff","documentSyntaxHighlighting","externalUriOpener","linkPresentation","textEditorDiffInformation"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/markdown-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.markdown-math"},"manifest":{"name":"markdown-math","displayName":"Markdown Math","description":"Adds math support to Markdown in notebooks.","version":"10.0.0","icon":"icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.54.0"},"categories":["Other","Programming Languages"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"main":"./dist/extension","browser":"./dist/browser/extension","activationEvents":[],"contributes":{"languages":[{"id":"markdown-math","aliases":[]}],"grammars":[{"language":"markdown-math","scopeName":"text.html.markdown.math","path":"./syntaxes/md-math.tmLanguage.json"},{"scopeName":"markdown.math.block","path":"./syntaxes/md-math-block.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex"}},{"scopeName":"markdown.math.inline","path":"./syntaxes/md-math-inline.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex","punctuation.definition.math.end.markdown":"latex"}},{"scopeName":"markdown.math.codeblock","path":"./syntaxes/md-math-fence.tmLanguage.json","injectTo":["text.html.markdown"],"embeddedLanguages":{"meta.embedded.math.markdown":"latex"}}],"notebookRenderer":[{"id":"vscode.markdown-it-katex-extension","displayName":"Markdown it KaTeX renderer","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/katex.js"}}],"markdown.markdownItPlugins":true,"markdown.previewStyles":["./notebook-out/katex.min.css","./preview-styles/index.css"],"configuration":[{"title":"Markdown Math","properties":{"markdown.math.enabled":{"type":"boolean","default":true,"description":"Enable/disable rendering math in the built-in Markdown preview."},"markdown.math.macros":{"type":"object","additionalProperties":{"type":"string"},"default":{},"description":"A collection of custom macros. Each macro is a key-value pair where the key is a new command name and the value is the expansion of the macro.","scope":"resource"}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/markdown-math","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.media-preview"},"manifest":{"name":"media-preview","displayName":"Media Preview","description":"Provides VS Code's built-in previews for images, audio, and video","extensionKind":["ui","workspace"],"version":"10.0.0","publisher":"vscode","icon":"icon.png","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension.js","categories":["Other"],"activationEvents":[],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"configuration":{"type":"object","title":"Media Previewer","properties":{"mediaPreview.video.autoPlay":{"type":"boolean","default":false,"markdownDescription":"Start playing videos on mute automatically."},"mediaPreview.video.loop":{"type":"boolean","default":false,"markdownDescription":"Loop videos over again automatically."}}},"customEditors":[{"viewType":"imagePreview.previewEditor","displayName":"Image Preview","priority":"builtin","selector":[{"filenamePattern":"*.{jpg,jpe,jpeg,png,bmp,gif,ico,webp,avif,svg}"}]},{"viewType":"vscode.audioPreview","displayName":"Audio Preview","priority":"builtin","selector":[{"filenamePattern":"*.{mp3,wav,ogg,oga}"}]},{"viewType":"vscode.videoPreview","displayName":"Video Preview","priority":"builtin","selector":[{"filenamePattern":"*.{mp4,webm}"}]}],"commands":[{"command":"imagePreview.zoomIn","title":"Zoom in","category":"Image Preview"},{"command":"imagePreview.zoomOut","title":"Zoom out","category":"Image Preview"},{"command":"imagePreview.copyImage","title":"Copy","category":"Image Preview"},{"command":"imagePreview.reopenAsPreview","title":"Reopen as image preview","category":"Image Preview","icon":"$(preview)"},{"command":"imagePreview.reopenAsText","title":"Reopen as source text","category":"Image Preview","icon":"$(go-to-file)"}],"menus":{"commandPalette":[{"command":"imagePreview.zoomIn","when":"activeCustomEditorId == 'imagePreview.previewEditor'","group":"1_imagePreview"},{"command":"imagePreview.zoomOut","when":"activeCustomEditorId == 'imagePreview.previewEditor'","group":"1_imagePreview"},{"command":"imagePreview.copyImage","when":"false"},{"command":"imagePreview.reopenAsPreview","when":"activeEditor == workbench.editors.files.textFileEditor && resourceExtname == '.svg' && !hasCustomImagePreview","group":"navigation"},{"command":"imagePreview.reopenAsText","when":"activeCustomEditorId == 'imagePreview.previewEditor' && resourceExtname == '.svg'","group":"navigation"}],"webview/context":[{"command":"imagePreview.copyImage","when":"webviewId == 'imagePreview.previewEditor'"}],"editor/title":[{"command":"imagePreview.reopenAsPreview","when":"editorFocus && resourceExtname == '.svg' && !hasCustomImagePreview","group":"navigation"},{"command":"imagePreview.reopenAsText","when":"activeCustomEditorId == 'imagePreview.previewEditor' && resourceExtname == '.svg'","group":"navigation"}]}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/media-preview","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.merge-conflict"},"manifest":{"name":"merge-conflict","publisher":"vscode","displayName":"Merge Conflict","description":"Highlighting and commands for inline merge conflicts.","icon":"media/icon.png","version":"10.0.0","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.5.0"},"categories":["Other"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onStartupFinished"],"main":"./dist/mergeConflictMain","browser":"./dist/browser/mergeConflictMain","contributes":{"commands":[{"category":"Merge Conflict","title":"Accept All Current","original":"Accept All Current","command":"merge-conflict.accept.all-current","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept All Incoming","original":"Accept All Incoming","command":"merge-conflict.accept.all-incoming","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept All Both","original":"Accept All Both","command":"merge-conflict.accept.all-both","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Current","original":"Accept Current","command":"merge-conflict.accept.current","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Incoming","original":"Accept Incoming","command":"merge-conflict.accept.incoming","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Selection","original":"Accept Selection","command":"merge-conflict.accept.selection","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Accept Both","original":"Accept Both","command":"merge-conflict.accept.both","enablement":"!isMergeEditor"},{"category":"Merge Conflict","title":"Next Conflict","original":"Next Conflict","command":"merge-conflict.next","enablement":"!isMergeEditor","icon":"$(arrow-down)"},{"category":"Merge Conflict","title":"Previous Conflict","original":"Previous Conflict","command":"merge-conflict.previous","enablement":"!isMergeEditor","icon":"$(arrow-up)"},{"category":"Merge Conflict","title":"Compare Current Conflict","original":"Compare Current Conflict","command":"merge-conflict.compare","enablement":"!isMergeEditor"}],"menus":{"scm/resourceState/context":[{"command":"merge-conflict.accept.all-current","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"},{"command":"merge-conflict.accept.all-incoming","when":"scmProvider == git && scmResourceGroup == merge","group":"1_modification"}],"editor/title":[{"command":"merge-conflict.previous","group":"navigation@1","when":"!isMergeEditor && mergeConflictsCount && mergeConflictsCount != 0"},{"command":"merge-conflict.next","group":"navigation@2","when":"!isMergeEditor && mergeConflictsCount && mergeConflictsCount != 0"}]},"configuration":{"title":"Merge Conflict","properties":{"merge-conflict.codeLens.enabled":{"type":"boolean","description":"Create a CodeLens for merge conflict blocks within editor.","default":true},"merge-conflict.decorators.enabled":{"type":"boolean","description":"Create decorators for merge conflict blocks within editor.","default":true},"merge-conflict.autoNavigateNextConflict.enabled":{"type":"boolean","description":"Whether to automatically navigate to the next merge conflict after resolving a merge conflict.","default":false},"merge-conflict.diffViewPosition":{"type":"string","enum":["Current","Beside","Below"],"description":"Controls where the diff view should be opened when comparing changes in merge conflicts.","enumDescriptions":["Open the diff view in the current editor group.","Open the diff view next to the current editor group.","Open the diff view below the current editor group."],"default":"Current"}}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/merge-conflict","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.mermaid-markdown-features"},"manifest":{"name":"mermaid-markdown-features","displayName":"Mermaid Markdown Features","description":"Adds Mermaid diagram support to built-in chats, Markdown previews, and notebooks.","version":"10.0.0","publisher":"vscode","license":"MIT","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.104.0"},"enabledApiProposals":["chatOutputRenderer","chatParticipantPrivate"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"main":"./dist/extension","browser":"./dist/browser/extension","activationEvents":["onWebviewPanel:vscode.mermaid-markdown-features.preview"],"contributes":{"commands":[{"command":"_mermaid-markdown.resetPanZoom","title":"Reset Pan and Zoom"},{"command":"_mermaid-markdown.openInEditor","title":"Open Diagram in Editor"},{"command":"_mermaid-markdown.copySource","title":"Copy Diagram Source"}],"menus":{"commandPalette":[{"command":"_mermaid-markdown.resetPanZoom","when":"false"},{"command":"_mermaid-markdown.openInEditor","when":"false"},{"command":"_mermaid-markdown.copySource","when":"false"}],"webview/context":[{"command":"_mermaid-markdown.openInEditor","when":"webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || (webviewSection == 'mermaid' && (webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor' || webviewId == 'notebook.output'))","group":"navigation@1"},{"command":"_mermaid-markdown.copySource","when":"webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || webviewId == 'vscode.mermaid-markdown-features.preview' || (webviewSection == 'mermaid' && (webviewId == 'markdown.preview' || webviewId == 'vscode.markdown.preview.editor' || webviewId == 'notebook.output'))","group":"navigation@2"},{"command":"_mermaid-markdown.resetPanZoom","when":"!mermaidError && (webviewId == 'vscode.mermaid-markdown-features.chatOutputItem' || webviewId == 'vscode.mermaid-markdown-features.preview')","group":"navigation@3"}]},"configuration":{"title":"Mermaid","properties":{"markdown-mermaid.lightModeTheme":{"order":0,"type":"string","enum":["vscode","base","forest","dark","default","neutral"],"enumDescriptions":["Mermaid theme derived from the current VS Code color theme.","Built-in Mermaid theme. The only Mermaid theme that can be customized with theme variables.","Built-in Mermaid theme using shades of green.","Built-in Mermaid theme for dark backgrounds.","The default built-in Mermaid theme. Works well with light backgrounds.","Built-in Mermaid theme using a neutral grayscale palette. Suitable for black and white prints."],"default":"vscode","description":"Default Mermaid theme for light mode."},"markdown-mermaid.darkModeTheme":{"order":1,"type":"string","enum":["vscode","base","forest","dark","default","neutral"],"enumDescriptions":["Mermaid theme derived from the current VS Code color theme.","Built-in Mermaid theme. The only Mermaid theme that can be customized with theme variables.","Built-in Mermaid theme using shades of green.","Built-in Mermaid theme for dark backgrounds.","The default built-in Mermaid theme. Works well with light backgrounds.","Built-in Mermaid theme using a neutral grayscale palette. Suitable for black and white prints."],"default":"vscode","description":"Default Mermaid theme for dark mode."},"markdown-mermaid.languages":{"order":2,"type":"array","default":["mermaid"],"description":"Default languages in Markdown."},"markdown-mermaid.maxTextSize":{"order":3,"type":"number","default":50000,"description":"The maximum allowed size of the user's text diagram."},"markdown-mermaid.mouseNavigation.enabled":{"type":"string","description":"Controls when mouse-based navigation is enabled on Mermaid diagrams.","enum":["always","alt","never"],"default":"alt","markdownEnumDescriptions":["Always enable mouse navigation on Mermaid diagrams.","Only enable mouse navigation when holding down Alt (Option on macOS). Gestures such as pinch-to-zoom will still work without Alt.","Disable mouse navigation."]},"markdown-mermaid.controls.show":{"type":"string","description":"Controls showing UI controls on Mermaid diagrams.","enum":["never","onHoverOrFocus","always"],"enumDescriptions":["Never show controls.","Show zoom controls when hovering over or focusing a diagram.","Always show zoom controls."],"default":"onHoverOrFocus"},"markdown-mermaid.resizable":{"type":"boolean","default":true,"description":"Allow diagrams to be resized vertically by dragging the bottom edge."},"markdown-mermaid.maxHeight":{"type":"string","default":"","markdownDescription":"Maximum height for diagrams. Must be a CSS value with units such as `80vh` or `400px`. Leave empty to try to automatically size diagrams based on their content."}}},"markdown.previewScripts":[{"path":"./markdown-preview-out/index.js","type":"module"}],"notebookRenderer":[{"id":"vscode.markdown-it.mermaid-extension","displayName":"Markdown-It Mermaid Renderer","requiresMessaging":"optional","entrypoint":{"extends":"vscode.markdown-it-renderer","path":"./notebook-out/index.js"}}],"markdown.markdownItPlugins":true,"chatOutputRenderers":[{"viewType":"vscode.mermaid-markdown-features.chatOutputItem","mimeTypes":["text/vnd.mermaid"],"codeBlockLanguageIdentifiers":["mermaid"]}],"languageModelTools":[{"name":"renderMermaidDiagram","displayName":"Mermaid Renderer","toolReferenceName":"renderMermaidDiagram","legacyToolReferenceFullNames":["vscode.mermaid-chat-features/renderMermaidDiagram"],"canBeReferencedInPrompt":true,"modelDescription":"Renders a Mermaid diagram from Mermaid.js markup.","userDescription":"Render a Mermaid.js diagram from markup.","when":"chatSessionType == local","inputSchema":{"type":"object","properties":{"markup":{"type":"string","description":"The mermaid diagram markup to render as a Mermaid diagram. This should only be the markup of the diagram. Do not include a wrapping code block."},"title":{"type":"string","description":"A short title that describes the diagram."}}}}]},"overrides":{"lodash-es":"4.18.1"},"allowScripts":{"fsevents@2.3.3":true},"originalEnabledApiProposals":["chatOutputRenderer","chatParticipantPrivate"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/mermaid-markdown-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.microsoft-authentication"},"manifest":{"name":"microsoft-authentication","publisher":"vscode","license":"MIT","displayName":"Microsoft Account","description":"Microsoft authentication provider","version":"0.0.1","engines":{"vscode":"^1.42.0"},"icon":"media/icon.png","categories":["Other"],"activationEvents":[],"enabledApiProposals":["nativeWindowHandle","authIssuers","authenticationChallenges"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":"limited","restrictedConfigurations":["microsoft-sovereign-cloud.environment","microsoft-sovereign-cloud.customEnvironment"]}},"extensionKind":["ui","workspace"],"contributes":{"authentication":[{"label":"Microsoft","id":"microsoft","authorizationServerGlobs":["https://login.microsoftonline.com/*","https://login.microsoftonline.com/*/v2.0"]},{"label":"Microsoft Sovereign Cloud","id":"microsoft-sovereign-cloud"}],"configuration":[{"title":"Microsoft Sovereign Cloud","properties":{"microsoft-sovereign-cloud.environment":{"type":"string","markdownDescription":"The Sovereign Cloud to use for authentication. If you select `custom`, you must also set the `#microsoft-sovereign-cloud.customEnvironment#` setting.","enum":["ChinaCloud","USGovernment","custom"],"enumDescriptions":["Azure China","Azure US Government","A custom Microsoft Sovereign Cloud"]},"microsoft-sovereign-cloud.customEnvironment":{"type":"object","additionalProperties":true,"markdownDescription":"The custom configuration for the Sovereign Cloud to use with the Microsoft Sovereign Cloud authentication provider. This along with setting `#microsoft-sovereign-cloud.environment#` to `custom` is required to use this feature.","properties":{"name":{"type":"string","description":"The name of the custom Sovereign Cloud."},"portalUrl":{"type":"string","description":"The portal URL for the custom Sovereign Cloud."},"managementEndpointUrl":{"type":"string","description":"The management endpoint for the custom Sovereign Cloud."},"resourceManagerEndpointUrl":{"type":"string","description":"The resource manager endpoint for the custom Sovereign Cloud."},"activeDirectoryEndpointUrl":{"type":"string","description":"The Active Directory endpoint for the custom Sovereign Cloud."},"activeDirectoryResourceId":{"type":"string","description":"The Active Directory resource ID for the custom Sovereign Cloud."}},"required":["name","portalUrl","managementEndpointUrl","resourceManagerEndpointUrl","activeDirectoryEndpointUrl","activeDirectoryResourceId"]}}},{"title":"Microsoft","properties":{"microsoft-authentication.implementation":{"type":"string","default":"msal","enum":["msal","msal-no-broker"],"enumDescriptions":["Use the Microsoft Authentication Library (MSAL) to sign in with a Microsoft account.","Use the Microsoft Authentication Library (MSAL) to sign in with a Microsoft account using a browser. This is useful if you are having issues with the native broker."],"markdownDescription":"The authentication implementation to use for signing in with a Microsoft account.","tags":["onExP"]}}}]},"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","main":"./dist/extension.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"allowScripts":{"@azure/msal-node-runtime@0.20.1":true,"@azure/msal-node-extensions@5.3.2":true},"originalEnabledApiProposals":["nativeWindowHandle","authIssuers","authenticationChallenges"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/microsoft-authentication","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.js-debug"},"manifest":{"name":"js-debug","displayName":"JavaScript Debugger","version":"1.117.0","publisher":"ms-vscode","author":{"name":"Microsoft Corporation"},"keywords":["pwa","javascript","node","chrome","debugger"],"description":"An extension for debugging Node.js programs and Chrome.","license":"MIT","engines":{"vscode":"^1.80.0","node":">=10"},"icon":"resources/logo.png","categories":["Debuggers"],"private":true,"repository":{"type":"git","url":"https://github.com/Microsoft/vscode-pwa.git"},"bugs":{"url":"https://github.com/Microsoft/vscode-pwa/issues"},"main":"./src/extension.js","enabledApiProposals":["portsAttributes","workspaceTrust","tunnels","browser"],"extensionKind":["workspace"],"overrides":{"serialize-javascript":">=7.0.5"},"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":"limited","description":"Trust is required to debug code in this workspace."}},"activationEvents":["onDebugDynamicConfigurations","onDebugInitialConfigurations","onFileSystem:jsDebugNetworkFs","onDebugResolve:pwa-node","onDebugResolve:node-terminal","onDebugResolve:pwa-extensionHost","onDebugResolve:pwa-chrome","onDebugResolve:pwa-msedge","onDebugResolve:pwa-editor-browser","onDebugResolve:node","onDebugResolve:chrome","onDebugResolve:extensionHost","onDebugResolve:msedge","onDebugResolve:editor-browser","onCommand:extension.js-debug.clearAutoAttachVariables","onCommand:extension.js-debug.setAutoAttachVariables","onCommand:extension.js-debug.autoAttachToProcess","onCommand:extension.js-debug.pickNodeProcess","onCommand:extension.js-debug.requestCDPProxy","onCommand:extension.js-debug.completion.nodeTool"],"contributes":{"menus":{"commandPalette":[{"command":"extension.js-debug.prettyPrint","title":"Pretty print for debugging","when":"debugType == pwa-extensionHost && debugState == stopped || debugType == node-terminal && debugState == stopped || debugType == pwa-node && debugState == stopped || debugType == pwa-chrome && debugState == stopped || debugType == pwa-msedge && debugState == stopped || debugType == pwa-editor-browser && debugState == stopped"},{"command":"extension.js-debug.startProfile","title":"Take Performance Profile","when":"debugType == pwa-extensionHost && inDebugMode && !jsDebugIsProfiling || debugType == node-terminal && inDebugMode && !jsDebugIsProfiling || debugType == pwa-node && inDebugMode && !jsDebugIsProfiling || debugType == pwa-chrome && inDebugMode && !jsDebugIsProfiling || debugType == pwa-msedge && inDebugMode && !jsDebugIsProfiling || debugType == pwa-editor-browser && inDebugMode && !jsDebugIsProfiling"},{"command":"extension.js-debug.stopProfile","title":"Stop Performance Profile","when":"debugType == pwa-extensionHost && inDebugMode && jsDebugIsProfiling || debugType == node-terminal && inDebugMode && jsDebugIsProfiling || debugType == pwa-node && inDebugMode && jsDebugIsProfiling || debugType == pwa-chrome && inDebugMode && jsDebugIsProfiling || debugType == pwa-msedge && inDebugMode && jsDebugIsProfiling || debugType == pwa-editor-browser && inDebugMode && jsDebugIsProfiling"},{"command":"extension.js-debug.revealPage","when":"false"},{"command":"extension.js-debug.debugLink","title":"Open Link","when":"!isWeb"},{"command":"extension.js-debug.createDiagnostics","title":"Diagnose Breakpoint Problems","when":"debugType == pwa-extensionHost && inDebugMode || debugType == node-terminal && inDebugMode || debugType == pwa-node && inDebugMode || debugType == pwa-chrome && inDebugMode || debugType == pwa-msedge && inDebugMode || debugType == pwa-editor-browser && inDebugMode"},{"command":"extension.js-debug.getDiagnosticLogs","title":"Save Diagnostic JS Debug Logs","when":"debugType == pwa-extensionHost && inDebugMode || debugType == node-terminal && inDebugMode || debugType == pwa-node && inDebugMode || debugType == pwa-chrome && inDebugMode || debugType == pwa-msedge && inDebugMode || debugType == pwa-editor-browser && inDebugMode"},{"command":"extension.js-debug.openEdgeDevTools","title":"Open Browser Devtools","when":"debugType == pwa-msedge"},{"command":"extension.js-debug.callers.add","title":"Exclude caller from pausing in the current location","when":"debugType == pwa-extensionHost && debugState == \"stopped\" || debugType == node-terminal && debugState == \"stopped\" || debugType == pwa-node && debugState == \"stopped\" || debugType == pwa-chrome && debugState == \"stopped\" || debugType == pwa-msedge && debugState == \"stopped\" || debugType == pwa-editor-browser && debugState == \"stopped\""},{"command":"extension.js-debug.callers.goToCaller","when":"false"},{"command":"extension.js-debug.callers.gotToTarget","when":"false"},{"command":"extension.js-debug.network.copyUri","when":"false"},{"command":"extension.js-debug.network.openBody","when":"false"},{"command":"extension.js-debug.network.openBodyInHex","when":"false"},{"command":"extension.js-debug.network.replayXHR","when":"false"},{"command":"extension.js-debug.network.viewRequest","when":"false"},{"command":"extension.js-debug.network.clear","when":"false"},{"command":"extension.js-debug.enableSourceMapStepping","when":"jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.disableSourceMapStepping","when":"!jsDebugIsMapSteppingDisabled"}],"debug/callstack/context":[{"command":"extension.js-debug.revealPage","group":"navigation","when":"debugType == pwa-chrome && callStackItemType == 'session' || debugType == pwa-msedge && callStackItemType == 'session' || debugType == pwa-editor-browser && callStackItemType == 'session'"},{"command":"extension.js-debug.toggleSkippingFile","group":"navigation","when":"debugType == pwa-extensionHost && callStackItemType == 'session' || debugType == node-terminal && callStackItemType == 'session' || debugType == pwa-node && callStackItemType == 'session' || debugType == pwa-chrome && callStackItemType == 'session' || debugType == pwa-msedge && callStackItemType == 'session' || debugType == pwa-editor-browser && callStackItemType == 'session'"},{"command":"extension.js-debug.startProfile","group":"navigation","when":"debugType == pwa-extensionHost && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == node-terminal && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-node && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-chrome && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-msedge && !jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-editor-browser && !jsDebugIsProfiling && callStackItemType == 'session'"},{"command":"extension.js-debug.stopProfile","group":"navigation","when":"debugType == pwa-extensionHost && jsDebugIsProfiling && callStackItemType == 'session' || debugType == node-terminal && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-node && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-chrome && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-msedge && jsDebugIsProfiling && callStackItemType == 'session' || debugType == pwa-editor-browser && jsDebugIsProfiling && callStackItemType == 'session'"},{"command":"extension.js-debug.startProfile","group":"inline","when":"debugType == pwa-extensionHost && !jsDebugIsProfiling || debugType == node-terminal && !jsDebugIsProfiling || debugType == pwa-node && !jsDebugIsProfiling || debugType == pwa-chrome && !jsDebugIsProfiling || debugType == pwa-msedge && !jsDebugIsProfiling || debugType == pwa-editor-browser && !jsDebugIsProfiling"},{"command":"extension.js-debug.stopProfile","group":"inline","when":"debugType == pwa-extensionHost && jsDebugIsProfiling || debugType == node-terminal && jsDebugIsProfiling || debugType == pwa-node && jsDebugIsProfiling || debugType == pwa-chrome && jsDebugIsProfiling || debugType == pwa-msedge && jsDebugIsProfiling || debugType == pwa-editor-browser && jsDebugIsProfiling"},{"command":"extension.js-debug.callers.add","when":"debugType == pwa-extensionHost && callStackItemType == 'stackFrame' || debugType == node-terminal && callStackItemType == 'stackFrame' || debugType == pwa-node && callStackItemType == 'stackFrame' || debugType == pwa-chrome && callStackItemType == 'stackFrame' || debugType == pwa-msedge && callStackItemType == 'stackFrame' || debugType == pwa-editor-browser && callStackItemType == 'stackFrame'"}],"debug/toolBar":[{"command":"extension.js-debug.stopProfile","when":"debugType == pwa-extensionHost && jsDebugIsProfiling || debugType == node-terminal && jsDebugIsProfiling || debugType == pwa-node && jsDebugIsProfiling || debugType == pwa-chrome && jsDebugIsProfiling || debugType == pwa-msedge && jsDebugIsProfiling || debugType == pwa-editor-browser && jsDebugIsProfiling"},{"command":"extension.js-debug.openEdgeDevTools","when":"debugType == pwa-msedge"},{"command":"extension.js-debug.enableSourceMapStepping","when":"jsDebugIsMapSteppingDisabled"}],"view/title":[{"command":"extension.js-debug.addCustomBreakpoints","when":"view == jsBrowserBreakpoints","group":"navigation"},{"command":"extension.js-debug.removeAllCustomBreakpoints","when":"view == jsBrowserBreakpoints","group":"navigation"},{"command":"extension.js-debug.callers.removeAll","group":"navigation","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.disableSourceMapStepping","group":"navigation","when":"debugType == pwa-extensionHost && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == node-terminal && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-node && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-chrome && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-msedge && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled || debugType == pwa-editor-browser && view == workbench.debug.callStackView && !jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.enableSourceMapStepping","group":"navigation","when":"debugType == pwa-extensionHost && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == node-terminal && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-node && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-chrome && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-msedge && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled || debugType == pwa-editor-browser && view == workbench.debug.callStackView && jsDebugIsMapSteppingDisabled"},{"command":"extension.js-debug.network.clear","group":"navigation","when":"view == jsDebugNetworkTree"}],"view/item/context":[{"command":"extension.js-debug.addXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.editXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint","group":"inline"},{"command":"extension.js-debug.editXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.removeXHRBreakpoint","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint","group":"inline"},{"command":"extension.js-debug.removeXHRBreakpoint","when":"view == jsBrowserBreakpoints && viewItem == xhrBreakpoint"},{"command":"extension.js-debug.addXHRBreakpoints","when":"view == jsBrowserBreakpoints && viewItem == xhrCategory","group":"inline"},{"command":"extension.js-debug.callers.goToCaller","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.callers.gotToTarget","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.callers.remove","group":"inline","when":"view == jsExcludedCallers"},{"command":"extension.js-debug.network.viewRequest","group":"inline@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.openBody","group":"body@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.openBodyInHex","group":"body@2","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.copyUri","group":"other@1","when":"view == jsDebugNetworkTree"},{"command":"extension.js-debug.network.replayXHR","group":"other@2","when":"view == jsDebugNetworkTree"}],"editor/title":[{"command":"extension.js-debug.prettyPrint","group":"navigation","when":"jsDebugCanPrettyPrint"}]},"breakpoints":[{"language":"javascript"},{"language":"typescript"},{"language":"typescriptreact"},{"language":"javascriptreact"},{"language":"fsharp"},{"language":"html"},{"language":"wat"},{"language":"c"},{"language":"cpp"},{"language":"rust"},{"language":"zig"}],"debuggers":[{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","type":"string"},"attachExistingChildren":{"default":false,"description":"Whether to attempt to attach to already-spawned child processes.","type":"boolean"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"continueOnAttach":{"default":true,"markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","type":"boolean"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"port":{"default":9229,"description":"Debug port to attach to. Default is 9229.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"processId":{"default":"${command:PickProcess}","description":"ID of process to attach to.","type":"string"},"remoteHostHeader":{"description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header.","type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"websocketAddress":{"description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port.","type":"string"}}},"launch":{"properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[],"deprecated":"Please use type node instead","label":"Node.js","languages":["javascript","typescript","javascriptreact","typescriptreact"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-node","variables":{"PickProcess":"extension.js-debug.pickNodeProcess"}},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","type":"string"},"attachExistingChildren":{"default":false,"description":"Whether to attempt to attach to already-spawned child processes.","type":"boolean"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"continueOnAttach":{"default":true,"markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","type":"boolean"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"port":{"default":9229,"description":"Debug port to attach to. Default is 9229.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"processId":{"default":"${command:PickProcess}","description":"ID of process to attach to.","type":"string"},"remoteHostHeader":{"description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header.","type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"websocketAddress":{"description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port.","type":"string"}}},"launch":{"properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[{"body":{"name":"${1:Attach}","port":9229,"request":"attach","skipFiles":["/**"],"type":"node"},"description":"Attach to a running node program","label":"Node.js: Attach"},{"body":{"address":"${2:TCP/IP address of process to be debugged}","localRoot":"^\"\\${workspaceFolder}\"","name":"${1:Attach to Remote}","port":9229,"remoteRoot":"${3:Absolute path to the remote directory containing the program}","request":"attach","skipFiles":["/**"],"type":"node"},"description":"Attach to the debug port of a remote node program","label":"Node.js: Attach to Remote Program"},{"body":{"name":"${1:Attach by Process ID}","processId":"^\"\\${command:PickProcess}\"","request":"attach","skipFiles":["/**"],"type":"node"},"description":"Open process picker to select node process to attach to","label":"Node.js: Attach to Process"},{"body":{"name":"${2:Launch Program}","program":"^\"\\${workspaceFolder}/${1:app.js}\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Launch a node program in debug mode","label":"Node.js: Launch Program"},{"body":{"name":"${1:Launch via NPM}","request":"launch","runtimeArgs":["run-script","debug"],"runtimeExecutable":"npm","skipFiles":["/**"],"type":"node"},"label":"Node.js: Launch via npm","markdownDescription":"Launch a node program through an npm `debug` script"},{"body":{"console":"integratedTerminal","internalConsoleOptions":"neverOpen","name":"nodemon","program":"^\"\\${workspaceFolder}/${1:app.js}\"","request":"launch","restart":true,"runtimeExecutable":"nodemon","skipFiles":["/**"],"type":"node"},"description":"Use nodemon to relaunch a debug session on source changes","label":"Node.js: Nodemon Setup"},{"body":{"args":["-u","tdd","--timeout","999999","--colors","^\"\\${workspaceFolder}/${1:test}\""],"internalConsoleOptions":"openOnSessionStart","name":"Mocha Tests","program":"^\"mocha\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Debug mocha tests","label":"Node.js: Mocha Tests"},{"body":{"args":["${1:generator}"],"console":"integratedTerminal","internalConsoleOptions":"neverOpen","name":"Yeoman ${1:generator}","program":"^\"\\${workspaceFolder}/node_modules/yo/lib/cli.js\"","request":"launch","skipFiles":["/**"],"type":"node"},"label":"Node.js: Yeoman generator","markdownDescription":"Debug yeoman generator (install by running `npm link` in project folder)"},{"body":{"args":["${1:task}"],"name":"Gulp ${1:task}","program":"^\"\\${workspaceFolder}/node_modules/gulp/bin/gulp.js\"","request":"launch","skipFiles":["/**"],"type":"node"},"description":"Debug gulp task (make sure to have a local gulp installed in your project)","label":"Node.js: Gulp task"},{"body":{"name":"Electron Main","program":"^\"\\${workspaceFolder}/main.js\"","request":"launch","runtimeExecutable":"^\"electron\"","skipFiles":["/**"],"type":"node"},"description":"Debug the Electron main process","label":"Node.js: Electron Main"}],"label":"Node.js","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"node","variables":{"PickProcess":"extension.js-debug.pickNodeProcess"}},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}}}},"configurationSnippets":[{"body":{"command":"npm start","name":"Run npm start","request":"launch","type":"node-terminal"},"description":"Run \"npm start\" in a debug terminal","label":"Run \"npm start\" in a debug terminal"}],"label":"JavaScript Debug Terminal","languages":[],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"node-terminal"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"args":{"default":["--extensionDevelopmentPath=${workspaceFolder}"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":"array"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"debugWebWorkerHost":{"default":true,"markdownDescription":"Configures whether we should try to attach to the web worker extension host.","type":["boolean"]},"debugWebviews":{"default":true,"markdownDescription":"Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.","type":["boolean"]},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"rendererDebugOptions":{"default":{"webRoot":"${workspaceFolder}"},"markdownDescription":"Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.","properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"type":"object"},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeExecutable":{"default":"node","markdownDescription":"Absolute path to VS Code.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"testConfiguration":{"default":"${workspaceFolder}/.vscode-test.js","markdownDescription":"Path to a test configuration file for the [test CLI](https://code.visualstudio.com/api/working-with-extensions/testing-extension#quick-setup-the-test-cli).","type":"string"},"testConfigurationLabel":{"default":"","markdownDescription":"A single configuration to run from the file. If not specified, you may be asked to pick.","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"required":[]}},"configurationSnippets":[],"deprecated":"Please use type extensionHost instead","label":"VS Code Extension Development","languages":["javascript","typescript","javascriptreact","typescriptreact"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-extensionHost"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"launch":{"properties":{"args":{"default":["--extensionDevelopmentPath=${workspaceFolder}"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":"array"},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"debugWebWorkerHost":{"default":true,"markdownDescription":"Configures whether we should try to attach to the web worker extension host.","type":["boolean"]},"debugWebviews":{"default":true,"markdownDescription":"Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.","type":["boolean"]},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"rendererDebugOptions":{"default":{"webRoot":"${workspaceFolder}"},"markdownDescription":"Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.","properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"type":"object"},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeExecutable":{"default":"node","markdownDescription":"Absolute path to VS Code.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"testConfiguration":{"default":"${workspaceFolder}/.vscode-test.js","markdownDescription":"Path to a test configuration file for the [test CLI](https://code.visualstudio.com/api/working-with-extensions/testing-extension#quick-setup-the-test-cli).","type":"string"},"testConfigurationLabel":{"default":"","markdownDescription":"A single configuration to run from the file. If not specified, you may be asked to pick.","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"required":[]}},"configurationSnippets":[{"body":{"args":["^\"--extensionDevelopmentPath=\\${workspaceFolder}\""],"name":"Launch Extension","outFiles":["^\"\\${workspaceFolder}/out/**/*.js\""],"preLaunchTask":"npm","request":"launch","type":"extensionHost"},"description":"Launch a VS Code extension in debug mode","label":"VS Code Extension Development"}],"label":"VS Code Extension Development","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"extensionHost"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":0,"description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[],"deprecated":"Please use type chrome instead","label":"Web App (Chrome)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-chrome"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":0,"description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[{"body":{"name":"Launch Chrome","request":"launch","type":"chrome","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch Chrome to debug a URL","label":"Chrome: Launch"},{"body":{"name":"Attach to Chrome","port":9222,"request":"attach","type":"chrome","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an instance of Chrome already in debug mode","label":"Chrome: Attach"}],"label":"Web App (Chrome)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"chrome"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":{"pipeName":"MyPipeName"},"description":"An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"","properties":{"pipeName":{"type":"string"}},"type":"object"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"address":{"default":"localhost","description":"When debugging webviews, the IP address or hostname the webview is listening on. Will be automatically discovered if not set.","type":"string"},"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"When debugging webviews, the port the webview debugger is listening on. Will be automatically discovered if not set.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":false,"description":"When 'true', the debugger will treat the runtime executable as a host application that contains a WebView allowing you to debug the WebView script content.","type":"boolean"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[],"deprecated":"Please use type msedge instead","label":"Web App (Edge)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-msedge"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"address":{"default":"localhost","description":"IP address or hostname the debugged browser is listening on.","type":"string"},"browserAttachLocation":{"default":null,"description":"Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}],"tags":["setup"]},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":false,"markdownDescription":"Whether to reconnect if the browser connection is closed","type":"boolean"},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"targetSelection":{"default":"automatic","enum":["pick","automatic"],"markdownDescription":"Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").","type":"string"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":{"pipeName":"MyPipeName"},"description":"An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"","properties":{"pipeName":{"type":"string"}},"type":"object"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"address":{"default":"localhost","description":"When debugging webviews, the IP address or hostname the webview is listening on. Will be automatically discovered if not set.","type":"string"},"browserLaunchLocation":{"default":null,"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","oneOf":[{"type":"null"},{"enum":["ui","workspace"],"type":"string"}]},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"cleanUp":{"default":"wholeBrowser","description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","enum":["wholeBrowser","onlyTab"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":null,"description":"Optional working directory for the runtime executable.","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"default":{},"description":"Optional dictionary of environment key/value pairs for the browser.","type":"object"},"file":{"default":"${workspaceFolder}/index.html","description":"A local html file to open in the browser","tags":["setup"],"type":"string"},"includeDefaultArgs":{"default":true,"description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","type":"boolean"},"includeLaunchArgs":{"default":true,"description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"port":{"default":9229,"description":"When debugging webviews, the port the webview debugger is listening on. Will be automatically discovered if not set.","type":"number"},"profileStartup":{"default":true,"description":"If true, will start profiling soon as the process launches","type":"boolean"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"type":"array"},"runtimeExecutable":{"default":"stable","description":"Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.","type":["string","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"useWebView":{"default":false,"description":"When 'true', the debugger will treat the runtime executable as a host application that contains a WebView allowing you to debug the WebView script content.","type":"boolean"},"userDataDir":{"default":true,"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","type":["string","boolean"]},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}}},"configurationSnippets":[{"body":{"name":"Launch Edge","request":"launch","type":"msedge","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch Edge to debug a URL","label":"Edge: Launch"},{"body":{"name":"Attach to Edge","port":9222,"request":"attach","type":"msedge","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an instance of Edge already in debug mode","label":"Edge: Attach"}],"label":"Web App (Edge)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"msedge"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"required":["url"]}},"configurationSnippets":[],"deprecated":"Please use type editor-browser instead","label":"Web App (Integrated Browser)","languages":["javascript","typescript","javascriptreact","typescriptreact","html","css","coffeescript","handlebars","vue"],"strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"pwa-editor-browser","when":"!isWeb"},{"aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","configurationAttributes":{"attach":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}}},"launch":{"properties":{"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"disableNetworkCache":{"default":true,"description":"Controls whether to skip the network cache for each request","type":"boolean"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"inspectUri":{"default":null,"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","type":["string","null"]},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pathMapping":{"default":{},"description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","type":"object"},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"perScriptSourcemaps":{"default":"auto","description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.","enum":["yes","no","auto"],"type":"string"},"resolveSourceMapLocations":{"default":null,"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"server":{"oneOf":[{"additionalProperties":false,"default":{"program":"node my-server.js"},"description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","properties":{"args":{"default":[],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"tags":["setup"],"type":["array","string"]},"attachSimplePort":{"default":9229,"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","oneOf":[{"type":"integer"},{"pattern":"^\\${.*}$","type":"string"}]},"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"console":{"default":"internalConsole","description":"Where to launch the debug target.","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"type":"string"},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"experimentalNetworking":{"default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"],"type":"string"},"killBehavior":{"default":"forceful","enum":["forceful","polite","none"],"markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"profileStartup":{"default":true,"description":"If true, will start profiling as soon as the process launches","type":"boolean"},"program":{"default":"","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","tags":["setup"],"type":"string"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"restart":{"default":true,"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","oneOf":[{"type":"boolean"},{"properties":{"delay":{"default":1000,"minimum":0,"type":"number"},"maxAttempts":{"default":10,"minimum":0,"type":"number"}},"type":"object"}]},"runtimeArgs":{"default":[],"description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"tags":["setup"],"type":"array"},"runtimeExecutable":{"default":"node","markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","type":["string","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"runtimeVersion":{"default":"default","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","type":"string"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"stopOnEntry":{"default":true,"description":"Automatically stop program after launch.","type":["boolean","string"]},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"},{"additionalProperties":false,"default":{"program":"npm start"},"description":"JavaScript Debug Terminal","properties":{"autoAttachChildProcesses":{"default":true,"description":"Attach debugger to new child processes automatically.","type":"boolean"},"cascadeTerminateToConfigurations":{"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped.","items":{"type":"string","uniqueItems":true},"type":"array"},"command":{"default":"npm start","description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","tags":["setup"],"type":["string","null"]},"customDescriptionGenerator":{"description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ","type":"string"},"customPropertiesGenerator":{"deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181","type":"string"},"cwd":{"default":"${workspaceFolder}","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"],"type":"string"},"enableContentValidation":{"default":true,"description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example.","type":"boolean"},"enableDWARF":{"default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function.","type":"boolean"},"env":{"additionalProperties":{"type":["string","null"]},"default":{},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","tags":["setup"],"type":"object"},"envFile":{"default":"${workspaceFolder}/.env","description":"Absolute path to a file containing environment variable definitions.","type":"string"},"localRoot":{"default":null,"description":"Path to the local directory containing the program.","type":["string","null"]},"nodeVersionHint":{"default":12,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","minimum":8,"type":"number"},"outFiles":{"default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","items":{"type":"string"},"tags":["setup"],"type":["array"]},"outputCapture":{"default":"console","enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`."},"pauseForSourceMap":{"default":false,"markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","type":"boolean"},"remoteRoot":{"default":null,"description":"Absolute path to the remote directory containing the program.","type":["string","null"]},"resolveSourceMapLocations":{"default":["${workspaceFolder}/**","!**/node_modules/**"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","items":{"type":"string"},"type":["array","null"]},"runtimeSourcemapPausePatterns":{"default":[],"items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","type":"array"},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]}},"type":"object"}]},"showAsyncStacks":{"default":true,"description":"Show the async calls that led to the current call stack.","oneOf":[{"type":"boolean"},{"properties":{"onAttach":{"default":32,"type":"number"}},"required":["onAttach"],"type":"object"},{"properties":{"onceBreakpointResolved":{"default":32,"type":"number"}},"required":["onceBreakpointResolved"],"type":"object"}]},"skipFiles":{"default":["${/**"],"description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","type":"array"},"smartStep":{"default":true,"description":"Automatically step through generated code that cannot be mapped back to the original source.","type":"boolean"},"sourceMapPathOverrides":{"default":{"meteor://💻app/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","webpack://?:*/*":"${workspaceFolder}/*"},"description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","type":"object"},"sourceMapRenames":{"default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers.","type":"boolean"},"sourceMaps":{"default":true,"description":"Use JavaScript source maps (if they exist).","type":"boolean"},"timeout":{"default":10000,"description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","type":"number"},"timeouts":{"additionalProperties":false,"default":{},"description":"Timeouts for several debugger operations.","markdownDescription":"Timeouts for several debugger operations.","properties":{"hoverEvaluation":{"default":500,"description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","type":"number"},"sourceMapCumulativePause":{"default":1000,"description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","type":"number"},"sourceMapMinPause":{"default":1000,"description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","type":"number"}},"type":"object"},"trace":{"default":true,"description":"Configures what diagnostic output is produced.","oneOf":[{"description":"Trace may be set to 'true' to write diagnostic logs to the disk.","type":"boolean"},{"additionalProperties":false,"properties":{"logFile":{"description":"Configures where on disk logs are written.","type":["string","null"]},"stdio":{"description":"Whether to return trace data from the launched application or browser.","type":"boolean"}},"type":"object"}]},"url":{"default":"http://localhost:8080","description":"Will search for a tab with this exact url and attach to it, if found","tags":["setup"],"type":"string"},"urlFilter":{"default":"","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","type":"string"},"vueComponentPaths":{"default":["${workspaceFolder}/**/*.vue"],"description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","type":"array"},"webRoot":{"default":"${workspaceFolder}","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","tags":["setup"],"type":"string"}},"required":["url"]}},"configurationSnippets":[{"body":{"name":"Launch Integrated Browser","request":"launch","type":"editor-browser","url":"http://localhost:8080","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Launch a VS Code integrated browser to debug a URL","label":"Integrated Browser: Launch"},{"body":{"name":"Attach to Integrated Browser","request":"attach","type":"editor-browser","webRoot":"^\"${2:\\${workspaceFolder\\}}\""},"description":"Attach to an open VS Code integrated browser","label":"Integrated Browser: Attach"}],"label":"Web App (Integrated Browser)","strings":{"unverifiedBreakpoints":"Some of your breakpoints could not be set. If you're having an issue, you can [troubleshoot your launch configuration](command:extension.js-debug.createDiagnostics)."},"type":"editor-browser","when":"!isWeb"}],"commands":[{"command":"extension.js-debug.prettyPrint","title":"Pretty print for debugging","category":"Debug","icon":"$(json)"},{"command":"extension.js-debug.toggleSkippingFile","title":"Toggle Skipping this File","category":"Debug"},{"command":"extension.js-debug.addCustomBreakpoints","title":"Toggle Event Listener Breakpoints","icon":"$(add)"},{"command":"extension.js-debug.removeAllCustomBreakpoints","title":"Remove All Event Listener Breakpoints","icon":"$(close-all)"},{"command":"extension.js-debug.addXHRBreakpoints","title":"Add XHR/fetch Breakpoint","icon":"$(add)"},{"command":"extension.js-debug.removeXHRBreakpoint","title":"Remove XHR/fetch Breakpoint","icon":"$(remove)"},{"command":"extension.js-debug.editXHRBreakpoints","title":"Edit XHR/fetch Breakpoint","icon":"$(edit)"},{"command":"extension.pwa-node-debug.attachNodeProcess","title":"Attach to Node Process","category":"Debug"},{"command":"extension.js-debug.npmScript","title":"Debug npm Script","category":"Debug"},{"command":"extension.js-debug.createDebuggerTerminal","title":"JavaScript Debug Terminal","category":"Debug"},{"command":"extension.js-debug.startProfile","title":"Take Performance Profile","category":"Debug","icon":"$(record)"},{"command":"extension.js-debug.stopProfile","title":"Stop Performance Profile","category":"Debug","icon":"resources/dark/stop-profiling.svg"},{"command":"extension.js-debug.revealPage","title":"Focus Tab","category":"Debug"},{"command":"extension.js-debug.debugLink","title":"Open Link","category":"Debug"},{"command":"extension.js-debug.createDiagnostics","title":"Diagnose Breakpoint Problems","category":"Debug"},{"command":"extension.js-debug.getDiagnosticLogs","title":"Save Diagnostic JS Debug Logs","category":"Debug"},{"command":"extension.node-debug.startWithStopOnEntry","title":"Start Debugging and Stop on Entry","category":"Debug"},{"command":"extension.js-debug.openEdgeDevTools","title":"Open Browser Devtools","icon":"$(inspect)","category":"Debug"},{"command":"extension.js-debug.callers.add","title":"Exclude Caller","category":"Debug"},{"command":"extension.js-debug.callers.remove","title":"Remove excluded caller","icon":"$(close)"},{"command":"extension.js-debug.callers.removeAll","title":"Remove all excluded callers","icon":"$(clear-all)"},{"command":"extension.js-debug.callers.goToCaller","title":"Go to caller location","icon":"$(call-outgoing)"},{"command":"extension.js-debug.callers.gotToTarget","title":"Go to target location","icon":"$(call-incoming)"},{"command":"extension.js-debug.enableSourceMapStepping","title":"Enable Source Mapped Stepping","icon":"$(compass-dot)"},{"command":"extension.js-debug.disableSourceMapStepping","title":"Disable Source Mapped Stepping","icon":"$(compass)"},{"command":"extension.js-debug.network.viewRequest","title":"View Request as cURL","icon":"$(arrow-right)"},{"command":"extension.js-debug.network.clear","title":"Clear Network Log","icon":"$(clear-all)"},{"command":"extension.js-debug.network.openBody","title":"Open Response Body"},{"command":"extension.js-debug.network.openBodyInHex","title":"Open Response Body in Hex Editor"},{"command":"extension.js-debug.network.replayXHR","title":"Replay Request"},{"command":"extension.js-debug.network.copyUri","title":"Copy Request URL"}],"keybindings":[{"command":"extension.node-debug.startWithStopOnEntry","key":"F10","mac":"F10","when":"debugConfigurationType == pwa-node && !inDebugMode || debugConfigurationType == pwa-extensionHost && !inDebugMode || debugConfigurationType == node && !inDebugMode"},{"command":"extension.node-debug.startWithStopOnEntry","key":"F11","mac":"F11","when":"debugConfigurationType == pwa-node && !inDebugMode && activeViewlet == workbench.view.debug || debugConfigurationType == pwa-extensionHost && !inDebugMode && activeViewlet == workbench.view.debug || debugConfigurationType == node && !inDebugMode && activeViewlet == workbench.view.debug"}],"configuration":{"title":"JavaScript Debugger","properties":{"debug.javascript.codelens.npmScripts":{"enum":["top","all","never"],"default":"top","description":"Where a \"Run\" and \"Debug\" code lens should be shown in your npm scripts. It may be on \"all\", scripts, on \"top\" of the script section, or \"never\"."},"debug.javascript.terminalOptions":{"type":"object","description":"Default launch options for the JavaScript debug terminal and npm scripts.","default":{},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"command":{"type":["string","null"],"description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","default":"npm start","tags":["setup"]}}},"debug.javascript.automaticallyTunnelRemoteServer":{"type":"boolean","description":"When debugging a remote web app, configures whether to automatically tunnel the remote server to your local machine.","default":true},"debug.javascript.debugByLinkOptions":{"default":"on","description":"Options used when debugging open links clicked from inside the JavaScript Debug Terminal. Can be set to \"off\" to disable this behavior, or \"always\" to enable debugging in all terminals.","oneOf":[{"type":"string","enum":["on","off","always"]},{"type":"object","properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":null,"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"disableNetworkCache":{"type":"boolean","description":"Controls whether to skip the network cache for each request","default":true},"pathMapping":{"type":"object","description":"A mapping of URLs/paths to local folders, to resolve scripts in the Browser to scripts on disk","default":{}},"webRoot":{"type":"string","description":"This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"","default":"${workspaceFolder}","tags":["setup"]},"urlFilter":{"type":"string","description":"Will search for a page with this url and attach to it, if found. Can have * wildcards.","default":""},"url":{"type":"string","description":"Will search for a tab with this exact url and attach to it, if found","default":"http://localhost:8080","tags":["setup"]},"inspectUri":{"type":["string","null"],"description":"Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n","default":null},"vueComponentPaths":{"type":"array","description":"A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.","default":["${workspaceFolder}/**/*.vue"]},"server":{"oneOf":[{"type":"object","description":"Configures a web server to start up. Takes the same configuration as the 'node' launch task.","additionalProperties":false,"default":{"program":"node my-server.js"},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"program":{"type":"string","description":"Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.","default":"","tags":["setup"]},"stopOnEntry":{"type":["boolean","string"],"description":"Automatically stop program after launch.","default":true},"console":{"type":"string","enum":["internalConsole","integratedTerminal","externalTerminal"],"enumDescriptions":["VS Code Debug Console (which doesn't support to read input from a program)","VS Code's integrated terminal","External terminal that can be configured via user settings"],"description":"Where to launch the debug target.","default":"internalConsole"},"args":{"type":["array","string"],"description":"Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.","items":{"type":"string"},"default":[],"tags":["setup"]},"restart":{"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","properties":{"delay":{"type":"number","minimum":0,"default":1000},"maxAttempts":{"type":"number","minimum":0,"default":10}}}]},"runtimeExecutable":{"type":["string","null"],"markdownDescription":"Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.","default":"node"},"runtimeVersion":{"type":"string","markdownDescription":"Version of `node` runtime to use. Requires `nvm`.","default":"default"},"runtimeArgs":{"type":"array","description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"default":[],"tags":["setup"]},"profileStartup":{"type":"boolean","description":"If true, will start profiling as soon as the process launches","default":true},"attachSimplePort":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\${.*}$"}],"description":"If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.","default":9229},"killBehavior":{"type":"string","enum":["forceful","polite","none"],"default":"forceful","markdownDescription":"Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen."},"experimentalNetworking":{"type":"string","default":"auto","description":"Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.","enum":["auto","on","off"]}}},{"type":"object","description":"JavaScript Debug Terminal","additionalProperties":false,"default":{"program":"npm start"},"properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"command":{"type":["string","null"],"description":"Command to run in the launched terminal. If not provided, the terminal will open without launching a program.","default":"npm start","tags":["setup"]}}}]},"perScriptSourcemaps":{"type":"string","default":"auto","enum":["yes","no","auto"],"description":"Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate."},"port":{"type":"number","description":"Port for the browser to listen on. Defaults to \"0\", which will cause the browser to be debugged via pipes, which is generally more secure and should be chosen unless you need to attach to the browser from another tool.","default":0},"file":{"type":"string","description":"A local html file to open in the browser","default":"${workspaceFolder}/index.html","tags":["setup"]},"userDataDir":{"type":["string","boolean"],"description":"By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.","default":true},"includeDefaultArgs":{"type":"boolean","description":"Whether default browser launch arguments (to disable features that may make debugging harder) will be included in the launch.","default":true},"includeLaunchArgs":{"type":"boolean","description":"Advanced: whether any default launch/debugging arguments are set on the browser. The debugger will assume the browser will use pipe debugging such as that which is provided with `--remote-debugging-pipe`.","default":true},"runtimeExecutable":{"type":["string","null"],"description":"Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.","default":"stable"},"runtimeArgs":{"type":"array","description":"Optional arguments passed to the runtime executable.","items":{"type":"string"},"default":[]},"env":{"type":"object","description":"Optional dictionary of environment key/value pairs for the browser.","default":{}},"cwd":{"type":"string","description":"Optional working directory for the runtime executable.","default":null},"profileStartup":{"type":"boolean","description":"If true, will start profiling soon as the process launches","default":true},"cleanUp":{"type":"string","enum":["wholeBrowser","onlyTab"],"description":"What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.","default":"wholeBrowser"},"killBehavior":{"type":"string","enum":["forceful","polite","none"],"default":"forceful","markdownDescription":"Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen."},"browserLaunchLocation":{"description":"Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.","default":null,"oneOf":[{"type":"null"},{"type":"string","enum":["ui","workspace"]}]},"enabled":{"type":"string","enum":["on","off","always"]}}}]},"debug.javascript.pickAndAttachOptions":{"type":"object","default":{},"markdownDescription":"Default options used when debugging a process through the `Debug: Attach to Node.js Process` command","properties":{"resolveSourceMapLocations":{"type":["array","null"],"description":"A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.","default":["${workspaceFolder}/**","!**/node_modules/**"],"items":{"type":"string"}},"outFiles":{"type":["array"],"description":"If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.","default":["${workspaceFolder}/**/*.(m|c|)js","!**/node_modules/**"],"items":{"type":"string"},"tags":["setup"]},"pauseForSourceMap":{"type":"boolean","markdownDescription":"Whether to wait for source maps to load for each incoming script. This has a performance overhead, and might be safely disabled when running off of disk, so long as `rootPath` is not disabled.","default":false},"showAsyncStacks":{"description":"Show the async calls that led to the current call stack.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","required":["onAttach"],"properties":{"onAttach":{"type":"number","default":32}}},{"type":"object","required":["onceBreakpointResolved"],"properties":{"onceBreakpointResolved":{"type":"number","default":32}}}]},"skipFiles":{"type":"array","description":"An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`","default":["${/**"]},"smartStep":{"type":"boolean","description":"Automatically step through generated code that cannot be mapped back to the original source.","default":true},"sourceMaps":{"type":"boolean","description":"Use JavaScript source maps (if they exist).","default":true},"sourceMapRenames":{"type":"boolean","default":true,"description":"Whether to use the \"names\" mapping in sourcemaps. This requires requesting source content, which can be slow with certain debuggers."},"sourceMapPathOverrides":{"type":"object","description":"A set of mappings for rewriting the locations of source files from what the sourcemap says, to their locations on disk.","default":{"webpack://?:*/*":"${workspaceFolder}/*","webpack:///./~/*":"${workspaceFolder}/node_modules/*","meteor://💻app/*":"${workspaceFolder}/*"}},"timeout":{"type":"number","description":"Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.","default":10000},"timeouts":{"type":"object","description":"Timeouts for several debugger operations.","default":{},"properties":{"sourceMapMinPause":{"type":"number","description":"Minimum time in milliseconds spent waiting for each source-map to be processed when a script is being parsed","default":1000},"sourceMapCumulativePause":{"type":"number","description":"Extra time in milliseconds allowed per session to be spent waiting for source-maps to be processed, after the minimum time (sourceMapMinPause) has been exhausted","default":1000},"hoverEvaluation":{"type":"number","description":"Time until value evaluation for hovered symbols is aborted. If set to 0, hover evaluation does never time out.","default":500}},"additionalProperties":false,"markdownDescription":"Timeouts for several debugger operations."},"trace":{"description":"Configures what diagnostic output is produced.","default":true,"oneOf":[{"type":"boolean","description":"Trace may be set to 'true' to write diagnostic logs to the disk."},{"type":"object","additionalProperties":false,"properties":{"stdio":{"type":"boolean","description":"Whether to return trace data from the launched application or browser."},"logFile":{"type":["string","null"],"description":"Configures where on disk logs are written."}}}]},"outputCapture":{"enum":["console","std"],"markdownDescription":"From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.","default":"console"},"enableContentValidation":{"default":true,"type":"boolean","description":"Toggles whether we verify the contents of files on disk match the ones loaded in the runtime. This is useful in a variety of scenarios and required in some, but can cause issues if you have server-side transformation of scripts, for example."},"customDescriptionGenerator":{"type":"string","description":"Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n "},"customPropertiesGenerator":{"type":"string","deprecated":true,"description":"Customize the properties shown for an object in the debugger (local variables, etc...). Samples:\n 1. { ...this, extraProperty: '12345' } // Add an extraProperty 12345 to all objects\n 2. this.customProperties ? this.customProperties() : this // Use customProperties method if available, if not use the properties in this (the default properties)\n 3. function () { return this.customProperties ? this.customProperties() : this } // Use customDescription method if available, if not return the default properties\n\n Deprecated: This is a temporary implementation of this feature until we have time to implement it in the way described here: https://github.com/microsoft/vscode/issues/102181"},"cascadeTerminateToConfigurations":{"type":"array","items":{"type":"string","uniqueItems":true},"default":[],"description":"A list of debug sessions which, when this debug session is terminated, will also be stopped."},"enableDWARF":{"type":"boolean","default":true,"markdownDescription":"Toggles whether the debugger will try to read DWARF debug symbols from WebAssembly, which can be resource intensive. Requires the `ms-vscode.wasm-dwarf-debugging` extension to function."},"cwd":{"type":"string","description":"Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder","default":"${workspaceFolder}","docDefault":"localRoot || ${workspaceFolder}","tags":["setup"]},"localRoot":{"type":["string","null"],"description":"Path to the local directory containing the program.","default":null},"remoteRoot":{"type":["string","null"],"description":"Absolute path to the remote directory containing the program.","default":null},"autoAttachChildProcesses":{"type":"boolean","description":"Attach debugger to new child processes automatically.","default":true},"env":{"type":"object","additionalProperties":{"type":["string","null"]},"markdownDescription":"Environment variables passed to the program. The value `null` removes the variable from the environment.","default":{},"tags":["setup"]},"envFile":{"type":"string","description":"Absolute path to a file containing environment variable definitions.","default":"${workspaceFolder}/.env"},"runtimeSourcemapPausePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).","default":[]},"nodeVersionHint":{"type":"number","minimum":8,"description":"Allows you to explicitly specify the Node version that's running, which can be used to disable or enable certain behaviors in cases where the automatic version detection does not work.","default":12},"address":{"type":"string","description":"TCP/IP address of process to be debugged. Default is 'localhost'.","default":"localhost"},"port":{"description":"Debug port to attach to. Default is 9229.","default":9229,"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\${.*}$"}],"tags":["setup"]},"websocketAddress":{"type":"string","description":"Exact websocket address to attach to. If unspecified, it will be discovered from the address and port."},"remoteHostHeader":{"type":"string","description":"Explicit Host header to use when connecting to the websocket of inspector. If unspecified, the host header will be set to 'localhost'. This is useful when the inspector is running behind a proxy that only accept particular Host header."},"restart":{"description":"Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.","default":true,"oneOf":[{"type":"boolean"},{"type":"object","properties":{"delay":{"type":"number","minimum":0,"default":1000},"maxAttempts":{"type":"number","minimum":0,"default":10}}}]},"processId":{"type":"string","description":"ID of process to attach to.","default":"${command:PickProcess}"},"attachExistingChildren":{"type":"boolean","description":"Whether to attempt to attach to already-spawned child processes.","default":false},"continueOnAttach":{"type":"boolean","markdownDescription":"If true, we'll automatically resume programs launched and waiting on `--inspect-brk`","default":true}}},"debug.javascript.autoAttachFilter":{"type":"string","default":"disabled","enum":["always","smart","onlyWithFlag","disabled"],"enumDescriptions":["Auto attach to every Node.js process launched in the terminal.","Auto attach when running scripts that aren't in a node_modules folder.","Only auto attach when the `--inspect` is given.","Auto attach is disabled and not shown in status bar."],"markdownDescription":"Configures which processes to automatically attach and debug when `#debug.node.autoAttach#` is on. A Node process launched with the `--inspect` flag will always be attached to, regardless of this setting."},"debug.javascript.autoAttachSmartPattern":{"type":"array","items":{"type":"string"},"default":["${workspaceFolder}/**","!**/node_modules/**","**/$KNOWN_TOOLS$/**"],"markdownDescription":"Configures glob patterns for determining when to attach in \"smart\" `#debug.javascript.autoAttachFilter#` mode. `$KNOWN_TOOLS$` is replaced with a list of names of common test and code runners. [Read more on the VS Code docs](https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_auto-attach-smart-patterns)."},"debug.javascript.breakOnConditionalError":{"type":"boolean","default":false,"markdownDescription":"Whether to stop when conditional breakpoints throw an error."},"debug.javascript.unmapMissingSources":{"type":"boolean","default":false,"description":"Configures whether sourcemapped file where the original file can't be read will automatically be unmapped. If this is false (default), a prompt is shown."},"debug.javascript.defaultRuntimeExecutable":{"type":"object","default":{"pwa-node":"node"},"markdownDescription":"The default `runtimeExecutable` used for launch configurations, if unspecified. This can be used to config custom paths to Node.js or browser installations.","properties":{"pwa-node":{"type":"string"},"pwa-chrome":{"type":"string"},"pwa-msedge":{"type":"string"}}},"debug.javascript.resourceRequestOptions":{"type":"object","default":{},"markdownDescription":"Request options to use when loading resources, such as source maps, in the debugger. You may need to configure this if your sourcemaps require authentication or use a self-signed certificate, for instance. Options are used to create a request using the [`got`](https://github.com/sindresorhus/got) library.\n\nA common case to disable certificate verification can be done by passing `{ \"https\": { \"rejectUnauthorized\": false } }`."},"debug.javascript.enableNetworkView":{"type":"boolean","default":true,"description":"Enables the experimental network view for targets that support it."}}},"grammars":[{"language":"wat","scopeName":"text.wat","path":"./src/ui/basic-wat.tmLanguage.json"}],"languages":[{"id":"wat","extensions":[".wat",".wasm"],"aliases":["WebAssembly Text Format"],"firstLine":"^\\(module","mimetypes":["text/wat"],"configuration":"./src/ui/basic-wat.configuration.json"}],"terminal":{"profiles":[{"id":"extension.js-debug.debugTerminal","title":"JavaScript Debug Terminal","icon":"$(debug)"}]},"views":{"debug":[{"id":"jsBrowserBreakpoints","name":"Browser Options","when":"debugType == pwa-chrome || debugType == pwa-msedge || debugType == pwa-editor-browser"},{"id":"jsExcludedCallers","name":"Excluded Callers","when":"debugType == pwa-extensionHost && jsDebugHasExcludedCallers || debugType == node-terminal && jsDebugHasExcludedCallers || debugType == pwa-node && jsDebugHasExcludedCallers || debugType == pwa-chrome && jsDebugHasExcludedCallers || debugType == pwa-msedge && jsDebugHasExcludedCallers || debugType == pwa-editor-browser && jsDebugHasExcludedCallers"},{"id":"jsDebugNetworkTree","name":"Network","when":"jsDebugNetworkAvailable"}]},"viewsWelcome":[{"view":"debug","contents":"[JavaScript Debug Terminal](command:extension.js-debug.createDebuggerTerminal)\n\nYou can use the JavaScript Debug Terminal to debug Node.js processes run on the command line.\n\n[Debug URL](command:extension.js-debug.debugLink)","when":"debugStartLanguage == javascript && !isWeb || debugStartLanguage == typescript && !isWeb || debugStartLanguage == javascriptreact && !isWeb || debugStartLanguage == typescriptreact && !isWeb"},{"view":"debug","contents":"[JavaScript Debug Terminal](command:extension.js-debug.createDebuggerTerminal)\n\nYou can use the JavaScript Debug Terminal to debug Node.js processes run on the command line.","when":"debugStartLanguage == javascript && isWeb || debugStartLanguage == typescript && isWeb || debugStartLanguage == javascriptreact && isWeb || debugStartLanguage == typescriptreact && isWeb"}]},"originalEnabledApiProposals":["portsAttributes","workspaceTrust","tunnels","browser"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/ms-vscode.js-debug","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.js-debug-companion"},"manifest":{"name":"js-debug-companion","displayName":"JavaScript Debugger Companion Extension","description":"Companion extension to js-debug that provides capability for remote debugging","version":"1.1.3","publisher":"ms-vscode","engines":{"vscode":"^1.90.0"},"icon":"resources/logo.png","categories":["Other"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode-js-debug-companion.git"},"author":"Connor Peet ","license":"MIT","bugs":{"url":"https://github.com/microsoft/vscode-js-debug-companion/issues"},"homepage":"https://github.com/microsoft/vscode-js-debug-companion#readme","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"activationEvents":["onCommand:js-debug-companion.launchAndAttach","onCommand:js-debug-companion.kill","onCommand:js-debug-companion.launch","onCommand:js-debug-companion.defaultBrowser"],"main":"./out/extension.js","contributes":{},"extensionKind":["ui"],"api":"none","prettier":{"trailingComma":"all","singleQuote":true,"printWidth":100,"tabWidth":2,"arrowParens":"avoid"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/ms-vscode.js-debug-companion","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"ms-vscode.vscode-js-profile-table"},"manifest":{"name":"vscode-js-profile-table","version":"1.0.11","displayName":"Table Visualizer for JavaScript Profiles","description":"Text visualizer for profiles taken from the JavaScript debugger","author":"Connor Peet ","homepage":"https://github.com/microsoft/vscode-js-profile-visualizer#readme","license":"MIT","main":"out/extension.js","browser":"out/extension.web.js","repository":{"type":"git","url":"https://github.com/microsoft/vscode-js-profile-visualizer.git"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"icon":"resources/icon.png","publisher":"ms-vscode","sideEffects":false,"engines":{"vscode":"^1.74.0"},"contributes":{"customEditors":[{"viewType":"jsProfileVisualizer.cpuprofile.table","displayName":"CPU Profile Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.cpuprofile"}]},{"viewType":"jsProfileVisualizer.heapprofile.table","displayName":"Heap Profile Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.heapprofile"}]},{"viewType":"jsProfileVisualizer.heapsnapshot.table","displayName":"Heap Snapshot Table Visualizer","priority":"default","selector":[{"filenamePattern":"*.heapsnapshot"}]}],"commands":[{"command":"extension.jsProfileVisualizer.table.clearCodeLenses","title":"Clear Profile Code Lenses"}],"menus":{"commandPalette":[{"command":"extension.jsProfileVisualizer.table.clearCodeLenses","when":"jsProfileVisualizer.hasCodeLenses == true"}]}},"bugs":{"url":"https://github.com/microsoft/vscode-js-profile-visualizer/issues"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/ms-vscode.vscode-js-profile-table","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","metadata":{},"isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.builtin-notebook-renderers"},"manifest":{"name":"builtin-notebook-renderers","displayName":"Builtin Notebook Output Renderers","description":"Provides basic output renderers for notebooks","publisher":"vscode","version":"10.0.0","license":"MIT","icon":"media/icon.png","engines":{"vscode":"^1.57.0"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"notebookRenderer":[{"id":"vscode.builtin-renderer","entrypoint":"./renderer-out/index.js","displayName":"VS Code Builtin Notebook Output Renderer","requiresMessaging":"never","mimeTypes":["image/gif","image/png","image/jpeg","image/git","image/svg+xml","text/html","application/javascript","application/vnd.code.notebook.error","application/vnd.code.notebook.stdout","application/x.notebook.stdout","application/x.notebook.stream","application/vnd.code.notebook.stderr","application/x.notebook.stderr","text/plain"]}]},"scripts":{"compile":"npx gulp compile-extension:notebook-renderers && npm run build-notebook","watch":"npx gulp compile-watch:notebook-renderers","build-notebook":"node ./esbuild.notebook.mts"},"devDependencies":{"@types/jsdom":"^21.1.0","@types/node":"24.x","@types/vscode-notebook-renderer":"^1.60.0","jsdom":"^28.1.0"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/notebook-renderers","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.npm"},"manifest":{"name":"npm","publisher":"vscode","displayName":"NPM support for VS Code","description":"Extension to add task support for npm scripts.","version":"10.0.0","private":true,"license":"MIT","engines":{"vscode":"0.10.x"},"icon":"images/npm_icon.png","categories":["Other"],"enabledApiProposals":["terminalQuickFixProvider"],"main":"./dist/npmMain","browser":"./dist/browser/npmBrowserMain","activationEvents":["onTaskType:npm","onLanguage:json","workspaceContains:package.json"],"capabilities":{"virtualWorkspaces":{"supported":"limited","description":"Functionality that requires running the 'npm' command is not available in virtual workspaces."},"untrustedWorkspaces":{"supported":"limited","description":"This extension executes tasks, which require trust to run."}},"contributes":{"languages":[{"id":"ignore","extensions":[".npmignore"]},{"id":"properties","extensions":[".npmrc"]}],"views":{"explorer":[{"id":"npm","name":"NPM Scripts","when":"npm:showScriptExplorer","icon":"$(json)","visibility":"hidden","contextualTitle":"NPM Scripts"}]},"commands":[{"command":"npm.runScript","title":"Run","icon":"$(run)"},{"command":"npm.debugScript","title":"Debug","icon":"$(debug)"},{"command":"npm.openScript","title":"Open"},{"command":"npm.runInstall","title":"Run Install"},{"command":"npm.refresh","title":"Refresh","icon":"$(refresh)"},{"command":"npm.runSelectedScript","title":"Run Script"},{"command":"npm.runScriptFromFolder","title":"Run NPM Script in Folder..."},{"command":"npm.packageManager","title":"Get Configured Package Manager"}],"menus":{"commandPalette":[{"command":"npm.refresh","when":"false"},{"command":"npm.runScript","when":"false"},{"command":"npm.debugScript","when":"false"},{"command":"npm.openScript","when":"false"},{"command":"npm.runInstall","when":"false"},{"command":"npm.runSelectedScript","when":"false"},{"command":"npm.runScriptFromFolder","when":"false"},{"command":"npm.packageManager","when":"false"}],"editor/context":[{"command":"npm.runSelectedScript","when":"resourceFilename == 'package.json' && resourceScheme == file","group":"navigation@+1"}],"view/title":[{"command":"npm.refresh","when":"view == npm","group":"navigation"}],"view/item/context":[{"command":"npm.openScript","when":"view == npm && viewItem == packageJSON","group":"navigation@1"},{"command":"npm.runInstall","when":"view == npm && viewItem == packageJSON","group":"navigation@2"},{"command":"npm.openScript","when":"view == npm && viewItem == script","group":"navigation@1"},{"command":"npm.runScript","when":"view == npm && viewItem == script","group":"navigation@2"},{"command":"npm.runScript","when":"view == npm && viewItem == script","group":"inline"},{"command":"npm.debugScript","when":"view == npm && viewItem == script","group":"inline"},{"command":"npm.debugScript","when":"view == npm && viewItem == script","group":"navigation@3"}],"explorer/context":[{"when":"config.npm.enableRunFromFolder && explorerViewletVisible && explorerResourceIsFolder && resourceScheme == file","command":"npm.runScriptFromFolder","group":"2_workspace"}]},"configuration":{"id":"npm","type":"object","title":"Npm","properties":{"npm.autoDetect":{"type":"string","enum":["off","on"],"default":"on","scope":"resource","description":"Controls whether npm scripts should be automatically detected."},"npm.runSilent":{"type":"boolean","default":false,"scope":"resource","markdownDescription":"Run npm commands with the `--silent` option."},"npm.packageManager":{"scope":"resource","type":"string","enum":["auto","npm","yarn","pnpm","bun"],"enumDescriptions":["Auto-detect which package manager to use based on lock files and installed package managers.","Use npm as the package manager.","Use yarn as the package manager.","Use pnpm as the package manager.","Use bun as the package manager."],"default":"auto","description":"The package manager used to install dependencies."},"npm.scriptRunner":{"scope":"resource","type":"string","enum":["auto","npm","yarn","pnpm","bun","node","vp"],"enumDescriptions":["Auto-detect which script runner to use based on lock files and installed package managers.","Use npm as the script runner.","Use yarn as the script runner.","Use pnpm as the script runner.","Use bun as the script runner.","Use Node.js as the script runner.","Use Vite+ (vp) as the script runner."],"default":"auto","description":"The script runner used to run scripts."},"npm.exclude":{"type":["string","array"],"items":{"type":"string"},"description":"Configure glob patterns for folders that should be excluded from automatic script detection.","scope":"resource"},"npm.enableRunFromFolder":{"type":"boolean","default":false,"scope":"resource","description":"Enable running npm scripts contained in a folder from the Explorer context menu."},"npm.scriptExplorerAction":{"type":"string","enum":["open","run"],"markdownDescription":"The default click action used in the NPM Scripts Explorer: `open` or `run`, the default is `open`.","scope":"window","default":"open"},"npm.scriptExplorerExclude":{"type":"array","items":{"type":"string"},"markdownDescription":"An array of regular expressions that indicate which scripts should be excluded from the NPM Scripts view.","scope":"resource","default":[]},"npm.fetchOnlinePackageInfo":{"type":"boolean","description":"Fetch data from https://registry.npmjs.org and https://registry.bower.io to provide auto-completion and information on hover features on npm dependencies.","default":true,"scope":"window","tags":["usesOnlineServices"]},"npm.scriptHover":{"type":"boolean","markdownDescription":"Display hover with `Run` and `Debug` commands for scripts.","default":true,"scope":"window"}}},"jsonValidation":[{"fileMatch":"package.json","url":"https://www.schemastore.org/package"},{"fileMatch":"bower.json","url":"https://www.schemastore.org/bower"}],"taskDefinitions":[{"type":"npm","required":["script"],"properties":{"script":{"type":"string","description":"The npm script to customize."},"path":{"type":"string","description":"The path to the folder of the package.json file that provides the script. Can be omitted."}},"when":"shellExecutionSupported"}],"terminalQuickFixes":[{"id":"ms-vscode.npm-command","commandLineMatcher":"npm","commandExitResult":"error","outputMatcher":{"anchor":"bottom","length":8,"lineMatcher":"Did you mean (?:this|one of these)\\?((?:\\n.+?npm .+ #.+)+)","offset":2}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalQuickFixProvider"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/npm","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.objective-c"},"manifest":{"name":"objective-c","displayName":"Objective-C Language Basics","description":"Provides syntax highlighting and bracket matching in Objective-C files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.js"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"objective-c","extensions":[".m"],"aliases":["Objective-C"],"configuration":"./language-configuration.json"},{"id":"objective-cpp","extensions":[".mm"],"aliases":["Objective-C++"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"objective-c","scopeName":"source.objc","path":"./syntaxes/objective-c.tmLanguage.json"},{"language":"objective-cpp","scopeName":"source.objcpp","path":"./syntaxes/objective-c++.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/objective-c","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.perl"},"manifest":{"name":"perl","displayName":"Perl Language Basics","description":"Provides syntax highlighting and bracket matching in Perl files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/perl.tmbundle Syntaxes/Perl.plist ./syntaxes/perl.tmLanguage.json Syntaxes/Perl%206.tmLanguage ./syntaxes/perl6.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"perl","aliases":["Perl","perl"],"extensions":[".pl",".pm",".pod",".t",".PL",".psgi"],"firstLine":"^#!.*\\bperl\\b","configuration":"./perl.language-configuration.json"},{"id":"raku","aliases":["Raku","Perl6","perl6"],"extensions":[".raku",".rakumod",".rakutest",".rakudoc",".nqp",".p6",".pl6",".pm6"],"firstLine":"(^#!.*\\bperl6\\b)|use\\s+v6|raku|=begin\\spod|my\\sclass","configuration":"./perl6.language-configuration.json"}],"grammars":[{"language":"perl","scopeName":"source.perl","path":"./syntaxes/perl.tmLanguage.json","unbalancedBracketScopes":["variable.other.predefined.perl"]},{"language":"raku","scopeName":"source.perl.6","path":"./syntaxes/perl6.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/perl","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.php"},"manifest":{"name":"php","displayName":"PHP Language Basics","description":"Provides syntax highlighting and bracket matching for PHP files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"php","extensions":[".php",".php4",".php5",".phtml",".ctp"],"aliases":["PHP","php"],"firstLine":"^#!\\s*/.*\\bphp\\b","mimetypes":["application/x-php"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"php","scopeName":"source.php","path":"./syntaxes/php.tmLanguage.json"},{"language":"php","scopeName":"text.html.php","path":"./syntaxes/html.tmLanguage.json","embeddedLanguages":{"text.html":"html","source.php":"php","source.sql":"sql","text.xml":"xml","source.js":"javascript","source.json":"json","source.css":"css"}}],"snippets":[{"language":"php","path":"./snippets/php.code-snippets"}]},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/php","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.php-language-features"},"manifest":{"name":"php-language-features","displayName":"PHP Language Features","description":"Provides rich language support for PHP files.","version":"10.0.0","publisher":"vscode","license":"MIT","icon":"icons/logo.png","engines":{"vscode":"0.10.x"},"activationEvents":["onLanguage:php"],"main":"./dist/phpMain","categories":["Programming Languages"],"capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":"limited","description":"The extension requires workspace trust when the `php.validate.executablePath` setting will load a version of PHP in the workspace.","restrictedConfigurations":["php.validate.executablePath"]}},"contributes":{"configuration":{"title":"PHP","type":"object","order":20,"properties":{"php.suggest.basic":{"type":"boolean","default":true,"description":"Controls whether the built-in PHP language suggestions are enabled. The support suggests PHP globals and variables."},"php.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable built-in PHP validation."},"php.validate.executablePath":{"type":["string","null"],"default":null,"description":"Points to the PHP executable.","scope":"machine-overridable"},"php.validate.run":{"type":"string","enum":["onSave","onType"],"default":"onSave","description":"Whether the linter is run on save or on type."}}},"jsonValidation":[{"fileMatch":"composer.json","url":"https://getcomposer.org/schema.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/php-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.powershell"},"manifest":{"name":"powershell","displayName":"Powershell Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Powershell files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"powershell","extensions":[".ps1",".psm1",".psd1",".pssc",".psrc"],"aliases":["PowerShell","powershell","ps","ps1","pwsh"],"firstLine":"^#!\\s*/.*\\bpwsh\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"powershell","scopeName":"source.powershell","path":"./syntaxes/powershell.tmLanguage.json"}]},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin PowerShell/EditorSyntax PowerShellSyntax.tmLanguage ./syntaxes/powershell.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/powershell","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.prompt"},"manifest":{"name":"prompt","displayName":"Prompt Language Basics","description":"Syntax highlighting for Prompt and Instructions documents.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.20.0"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"prompt","aliases":["Prompt","prompt"],"extensions":[".prompt.md"],"configuration":"./language-configuration.json"},{"id":"instructions","aliases":["Instructions","instructions"],"extensions":[".instructions.md","copilot-instructions.md"],"filenamePatterns":["**/.claude/rules/**/*.md"],"configuration":"./language-configuration.json"},{"id":"chatagent","aliases":["Agent","chat agent"],"extensions":[".agent.md",".chatmode.md"],"filenamePatterns":["**/.github/agents/*.md","**/.claude/agents/*.md"],"configuration":"./language-configuration.json"},{"id":"skill","aliases":["Skill","skill"],"filenames":["SKILL.md"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"prompt","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"instructions","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"chatagent","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]},{"language":"skill","path":"./syntaxes/prompt.tmLanguage.json","scopeName":"text.html.markdown.prompt","unbalancedBracketScopes":["markup.underline.link.markdown","punctuation.definition.list.begin.markdown"]}],"configurationDefaults":{"[prompt]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[instructions]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[chatagent]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"},"[skill]":{"editor.insertSpaces":true,"editor.tabSize":2,"editor.autoIndent":"advanced","editor.unicodeHighlight.ambiguousCharacters":false,"editor.unicodeHighlight.invisibleCharacters":false,"diffEditor.ignoreTrimWhitespace":false,"editor.wordWrap":"on","editor.quickSuggestions":{"comments":"off","strings":"on","other":"on"},"editor.wordBasedSuggestions":"off"}}},"scripts":{},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/prompt-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.pug"},"manifest":{"name":"pug","displayName":"Pug Language Basics","description":"Provides syntax highlighting and bracket matching in Pug files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin davidrios/pug-tmbundle Syntaxes/Pug.JSON-tmLanguage ./syntaxes/pug.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"jade","extensions":[".pug",".jade"],"aliases":["Pug","Jade","jade"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"jade","scopeName":"text.pug","path":"./syntaxes/pug.tmLanguage.json"}],"configurationDefaults":{"[jade]":{"diffEditor.ignoreTrimWhitespace":false}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/pug","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.python"},"manifest":{"name":"python","displayName":"Python Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Python files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"python","extensions":[".py",".rpy",".pyw",".cpy",".gyp",".gypi",".pyi",".ipy",".pyt"],"aliases":["Python","py"],"filenames":["SConstruct","SConscript"],"firstLine":"^#!\\s*/?.*\\bpython[0-9.-]*\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"python","scopeName":"source.python","path":"./syntaxes/MagicPython.tmLanguage.json"},{"scopeName":"source.regexp.python","path":"./syntaxes/MagicRegExp.tmLanguage.json"}],"configurationDefaults":{"[python]":{"diffEditor.ignoreTrimWhitespace":false,"editor.defaultColorDecorators":"never"}}},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin MagicStack/MagicPython grammars/MagicPython.tmLanguage ./syntaxes/MagicPython.tmLanguage.json grammars/MagicRegExp.tmLanguage ./syntaxes/MagicRegExp.tmLanguage.json"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/python","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.r"},"manifest":{"name":"r","displayName":"R Language Basics","description":"Provides syntax highlighting and bracket matching in R files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin REditorSupport/vscode-R-syntax syntaxes/r.json ./syntaxes/r.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"r","extensions":[".R",".Rhistory",".Rprofile",".rt"],"aliases":["R","r"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"r","scopeName":"source.r","path":"./syntaxes/r.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/r","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.razor"},"manifest":{"name":"razor","displayName":"Razor Language Basics","description":"Provides syntax highlighting, bracket matching and folding in Razor files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"0.10.x"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"razor","extensions":[".cshtml",".razor"],"aliases":["Razor","razor"],"mimetypes":["text/x-cshtml"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"razor","scopeName":"text.html.cshtml","path":"./syntaxes/cshtml.tmLanguage.json","embeddedLanguages":{"section.embedded.source.cshtml":"csharp","source.css":"css","source.js":"javascript"}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/razor","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.references-view"},"manifest":{"name":"references-view","displayName":"Reference Search View","description":"Reference Search results as separate, stable view in the sidebar","icon":"media/icon.png","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.67.0"},"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"repository":{"type":"git","url":"https://github.com/Microsoft/vscode-references-view"},"bugs":{"url":"https://github.com/Microsoft/vscode-references-view/issues"},"activationEvents":["onCommand:references-view.find","onCommand:editor.action.showReferences"],"main":"./dist/extension","browser":"./dist/browser/extension","contributes":{"configuration":{"properties":{"references.preferredLocation":{"description":"Controls whether 'Peek References' or 'Find References' is invoked when selecting CodeLens references.","type":"string","default":"peek","enum":["peek","view"],"enumDescriptions":["Show references in peek editor.","Show references in separate view."]}}},"viewsContainers":{"activitybar":[{"id":"references-view","icon":"$(references)","title":"References"}]},"views":{"references-view":[{"id":"references-view.tree","name":"Reference Search Results","when":"reference-list.isActive"}]},"commands":[{"command":"references-view.findReferences","title":"Find All References","category":"References"},{"command":"references-view.findImplementations","title":"Find All Implementations","category":"References"},{"command":"references-view.clearHistory","title":"Clear History","category":"References","icon":"$(clear-all)"},{"command":"references-view.clear","title":"Clear","category":"References","icon":"$(clear-all)"},{"command":"references-view.refresh","title":"Refresh","category":"References","icon":"$(refresh)"},{"command":"references-view.pickFromHistory","title":"Show History","category":"References"},{"command":"references-view.removeReferenceItem","title":"Dismiss","icon":"$(close)"},{"command":"references-view.copy","title":"Copy"},{"command":"references-view.copyAll","title":"Copy All"},{"command":"references-view.copyPath","title":"Copy Path"},{"command":"references-view.refind","title":"Rerun","icon":"$(refresh)"},{"command":"references-view.showCallHierarchy","title":"Show Call Hierarchy","category":"Calls"},{"command":"references-view.showOutgoingCalls","title":"Show Outgoing Calls","category":"Calls","icon":"$(call-incoming)"},{"command":"references-view.showIncomingCalls","title":"Show Incoming Calls","category":"Calls","icon":"$(call-outgoing)"},{"command":"references-view.removeCallItem","title":"Dismiss","icon":"$(close)"},{"command":"references-view.next","title":"Go to Next Reference","enablement":"references-view.canNavigate"},{"command":"references-view.prev","title":"Go to Previous Reference","enablement":"references-view.canNavigate"},{"command":"references-view.showTypeHierarchy","title":"Show Type Hierarchy","category":"Types"},{"command":"references-view.showSupertypes","title":"Show Supertypes","category":"Types","icon":"$(type-hierarchy-super)"},{"command":"references-view.showSubtypes","title":"Show Subtypes","category":"Types","icon":"$(type-hierarchy-sub)"},{"command":"references-view.removeTypeItem","title":"Dismiss","icon":"$(close)"}],"menus":{"editor/context":[{"command":"references-view.findReferences","when":"editorHasReferenceProvider","group":"0_navigation@1"},{"command":"references-view.findImplementations","when":"editorHasImplementationProvider","group":"0_navigation@2"},{"command":"references-view.showCallHierarchy","when":"editorHasCallHierarchyProvider","group":"0_navigation@3"},{"command":"references-view.showTypeHierarchy","when":"editorHasTypeHierarchyProvider","group":"0_navigation@4"}],"view/title":[{"command":"references-view.clear","group":"navigation@3","when":"view == references-view.tree && reference-list.hasResult"},{"command":"references-view.clearHistory","group":"navigation@3","when":"view == references-view.tree && reference-list.hasHistory && !reference-list.hasResult"},{"command":"references-view.refresh","group":"navigation@2","when":"view == references-view.tree && reference-list.hasResult"},{"command":"references-view.showOutgoingCalls","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == callHierarchy && references-view.callHierarchyMode == showIncoming"},{"command":"references-view.showIncomingCalls","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == callHierarchy && references-view.callHierarchyMode == showOutgoing"},{"command":"references-view.showSupertypes","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == typeHierarchy && references-view.typeHierarchyMode != supertypes"},{"command":"references-view.showSubtypes","group":"navigation@1","when":"view == references-view.tree && reference-list.hasResult && reference-list.source == typeHierarchy && references-view.typeHierarchyMode != subtypes"}],"view/item/context":[{"command":"references-view.removeReferenceItem","group":"inline","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.removeCallItem","group":"inline","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.removeTypeItem","group":"inline","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.refind","group":"inline","when":"view == references-view.tree && viewItem == history-item"},{"command":"references-view.removeReferenceItem","group":"1","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.removeCallItem","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.removeTypeItem","group":"1","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.refind","group":"1","when":"view == references-view.tree && viewItem == history-item"},{"command":"references-view.copy","group":"2@1","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.copyPath","group":"2@2","when":"view == references-view.tree && viewItem == file-item"},{"command":"references-view.copyAll","group":"2@3","when":"view == references-view.tree && viewItem == file-item || view == references-view.tree && viewItem == reference-item"},{"command":"references-view.showOutgoingCalls","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.showIncomingCalls","group":"1","when":"view == references-view.tree && viewItem == call-item"},{"command":"references-view.showSupertypes","group":"1","when":"view == references-view.tree && viewItem == type-item"},{"command":"references-view.showSubtypes","group":"1","when":"view == references-view.tree && viewItem == type-item"}],"commandPalette":[{"command":"references-view.removeReferenceItem","when":"never"},{"command":"references-view.removeCallItem","when":"never"},{"command":"references-view.removeTypeItem","when":"never"},{"command":"references-view.copy","when":"never"},{"command":"references-view.copyAll","when":"never"},{"command":"references-view.copyPath","when":"never"},{"command":"references-view.refind","when":"never"},{"command":"references-view.findReferences","when":"editorHasReferenceProvider"},{"command":"references-view.clear","when":"reference-list.hasResult"},{"command":"references-view.clearHistory","when":"reference-list.isActive && !reference-list.hasResult"},{"command":"references-view.refresh","when":"reference-list.hasResult"},{"command":"references-view.pickFromHistory","when":"reference-list.isActive"},{"command":"references-view.next","when":"never"},{"command":"references-view.prev","when":"never"}]},"keybindings":[{"command":"references-view.findReferences","when":"editorHasReferenceProvider","key":"shift+alt+f12"},{"command":"references-view.next","when":"reference-list.hasResult","key":"f4"},{"command":"references-view.prev","when":"reference-list.hasResult","key":"shift+f4"},{"command":"references-view.showCallHierarchy","when":"editorHasCallHierarchyProvider","key":"shift+alt+h"}]}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/references-view","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.restructuredtext"},"manifest":{"name":"restructuredtext","displayName":"reStructuredText Language Basics","description":"Provides syntax highlighting in reStructuredText files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin trond-snekvik/vscode-rst syntaxes/rst.tmLanguage.json ./syntaxes/rst.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"restructuredtext","aliases":["reStructuredText"],"configuration":"./language-configuration.json","extensions":[".rst"]}],"grammars":[{"language":"restructuredtext","scopeName":"source.rst","path":"./syntaxes/rst.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/restructuredtext","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.ruby"},"manifest":{"name":"ruby","displayName":"Ruby Language Basics","description":"Provides syntax highlighting and bracket matching in Ruby files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin Shopify/ruby-lsp vscode/grammars/ruby.cson.json ./syntaxes/ruby.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"ruby","extensions":[".rb",".rbx",".rjs",".gemspec",".rake",".ru",".erb",".podspec",".rbi"],"filenames":["rakefile","gemfile","guardfile","podfile","capfile","cheffile","hobofile","vagrantfile","appraisals","rantfile","berksfile","berksfile.lock","thorfile","puppetfile","dangerfile","brewfile","fastfile","appfile","deliverfile","matchfile","scanfile","snapfile","gymfile"],"aliases":["Ruby","rb"],"firstLine":"^#!\\s*/.*\\bruby\\b","configuration":"./language-configuration.json"}],"grammars":[{"language":"ruby","scopeName":"source.ruby","path":"./syntaxes/ruby.tmLanguage.json"}],"configurationDefaults":{"[ruby]":{"editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/ruby","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.rust"},"manifest":{"name":"rust","displayName":"Rust Language Basics","description":"Provides syntax highlighting and bracket matching in Rust files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"rust","extensions":[".rs"],"aliases":["Rust","rust"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"rust","path":"./syntaxes/rust.tmLanguage.json","scopeName":"source.rust"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/rust","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.scss"},"manifest":{"name":"scss","displayName":"SCSS Language Basics","description":"Provides syntax highlighting, bracket matching and folding in SCSS files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-sass grammars/scss.cson ./syntaxes/scss.tmLanguage.json grammars/sassdoc.cson ./syntaxes/sassdoc.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"scss","aliases":["SCSS","scss"],"extensions":[".scss"],"mimetypes":["text/x-scss","text/scss"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"scss","scopeName":"source.css.scss","path":"./syntaxes/scss.tmLanguage.json"},{"scopeName":"source.sassdoc","path":"./syntaxes/sassdoc.tmLanguage.json"}],"problemMatchers":[{"name":"node-sass","label":"Node Sass Compiler","owner":"node-sass","fileLocation":"absolute","pattern":[{"regexp":"^{$"},{"regexp":"\\s*\"status\":\\s\\d+,"},{"regexp":"\\s*\"file\":\\s\"(.*)\",","file":1},{"regexp":"\\s*\"line\":\\s(\\d+),","line":1},{"regexp":"\\s*\"column\":\\s(\\d+),","column":1},{"regexp":"\\s*\"message\":\\s\"(.*)\",","message":1},{"regexp":"\\s*\"formatted\":\\s(.*)"},{"regexp":"^}$"}]}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/scss","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.search-result"},"manifest":{"name":"search-result","displayName":"Search Result","description":"Provides syntax highlighting and language features for tabbed search results.","version":"10.0.0","publisher":"vscode","license":"MIT","icon":"images/icon.png","engines":{"vscode":"^1.39.0"},"main":"./dist/extension.js","browser":"./dist/browser/extension","activationEvents":["onLanguage:search-result"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["documentFiltersExclusive"],"contributes":{"configurationDefaults":{"[search-result]":{"editor.lineNumbers":"off"}},"languages":[{"id":"search-result","extensions":[".code-search"],"aliases":["Search Result"]}],"grammars":[{"language":"search-result","scopeName":"text.searchResult","path":"./syntaxes/searchResult.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["documentFiltersExclusive"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/search-result","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.shaderlab"},"manifest":{"name":"shaderlab","displayName":"Shaderlab Language Basics","description":"Provides syntax highlighting and bracket matching in Shaderlab files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin tgjones/shaders-tmLanguage grammars/shaderlab.json ./syntaxes/shaderlab.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"shaderlab","extensions":[".shader"],"aliases":["ShaderLab","shaderlab"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"shaderlab","path":"./syntaxes/shaderlab.tmLanguage.json","scopeName":"source.shaderlab"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/shaderlab","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.shellscript"},"manifest":{"name":"shellscript","displayName":"Shell Script Language Basics","description":"Provides syntax highlighting and bracket matching in Shell Script files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin jeff-hykin/better-shell-syntax autogenerated/shell.tmLanguage.json ./syntaxes/shell-unix-bash.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"shellscript","aliases":["Shell Script","shellscript","bash","fish","sh","zsh","ksh","csh"],"extensions":[".sh",".bash",".bashrc",".bash_aliases",".bash_profile",".bash_login",".ebuild",".eclass",".profile",".bash_logout",".xprofile",".xsession",".xsessionrc",".Xsession",".zsh",".zshrc",".zprofile",".zlogin",".zlogout",".zshenv",".zsh-theme",".fish",".ksh",".csh",".cshrc",".tcshrc",".yashrc",".yash_profile"],"filenames":["APKBUILD","PKGBUILD",".envrc",".hushlogin","zshrc","zshenv","zlogin","zprofile","zlogout","bashrc_Apple_Terminal","zshrc_Apple_Terminal"],"firstLine":"^#!.*\\b(bash|fish|zsh|sh|ksh|dtksh|pdksh|mksh|ash|dash|yash|sh|csh|jcsh|tcsh|itcsh).*|^#\\s*-\\*-[^*]*mode:\\s*shell-script[^*]*-\\*-","configuration":"./language-configuration.json","mimetypes":["text/x-shellscript"]}],"grammars":[{"language":"shellscript","scopeName":"source.shell","path":"./syntaxes/shell-unix-bash.tmLanguage.json","balancedBracketScopes":["*"],"unbalancedBracketScopes":["meta.scope.case-pattern.shell"]}],"configurationDefaults":{"[shellscript]":{"files.eol":"\n","editor.defaultColorDecorators":"never"}}},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/shellscript","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.simple-browser"},"manifest":{"name":"simple-browser","displayName":"Simple Browser","description":"A very basic built-in webview for displaying web content.","enabledApiProposals":["externalUriOpener"],"version":"10.0.0","icon":"media/icon.png","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","engines":{"vscode":"^1.70.0"},"main":"./dist/extension","browser":"./dist/browser/extension","categories":["Other"],"extensionKind":["ui","workspace"],"activationEvents":["onCommand:simpleBrowser.api.open","onOpenExternalUri:http","onOpenExternalUri:https","onWebviewPanel:simpleBrowser.view"],"capabilities":{"virtualWorkspaces":true,"untrustedWorkspaces":{"supported":true}},"contributes":{"commands":[{"command":"simpleBrowser.show","title":"Show","category":"Simple Browser"}],"menus":{"commandPalette":[{"command":"simpleBrowser.show","when":"isWeb"}]},"configuration":[{"title":"Simple Browser","properties":{"simpleBrowser.focusLockIndicator.enabled":{"type":"boolean","default":true,"title":"Focus Lock Indicator Enabled","description":"Enable/disable the floating indicator that shows when focused in the simple browser."}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["externalUriOpener"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/simple-browser","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.sql"},"manifest":{"name":"sql","displayName":"SQL Language Basics","description":"Provides syntax highlighting and bracket matching in SQL files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammar.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"sql","extensions":[".sql",".dsql"],"aliases":["MS SQL","T-SQL"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"sql","scopeName":"source.sql","path":"./syntaxes/sql.tmLanguage.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/sql","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.swift"},"manifest":{"name":"swift","displayName":"Swift Language Basics","description":"Provides snippets, syntax highlighting and bracket matching in Swift files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin jtbandes/swift-tmlanguage Swift.tmLanguage.json ./syntaxes/swift.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"swift","aliases":["Swift","swift"],"extensions":[".swift"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"swift","scopeName":"source.swift","path":"./syntaxes/swift.tmLanguage.json"}],"snippets":[{"language":"swift","path":"./snippets/swift.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/swift","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.terminal-suggest"},"manifest":{"name":"terminal-suggest","publisher":"vscode","displayName":"Terminal Suggest for VS Code","description":"Extension to add terminal completions for zsh, bash, and fish terminals.","version":"1.0.1","private":true,"license":"MIT","icon":"./media/icon.png","engines":{"vscode":"^1.95.0"},"categories":["Other"],"enabledApiProposals":["terminalCompletionProvider","terminalShellEnv"],"contributes":{"commands":[{"command":"terminal.integrated.suggest.clearCachedGlobals","category":"Terminal","title":"Clear Suggest Cached Globals"}],"terminal":{"completionProviders":[{"description":"Show suggestions for commands, arguments, flags, and file paths based upon the Fig spec."}]}},"main":"./dist/terminalSuggestMain","activationEvents":["onTerminalShellIntegration:*"],"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["terminalCompletionProvider","terminalShellEnv"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/terminal-suggest","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-abyss"},"manifest":{"name":"theme-abyss","displayName":"Abyss Theme","description":"Abyss theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Abyss","label":"Abyss","uiTheme":"vs-dark","path":"./themes/abyss-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-abyss","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-defaults"},"manifest":{"name":"theme-defaults","displayName":"Default Themes","description":"The default Visual Studio light and dark themes","categories":["Themes"],"version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"contributes":{"themes":[{"id":"Light 2026","label":"Light 2026","uiTheme":"vs","path":"./themes/2026-light.json"},{"id":"Dark 2026","label":"Dark 2026","uiTheme":"vs-dark","path":"./themes/2026-dark.json"},{"id":"Dark+","label":"Dark+","uiTheme":"vs-dark","path":"./themes/dark_plus.json"},{"id":"Dark Modern","label":"Dark Modern","uiTheme":"vs-dark","path":"./themes/dark_modern.json"},{"id":"Light+","label":"Light+","uiTheme":"vs","path":"./themes/light_plus.json"},{"id":"Light Modern","label":"Light Modern","uiTheme":"vs","path":"./themes/light_modern.json"},{"id":"Visual Studio Dark","label":"Dark (Visual Studio)","uiTheme":"vs-dark","path":"./themes/dark_vs.json"},{"id":"Visual Studio Light","label":"Light (Visual Studio)","uiTheme":"vs","path":"./themes/light_vs.json"},{"id":"Default High Contrast","label":"Dark High Contrast","uiTheme":"hc-black","path":"./themes/hc_black.json"},{"id":"Default High Contrast Light","label":"Light High Contrast","uiTheme":"hc-light","path":"./themes/hc_light.json"}],"iconThemes":[{"id":"vs-minimal","label":"Minimal (Visual Studio Code)","path":"./fileicons/vs_minimal-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-defaults","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-kimbie-dark"},"manifest":{"name":"theme-kimbie-dark","displayName":"Kimbie Dark Theme","description":"Kimbie dark theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Kimbie Dark","label":"Kimbie Dark","uiTheme":"vs-dark","path":"./themes/kimbie-dark-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-kimbie-dark","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vscode-modern-icons"},"manifest":{"name":"vscode-modern-icons","private":true,"version":"1.0.0","displayName":"VS Code Modern File Icons","description":"A modern file icon theme for Visual Studio Code","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"iconThemes":[{"id":"vscode-modern-icons","label":"VS Code Modern Icons","path":"./fileicons/vscode-modern-icons-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-modern-icons","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-monokai"},"manifest":{"name":"theme-monokai","displayName":"Monokai Theme","description":"Monokai theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Monokai","label":"Monokai","uiTheme":"vs-dark","path":"./themes/monokai-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-monokai","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-monokai-dimmed"},"manifest":{"name":"theme-monokai-dimmed","displayName":"Monokai Dimmed Theme","description":"Monokai dimmed theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Monokai Dimmed","label":"Monokai Dimmed","uiTheme":"vs-dark","path":"./themes/dimmed-monokai-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-monokai-dimmed","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-quietlight"},"manifest":{"name":"theme-quietlight","displayName":"Quiet Light Theme","description":"Quiet light theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Quiet Light","label":"Quiet Light","uiTheme":"vs","path":"./themes/quietlight-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-quietlight","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-red"},"manifest":{"name":"theme-red","displayName":"Red Theme","description":"Red theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Red","label":"Red","uiTheme":"vs-dark","path":"./themes/Red-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-red","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vscode-theme-seti"},"manifest":{"name":"vscode-theme-seti","private":true,"version":"10.0.0","displayName":"Seti File Icon Theme","description":"A file icon theme made out of the Seti UI file icons","publisher":"vscode","license":"MIT","icon":"icons/seti-circular-128x128.png","scripts":{"update":"node ./build/update-icon-theme.js"},"engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"iconThemes":[{"id":"vs-seti","label":"Seti (Visual Studio Code)","path":"./icons/vs-seti-icon-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-seti","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-solarized-dark"},"manifest":{"name":"theme-solarized-dark","displayName":"Solarized Dark Theme","description":"Solarized dark theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Solarized Dark","label":"Solarized Dark","uiTheme":"vs-dark","path":"./themes/solarized-dark-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-solarized-dark","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-solarized-light"},"manifest":{"name":"theme-solarized-light","displayName":"Solarized Light Theme","description":"Solarized light theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Solarized Light","label":"Solarized Light","uiTheme":"vs","path":"./themes/solarized-light-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-solarized-light","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.theme-tomorrow-night-blue"},"manifest":{"name":"theme-tomorrow-night-blue","displayName":"Tomorrow Night Blue Theme","description":"Tomorrow night blue theme for Visual Studio Code","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Themes"],"contributes":{"themes":[{"id":"Tomorrow Night Blue","label":"Tomorrow Night Blue","uiTheme":"vs-dark","path":"./themes/tomorrow-night-blue-color-theme.json"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/theme-tomorrow-night-blue","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.tunnel-forwarding"},"manifest":{"name":"tunnel-forwarding","displayName":"Local Tunnel Port Forwarding","description":"Allows forwarding local ports to be accessible over the internet.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"^1.82.0"},"icon":"media/icon.png","capabilities":{"virtualWorkspaces":false,"untrustedWorkspaces":{"supported":true}},"enabledApiProposals":["resolvers","tunnelFactory"],"activationEvents":["onTunnel"],"contributes":{"commands":[{"category":"Port Forwarding","command":"tunnel-forwarding.showLog","title":"Show Log","enablement":"tunnelForwardingHasLog"},{"category":"Port Forwarding","command":"tunnel-forwarding.restart","title":"Restart Forwarding System","enablement":"tunnelForwardingIsRunning"}]},"main":"./dist/extension","prettier":{"printWidth":100,"trailingComma":"all","singleQuote":true,"arrowParens":"avoid"},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["resolvers","tunnelFactory"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/tunnel-forwarding","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.typescript"},"manifest":{"name":"typescript","description":"Provides snippets, syntax highlighting, bracket matching and folding in TypeScript files.","displayName":"TypeScript Language Basics","version":"10.0.0","author":"vscode","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ./build/update-grammars.mjs"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"typescript","aliases":["TypeScript","ts","typescript"],"extensions":[".ts",".cts",".mts"],"firstLine":"^#!.*\\b(deno|bun|ts-node)\\b","configuration":"./language-configuration.json"},{"id":"typescriptreact","aliases":["TypeScript JSX","TypeScript React","tsx"],"extensions":[".tsx"],"configuration":"./language-configuration.json"},{"id":"jsonc","filenames":["tsconfig.json","jsconfig.json"],"filenamePatterns":["tsconfig.*.json","jsconfig.*.json","tsconfig-*.json","jsconfig-*.json"]},{"id":"json","extensions":[".tsbuildinfo"]}],"grammars":[{"language":"typescript","scopeName":"source.ts","path":"./syntaxes/TypeScript.tmLanguage.json","unbalancedBracketScopes":["keyword.operator.relational","storage.type.function.arrow","keyword.operator.bitwise.shift","meta.brace.angle","punctuation.definition.tag","keyword.operator.assignment.compound.bitwise.ts"],"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"language":"typescriptreact","scopeName":"source.tsx","path":"./syntaxes/TypeScriptReact.tmLanguage.json","unbalancedBracketScopes":["keyword.operator.relational","storage.type.function.arrow","keyword.operator.bitwise.shift","punctuation.definition.tag","keyword.operator.assignment.compound.bitwise.ts"],"embeddedLanguages":{"meta.tag.tsx":"jsx-tags","meta.tag.without-attributes.tsx":"jsx-tags","meta.tag.attributes.tsx":"typescriptreact","meta.embedded.expression.tsx":"typescriptreact"},"tokenTypes":{"punctuation.definition.template-expression":"other","entity.name.type.instance.jsdoc":"other","entity.name.function.tagged-template":"other","meta.import string.quoted":"other","variable.other.jsdoc":"other"}},{"scopeName":"documentation.injection.ts","path":"./syntaxes/jsdoc.ts.injection.tmLanguage.json","injectTo":["source.ts","source.tsx"]},{"scopeName":"documentation.injection.js.jsx","path":"./syntaxes/jsdoc.js.injection.tmLanguage.json","injectTo":["source.js","source.js.jsx"]}],"semanticTokenScopes":[{"language":"typescript","scopes":{"property":["variable.other.property.ts"],"property.readonly":["variable.other.constant.property.ts"],"variable":["variable.other.readwrite.ts"],"variable.readonly":["variable.other.constant.object.ts"],"function":["entity.name.function.ts"],"namespace":["entity.name.type.module.ts"],"variable.defaultLibrary":["support.variable.ts"],"function.defaultLibrary":["support.function.ts"]}},{"language":"typescriptreact","scopes":{"property":["variable.other.property.tsx"],"property.readonly":["variable.other.constant.property.tsx"],"variable":["variable.other.readwrite.tsx"],"variable.readonly":["variable.other.constant.object.tsx"],"function":["entity.name.function.tsx"],"namespace":["entity.name.type.module.tsx"],"variable.defaultLibrary":["support.variable.tsx"],"function.defaultLibrary":["support.function.tsx"]}}],"snippets":[{"language":"typescript","path":"./snippets/typescript.code-snippets"},{"language":"typescriptreact","path":"./snippets/typescript.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/typescript-basics","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.typescript-language-features"},"manifest":{"name":"typescript-language-features","description":"Provides rich language support for JavaScript and TypeScript.","displayName":"JavaScript and TypeScript Language Features","version":"10.0.0","author":"vscode","publisher":"vscode","license":"MIT","aiKey":"0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255","enabledApiProposals":["workspaceTrust","multiDocumentHighlightProvider","codeActionAI","codeActionRanges","editorHoverVerbosityLevel"],"capabilities":{"virtualWorkspaces":{"supported":"limited","description":"In virtual workspaces, resolving and finding references across files is not supported."},"untrustedWorkspaces":{"supported":false,"description":"The extension requires workspace trust when the workspace version is used because it executes code specified by the workspace."}},"engines":{"vscode":"^1.30.0"},"icon":"media/icon.png","categories":["Programming Languages"],"activationEvents":["onLanguage:javascript","onLanguage:javascriptreact","onLanguage:typescript","onLanguage:typescriptreact","onLanguage:jsx-tags","onCommand:typescript.tsserverRequest","onCommand:_typescript.configurePlugin","onCommand:_typescript.learnMoreAboutRefactorings","onCommand:typescript.fileReferences","onTaskType:typescript","onLanguage:jsonc","onWalkthrough:nodejsWelcome"],"main":"./dist/extension","browser":"./dist/browser/extension","contributes":{"jsonValidation":[{"fileMatch":"package.json","url":"./schemas/package.schema.json"},{"fileMatch":"tsconfig.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"tsconfig.*.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig-*.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"tsconfig-*.json","url":"https://www.schemastore.org/tsconfig"},{"fileMatch":"tsconfig.*.json","url":"./schemas/tsconfig.schema.json"},{"fileMatch":"typings.json","url":"https://www.schemastore.org/typings"},{"fileMatch":".bowerrc","url":"https://www.schemastore.org/bowerrc"},{"fileMatch":".babelrc","url":"https://www.schemastore.org/babelrc"},{"fileMatch":".babelrc.json","url":"https://www.schemastore.org/babelrc"},{"fileMatch":"babel.config.json","url":"https://www.schemastore.org/babelrc"},{"fileMatch":"jsconfig.json","url":"https://www.schemastore.org/jsconfig"},{"fileMatch":"jsconfig.json","url":"./schemas/jsconfig.schema.json"},{"fileMatch":"jsconfig.*.json","url":"https://www.schemastore.org/jsconfig"},{"fileMatch":"jsconfig.*.json","url":"./schemas/jsconfig.schema.json"},{"fileMatch":".swcrc","url":"https://swc.rs/schema.json"},{"fileMatch":"typedoc.json","url":"https://typedoc.org/schema.json"}],"configuration":[{"type":"object","properties":{"js/ts.tsdk.path":{"type":"string","markdownDescription":"Specifies the folder path to the tsserver and `lib*.d.ts` files under a TypeScript install to use for IntelliSense, for example: `./node_modules/typescript/lib`.\n\n- When specified as a user setting, the TypeScript version from `js/ts.tsdk.path` automatically replaces the built-in TypeScript version.\n- When specified as a workspace setting, `js/ts.tsdk.path` allows you to switch to use that workspace version of TypeScript for IntelliSense with the `TypeScript: Select TypeScript version` command.\n\nSee the [TypeScript documentation](https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-newer-typescript-versions) for more detail about managing TypeScript versions.","scope":"window","order":1,"keywords":["TypeScript"]},"typescript.tsdk":{"type":"string","markdownDescription":"Specifies the folder path to the tsserver and `lib*.d.ts` files under a TypeScript install to use for IntelliSense, for example: `./node_modules/typescript/lib`.\n\n- When specified as a user setting, the TypeScript version from `js/ts.tsdk.path` automatically replaces the built-in TypeScript version.\n- When specified as a workspace setting, `js/ts.tsdk.path` allows you to switch to use that workspace version of TypeScript for IntelliSense with the `TypeScript: Select TypeScript version` command.\n\nSee the [TypeScript documentation](https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-newer-typescript-versions) for more detail about managing TypeScript versions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsdk.path#` instead.","scope":"window","order":1},"js/ts.experimental.useTsgo":{"type":"boolean","default":false,"markdownDescription":"Disables TypeScript and JavaScript language features to allow usage of the TypeScript Go experimental extension. Requires TypeScript Go to be installed and configured. Requires reloading extensions after changing this setting.","scope":"window","order":2,"keywords":["TypeScript","experimental"]},"typescript.experimental.useTsgo":{"type":"boolean","default":false,"markdownDescription":"Disables TypeScript and JavaScript language features to allow usage of the TypeScript Go experimental extension. Requires TypeScript Go to be installed and configured. Requires reloading extensions after changing this setting.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.experimental.useTsgo#` instead.","scope":"window","order":2,"keywords":["experimental"]},"js/ts.locale":{"type":"string","default":"auto","enum":["auto","de","es","en","fr","it","ja","ko","ru","zh-CN","zh-TW"],"enumDescriptions":["Use VS Code's configured display language.","Deutsch","español","English","français","italiano","日本語","한국어","русский","中文(简体)","中文(繁體)"],"markdownDescription":"Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VS Code's locale.","scope":"window","order":3,"keywords":["TypeScript"]},"typescript.locale":{"type":"string","default":"auto","enum":["auto","de","es","en","fr","it","ja","ko","ru","zh-CN","zh-TW"],"enumDescriptions":["Use VS Code's configured display language.","Deutsch","español","English","français","italiano","日本語","한국어","русский","中文(简体)","中文(繁體)"],"markdownDescription":"Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VS Code's locale.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.locale#` instead.","scope":"window","order":3},"js/ts.tsc.autoDetect":{"type":"string","default":"on","enum":["on","off","build","watch"],"markdownEnumDescriptions":["Create both build and watch tasks.","Disable this feature.","Only create single run compile tasks.","Only create compile and watch tasks."],"description":"Controls auto detection of tsc tasks.","scope":"window","order":4,"keywords":["TypeScript"]},"typescript.tsc.autoDetect":{"type":"string","default":"on","enum":["on","off","build","watch"],"markdownEnumDescriptions":["Create both build and watch tasks.","Disable this feature.","Only create single run compile tasks.","Only create compile and watch tasks."],"description":"Controls auto detection of tsc tasks.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsc.autoDetect#` instead.","scope":"window","order":4}}},{"type":"object","title":"Preferences","properties":{"js/ts.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.quoteStyle#` instead.","scope":"language-overridable"},"typescript.preferences.quoteStyle":{"type":"string","enum":["auto","single","double"],"default":"auto","markdownDescription":"Preferred quote style to use for Quick Fixes.","markdownEnumDescriptions":["Infer quote type from existing code","Always use single quotes: `'`","Always use double quotes: `\"`"],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.quoteStyle#` instead.","scope":"language-overridable"},"js/ts.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifier#` instead.","scope":"language-overridable"},"typescript.preferences.importModuleSpecifier":{"type":"string","enum":["shortest","relative","non-relative","project-relative"],"markdownEnumDescriptions":["Prefers a non-relative import only if one is available that has fewer path segments than a relative import.","Prefers a relative path to the imported file location.","Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.","Prefers a non-relative import only if the relative import path would leave the package or project directory."],"default":"shortest","description":"Preferred path style for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifier#` instead.","scope":"language-overridable"},"js/ts.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifierEnding#` instead.","scope":"language-overridable"},"typescript.preferences.importModuleSpecifierEnding":{"type":"string","enum":["auto","minimal","index","js"],"enumItemLabels":[null,null,null,".js / .ts"],"markdownEnumDescriptions":["Use project settings to select a default.","Shorten `./component/index.js` to `./component`.","Shorten `./component/index.js` to `./component/index`.","Do not shorten path endings; include the `.js` or `.ts` extension."],"default":"auto","description":"Preferred path ending for auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.importModuleSpecifierEnding#` instead.","scope":"language-overridable"},"js/ts.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#js/ts.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#javascript.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.jsxAttributeCompletionStyle#` instead.","scope":"language-overridable"},"typescript.preferences.jsxAttributeCompletionStyle":{"type":"string","enum":["auto","braces","none"],"markdownEnumDescriptions":["Insert `={}` or `=\"\"` after attribute names based on the prop type. See `#typescript.preferences.quoteStyle#` to control the type of quotes used for string attributes.","Insert `={}` after attribute names.","Only insert attribute names."],"default":"auto","description":"Preferred style for JSX attribute completions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.jsxAttributeCompletionStyle#` instead.","scope":"language-overridable"},"js/ts.preferences.includePackageJsonAutoImports":{"type":"string","enum":["auto","on","off"],"enumDescriptions":["Search dependencies based on estimated performance impact.","Always search dependencies.","Never search dependencies."],"default":"auto","markdownDescription":"Enable/disable searching `package.json` dependencies for available auto imports.","scope":"window","keywords":["TypeScript"]},"typescript.preferences.includePackageJsonAutoImports":{"type":"string","enum":["auto","on","off"],"enumDescriptions":["Search dependencies based on estimated performance impact.","Always search dependencies.","Never search dependencies."],"default":"auto","markdownDescription":"Enable/disable searching `package.json` dependencies for available auto imports.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.includePackageJsonAutoImports#` instead.","scope":"window"},"js/ts.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","scope":"resource","keywords":["JavaScript","TypeScript"]},"javascript.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportFileExcludePatterns#` instead.","scope":"resource"},"typescript.preferences.autoImportFileExcludePatterns":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify glob patterns of files to exclude from auto imports. Relative paths are resolved relative to the workspace root. Patterns are evaluated using tsconfig.json [`exclude`](https://www.typescriptlang.org/tsconfig#exclude) semantics.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportFileExcludePatterns#` instead.","scope":"resource"},"js/ts.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","scope":"resource","keywords":["JavaScript","TypeScript"]},"javascript.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportSpecifierExcludeRegexes#` instead.","scope":"resource"},"typescript.preferences.autoImportSpecifierExcludeRegexes":{"type":"array","items":{"type":"string"},"markdownDescription":"Specify regular expressions to exclude auto imports with matching import specifiers. Examples:\n\n- `^node:`\n- `lib/internal` (slashes don't need to be escaped...)\n- `/lib\\/internal/i` (...unless including surrounding slashes for `i` or `u` flags)\n- `^lodash$` (only allow subpath imports from lodash)","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.autoImportSpecifierExcludeRegexes#` instead.","scope":"resource"},"js/ts.preferences.preferTypeOnlyAutoImports":{"type":"boolean","default":false,"markdownDescription":"Include the `type` keyword in auto-imports whenever possible. Requires using TypeScript 5.3+ in the workspace.","scope":"resource","keywords":["TypeScript"]},"typescript.preferences.preferTypeOnlyAutoImports":{"type":"boolean","default":false,"markdownDescription":"Include the `type` keyword in auto-imports whenever possible. Requires using TypeScript 5.3+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.preferTypeOnlyAutoImports#` instead.","scope":"resource"},"js/ts.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.useAliasesForRenames#` instead.","scope":"language-overridable"},"typescript.preferences.useAliasesForRenames":{"type":"boolean","default":true,"description":"Enable/disable introducing aliases for object shorthand properties during renames.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.useAliasesForRenames#` instead.","scope":"language-overridable"},"js/ts.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.renameMatchingJsxTags#` instead.","scope":"language-overridable"},"typescript.preferences.renameMatchingJsxTags":{"type":"boolean","default":true,"description":"When on a JSX tag, try to rename the matching tag instead of renaming the symbol. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.renameMatchingJsxTags#` instead.","scope":"language-overridable"},"js/ts.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","Sort imports case-insensitively.","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}},"keywords":["JavaScript","TypeScript"]},"javascript.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.organizeImports#` instead.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","Sort imports case-insensitively.","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}}},"typescript.preferences.organizeImports":{"type":"object","markdownDescription":"Advanced preferences that control how imports are ordered.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferences.organizeImports#` instead.","properties":{"caseSensitivity":{"type":"string","markdownDescription":"Specifies how imports should be sorted with regards to case-sensitivity. If `auto` or unspecified, we will detect the case-sensitivity per file","enum":["auto","caseInsensitive","caseSensitive"],"markdownEnumDescriptions":["Detect case-sensitivity for import sorting.","%typescript.preferences.organizeImports.caseSensitivity.insensitive","Sort imports case-sensitively."],"default":"auto"},"typeOrder":{"type":"string","markdownDescription":"Specify how type-only named imports should be sorted.","enum":["auto","last","inline","first"],"default":"auto","markdownEnumDescriptions":["Detect where type-only named imports should be sorted.","Type only named imports are sorted to the end of the import list. E.g. `import { B, Z, type A, type Y } from 'module';`","Named imports are sorted by name only. E.g. `import { type A, B, type Y, Z } from 'module';`","Type only named imports are sorted to the beginning of the import list. E.g. `import { type A, type Y, B, Z } from 'module';`"]},"unicodeCollation":{"type":"string","markdownDescription":"Specify whether to sort imports using Unicode or Ordinal collation.","enum":["ordinal","unicode"],"markdownEnumDescriptions":["Sort imports using the numeric value of each code point.","Sort imports using the Unicode code collation."],"default":"ordinal"},"locale":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Overrides the locale used for collation. Specify `auto` to use the UI locale."},"numericCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Sort numeric strings by integer value."},"accentCollation":{"type":"boolean","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`. Compare characters with diacritical marks as unequal to base character."},"caseFirst":{"type":"string","markdownDescription":"Requires `organizeImports.unicodeCollation: 'unicode'`, and `organizeImports.caseSensitivity` is not `caseInsensitive`. Indicates whether upper-case will sort before lower-case.","enum":["default","upper","lower"],"markdownEnumDescriptions":["Default order given by `locale`.","Upper-case comes before lower-case. E.g. ` A, a, B, b`.","Lower-case comes before upper-case. E.g.` a, A, z, Z`."],"default":"default"}}}}},{"type":"object","title":"Formatting","properties":{"js/ts.format.enabled":{"type":"boolean","default":true,"description":"Enable/disable the default JavaScript and TypeScript formatter.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.enable":{"type":"boolean","default":true,"description":"Enable/disable default JavaScript formatter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.enabled#` instead.","scope":"window"},"typescript.format.enable":{"type":"boolean","default":true,"description":"Enable/disable default TypeScript formatter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.enabled#` instead.","scope":"window"},"js/ts.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterCommaDelimiter#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterCommaDelimiter":{"type":"boolean","default":true,"description":"Defines space handling after a comma delimiter.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterCommaDelimiter#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterConstructor#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterConstructor":{"type":"boolean","default":false,"description":"Defines space handling after the constructor keyword.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterConstructor#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterSemicolonInForStatements#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterSemicolonInForStatements":{"type":"boolean","default":true,"description":"Defines space handling after a semicolon in a for statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterSemicolonInForStatements#` instead.","scope":"resource"},"js/ts.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeAndAfterBinaryOperators#` instead.","scope":"resource"},"typescript.format.insertSpaceBeforeAndAfterBinaryOperators":{"type":"boolean","default":true,"description":"Defines space handling after a binary operator.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeAndAfterBinaryOperators#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterKeywordsInControlFlowStatements":{"type":"boolean","default":true,"description":"Defines space handling after keywords in a control flow statement.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterKeywordsInControlFlowStatements#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions":{"type":"boolean","default":true,"description":"Defines space handling after function keyword for anonymous functions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions#` instead.","scope":"resource"},"js/ts.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeFunctionParenthesis#` instead.","scope":"resource"},"typescript.format.insertSpaceBeforeFunctionParenthesis":{"type":"boolean","default":false,"description":"Defines space handling before function argument parentheses.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceBeforeFunctionParenthesis#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty parenthesis.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing non-empty brackets.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing non-empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces":{"type":"boolean","default":true,"description":"Defines space handling after opening and before closing empty braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing template string braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces#` instead.","scope":"resource"},"typescript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces":{"type":"boolean","default":false,"description":"Defines space handling after opening and before closing JSX expression braces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces#` instead.","scope":"resource"},"js/ts.format.insertSpaceAfterTypeAssertion":{"type":"boolean","default":false,"description":"Defines space handling after type assertions in TypeScript.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.format.insertSpaceAfterTypeAssertion":{"type":"boolean","default":false,"description":"Defines space handling after type assertions in TypeScript.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.insertSpaceAfterTypeAssertion#` instead.","scope":"resource"},"js/ts.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForFunctions#` instead.","scope":"resource"},"typescript.format.placeOpenBraceOnNewLineForFunctions":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for functions or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForFunctions#` instead.","scope":"resource"},"js/ts.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForControlBlocks#` instead.","scope":"resource"},"typescript.format.placeOpenBraceOnNewLineForControlBlocks":{"type":"boolean","default":false,"description":"Defines whether an open brace is put onto a new line for control blocks or not.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.placeOpenBraceOnNewLineForControlBlocks#` instead.","scope":"resource"},"js/ts.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","scope":"language-overridable","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."],"keywords":["JavaScript","TypeScript"]},"javascript.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.semicolons#` instead.","scope":"resource","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."]},"typescript.format.semicolons":{"type":"string","default":"ignore","description":"Defines handling of optional semicolons.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.semicolons#` instead.","scope":"resource","enum":["ignore","insert","remove"],"enumDescriptions":["Don't insert or remove any semicolons.","Insert semicolons at statement ends.","Remove unnecessary semicolons."]},"js/ts.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.indentSwitchCase#` instead.","scope":"resource"},"typescript.format.indentSwitchCase":{"type":"boolean","default":true,"description":"Indent case clauses in switch statements. Requires using TypeScript 5.1+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.format.indentSwitchCase#` instead.","scope":"resource"}}},{"type":"object","title":"Validation","properties":{"js/ts.validate.enabled":{"type":"boolean","default":true,"description":"Enable/disable JavaScript and TypeScript validation.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"typescript.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable TypeScript validation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.validate.enabled#` instead.","scope":"window"},"javascript.validate.enable":{"type":"boolean","default":true,"description":"Enable/disable JavaScript validation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.validate.enabled#` instead.","scope":"window"},"js/ts.reportStyleChecksAsWarnings":{"type":"boolean","default":true,"description":"Report style checks as warnings.","scope":"window","keywords":["TypeScript"]},"typescript.reportStyleChecksAsWarnings":{"type":"boolean","default":true,"description":"Report style checks as warnings.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.reportStyleChecksAsWarnings#` instead.","scope":"window"},"js/ts.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for JavaScript and TypeScript files in the editor.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for JavaScript files in the editor.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggestionActions.enabled#` instead.","scope":"resource"},"typescript.suggestionActions.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion diagnostics for TypeScript files in the editor.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggestionActions.enabled#` instead.","scope":"resource"},"js/ts.tsserver.experimental.enableProjectDiagnostics":{"type":"boolean","default":false,"description":"Enables project wide error reporting.","scope":"window","keywords":["JavaScript","TypeScript","experimental"]},"typescript.tsserver.experimental.enableProjectDiagnostics":{"type":"boolean","default":false,"description":"Enables project wide error reporting.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.experimental.enableProjectDiagnostics#` instead.","scope":"window","keywords":["experimental"]}}},{"type":"object","title":"Implicit Project Config","properties":{"js/ts.implicitProjectConfig.module":{"type":"string","markdownDescription":"Sets the module system for the program. See more: https://www.typescriptlang.org/tsconfig#module.","default":"ESNext","enum":["CommonJS","AMD","System","UMD","ES6","ES2015","ES2020","ESNext","None","ES2022","Node12","NodeNext"],"scope":"window"},"js/ts.implicitProjectConfig.target":{"type":"string","default":"ES2024","markdownDescription":"Set target JavaScript language version for emitted JavaScript and include library declarations. See more: https://www.typescriptlang.org/tsconfig#target.","enum":["ES3","ES5","ES6","ES2015","ES2016","ES2017","ES2018","ES2019","ES2020","ES2021","ES2022","ES2023","ES2024","ESNext"],"scope":"window"},"js/ts.implicitProjectConfig.checkJs":{"type":"boolean","default":false,"markdownDescription":"Enable/disable semantic checking of JavaScript files. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.experimentalDecorators":{"type":"boolean","default":false,"markdownDescription":"Enable/disable `experimentalDecorators` in JavaScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strictNullChecks":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict null checks](https://www.typescriptlang.org/tsconfig#strictNullChecks) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strictFunctionTypes":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict function types](https://www.typescriptlang.org/tsconfig#strictFunctionTypes) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"},"js/ts.implicitProjectConfig.strict":{"type":"boolean","default":true,"markdownDescription":"Enable/disable [strict mode](https://www.typescriptlang.org/tsconfig#strict) in JavaScript and TypeScript files that are not part of a project. Existing `jsconfig.json` or `tsconfig.json` files override this setting.","scope":"window"}}},{"type":"object","title":"Language Features","properties":{"js/ts.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","scope":"resource","keywords":["JavaScript","TypeScript"]},"typescript.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnFileMove.enabled#` instead.","scope":"resource"},"javascript.updateImportsOnFileMove.enabled":{"type":"string","enum":["prompt","always","never"],"markdownEnumDescriptions":["Prompt on each rename.","Always update paths automatically.","Never rename paths and don't prompt."],"default":"prompt","description":"Enable/disable automatic updating of import paths when you rename or move a file in VS Code.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnFileMove.enabled#` instead.","scope":"resource"},"js/ts.autoClosingTags.enabled":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"typescript.autoClosingTags":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.autoClosingTags.enabled#` instead.","scope":"language-overridable"},"javascript.autoClosingTags":{"type":"boolean","default":true,"description":"Enable/disable automatic closing of JSX tags.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.autoClosingTags.enabled#` instead.","scope":"language-overridable"},"js/ts.workspaceSymbols.scope":{"type":"string","enum":["allOpenProjects","currentProject"],"enumDescriptions":["Search all open JavaScript or TypeScript projects for symbols.","Only search for symbols in the current JavaScript or TypeScript project."],"default":"allOpenProjects","markdownDescription":"Controls which files are searched by [Go to Symbol in Workspace](https://code.visualstudio.com/docs/editor/editingevolved#_open-symbol-by-name).","scope":"window","keywords":["TypeScript"]},"typescript.workspaceSymbols.scope":{"type":"string","enum":["allOpenProjects","currentProject"],"enumDescriptions":["Search all open JavaScript or TypeScript projects for symbols.","Only search for symbols in the current JavaScript or TypeScript project."],"default":"allOpenProjects","markdownDescription":"Controls which files are searched by [Go to Symbol in Workspace](https://code.visualstudio.com/docs/editor/editingevolved#_open-symbol-by-name).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.workspaceSymbols.scope#` instead.","scope":"window"},"js/ts.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","scope":"window","keywords":["JavaScript","TypeScript"]},"typescript.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferGoToSourceDefinition#` instead.","scope":"window"},"javascript.preferGoToSourceDefinition":{"type":"boolean","default":false,"description":"Makes `Go to Definition` avoid type declaration files when possible by triggering `Go to Source Definition` instead. This allows `Go to Source Definition` to be triggered with the mouse gesture.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.preferGoToSourceDefinition#` instead.","scope":"window"},"js/ts.workspaceSymbols.excludeLibrarySymbols":{"type":"boolean","default":true,"markdownDescription":"Exclude symbols that come from library files in `Go to Symbol in Workspace` results. Requires using TypeScript 5.3+ in the workspace.","scope":"window","keywords":["TypeScript"]},"typescript.workspaceSymbols.excludeLibrarySymbols":{"type":"boolean","default":true,"markdownDescription":"Exclude symbols that come from library files in `Go to Symbol in Workspace` results. Requires using TypeScript 5.3+ in the workspace.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.workspaceSymbols.excludeLibrarySymbols#` instead.","scope":"window"},"js/ts.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","keywords":["JavaScript","TypeScript"]},"javascript.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnPaste.enabled#` instead."},"typescript.updateImportsOnPaste.enabled":{"scope":"window","type":"boolean","default":true,"markdownDescription":"Automatically update imports when pasting code. Requires TypeScript 5.6+.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.updateImportsOnPaste.enabled#` instead."},"js/ts.hover.maximumLength":{"type":"number","default":500,"description":"The maximum number of characters in a hover. If the hover is longer than this, it will be truncated. Requires TypeScript 5.9+.","scope":"resource"}}},{"type":"object","title":"Suggestions","properties":{"js/ts.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.enabled#` instead.","scope":"language-overridable"},"typescript.suggest.enabled":{"type":"boolean","default":true,"description":"Enable/disable autocomplete suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.enabled#` instead.","scope":"language-overridable"},"js/ts.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.autoImports#` instead.","scope":"resource"},"typescript.suggest.autoImports":{"type":"boolean","default":true,"description":"Enable/disable auto import suggestions.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.autoImports#` instead.","scope":"resource"},"js/ts.suggest.names":{"type":"boolean","default":true,"markdownDescription":"Enable/disable including unique names from the file in JavaScript suggestions. Note that name suggestions are always disabled in JavaScript code that is semantically checked using `@ts-check` or `checkJs`.","scope":"language-overridable","keywords":["JavaScript"]},"javascript.suggest.names":{"type":"boolean","default":true,"markdownDescription":"Enable/disable including unique names from the file in JavaScript suggestions. Note that name suggestions are always disabled in JavaScript code that is semantically checked using `@ts-check` or `checkJs`.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.names#` instead.","scope":"resource"},"js/ts.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.completeFunctionCalls#` instead.","scope":"resource"},"typescript.suggest.completeFunctionCalls":{"type":"boolean","default":false,"description":"Complete functions with their parameter signature.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.completeFunctionCalls#` instead.","scope":"resource"},"js/ts.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.paths#` instead.","scope":"resource"},"typescript.suggest.paths":{"type":"boolean","default":true,"description":"Enable/disable suggestions for paths in import statements and require calls.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.paths#` instead.","scope":"resource"},"js/ts.suggest.jsdoc.enabled":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.completeJSDocs":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.enabled#` instead.","scope":"language-overridable"},"typescript.suggest.completeJSDocs":{"type":"boolean","default":true,"description":"Enable/disable suggestion to complete JSDoc comments.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.enabled#` instead.","scope":"language-overridable"},"js/ts.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.generateReturns#` instead.","scope":"language-overridable"},"typescript.suggest.jsdoc.generateReturns":{"type":"boolean","default":true,"markdownDescription":"Enable/disable generating `@returns` annotations for JSDoc templates.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.jsdoc.generateReturns#` instead.","scope":"language-overridable"},"js/ts.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeAutomaticOptionalChainCompletions#` instead.","scope":"resource"},"typescript.suggest.includeAutomaticOptionalChainCompletions":{"type":"boolean","default":true,"description":"Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires strict null checks to be enabled.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeAutomaticOptionalChainCompletions#` instead.","scope":"resource"},"js/ts.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeCompletionsForImportStatements#` instead.","scope":"resource"},"typescript.suggest.includeCompletionsForImportStatements":{"type":"boolean","default":true,"description":"Enable/disable auto-import-style completions on partially-typed import statements.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.includeCompletionsForImportStatements#` instead.","scope":"resource"},"js/ts.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.classMemberSnippets.enabled#` instead.","scope":"resource"},"typescript.suggest.classMemberSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for class members.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.classMemberSnippets.enabled#` instead.","scope":"resource"},"js/ts.suggest.objectLiteralMethodSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for methods in object literals.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.suggest.objectLiteralMethodSnippets.enabled":{"type":"boolean","default":true,"description":"Enable/disable snippet completions for methods in object literals.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.suggest.objectLiteralMethodSnippets.enabled#` instead.","scope":"resource"}}},{"type":"object","title":"CodeLens","properties":{"js/ts.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.enabled#` instead.","scope":"window"},"typescript.referencesCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable references CodeLens in JavaScript and TypeScript files. This CodeLens shows the number of references for classes and exported functions and allows you to peek or navigate to them.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.enabled#` instead.","scope":"window"},"js/ts.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.showOnAllFunctions#` instead.","scope":"window"},"typescript.referencesCodeLens.showOnAllFunctions":{"type":"boolean","default":false,"markdownDescription":"Enable/disable the [references CodeLens](#js/ts.referencesCodeLens.enabled) on all functions in JavaScript and TypeScript files.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.referencesCodeLens.showOnAllFunctions#` instead.","scope":"window"},"js/ts.implementationsCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable implementations CodeLens in TypeScript files. This CodeLens shows the implementers of TypeScript interfaces.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.enabled":{"type":"boolean","default":false,"description":"Enable/disable implementations CodeLens in TypeScript files. This CodeLens shows the implementers of TypeScript interfaces.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.enabled#` instead.","scope":"window"},"js/ts.implementationsCodeLens.showOnInterfaceMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) on TypeScript interface methods.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.showOnInterfaceMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) on TypeScript interface methods.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.showOnInterfaceMethods#` instead.","scope":"window"},"js/ts.implementationsCodeLens.showOnAllClassMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable showing [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) above all TypeScript class methods instead of only on abstract methods.","scope":"language-overridable","keywords":["TypeScript"]},"typescript.implementationsCodeLens.showOnAllClassMethods":{"type":"boolean","default":false,"markdownDescription":"Enable/disable showing [implementations CodeLens](#js/ts.implementationsCodeLens.enabled) above all TypeScript class methods instead of only on abstract methods.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.implementationsCodeLens.showOnAllClassMethods#` instead.","scope":"window"}}},{"type":"object","title":"Inlay Hints","properties":{"js/ts.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.enabled#` instead.","scope":"resource"},"typescript.inlayHints.parameterNames.enabled":{"type":"string","enum":["none","literals","all"],"enumDescriptions":["Disable parameter name hints.","Enable parameter name hints only for literal arguments.","Enable parameter name hints for literal and non-literal arguments."],"default":"none","markdownDescription":"Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName#` instead.","scope":"resource"},"typescript.inlayHints.parameterNames.suppressWhenArgumentMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress parameter name hints on arguments whose text is identical to the parameter name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterNames.suppressWhenArgumentMatchesName#` instead.","scope":"resource"},"js/ts.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.parameterTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.parameterTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.variableTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName#` instead.","scope":"resource"},"typescript.inlayHints.variableTypes.suppressWhenTypeMatchesName":{"type":"boolean","default":true,"markdownDescription":"Suppress type hints on variables whose name is identical to the type name.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.variableTypes.suppressWhenTypeMatchesName#` instead.","scope":"resource"},"js/ts.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.propertyDeclarationTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.propertyDeclarationTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.propertyDeclarationTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","scope":"language-overridable","keywords":["JavaScript","TypeScript"]},"javascript.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.functionLikeReturnTypes.enabled#` instead.","scope":"resource"},"typescript.inlayHints.functionLikeReturnTypes.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for implicit return types on function signatures:\n```typescript\n\nfunction foo() /* :number */ {\n\treturn Date.now();\n} \n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.functionLikeReturnTypes.enabled#` instead.","scope":"resource"},"js/ts.inlayHints.enumMemberValues.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for member values in enum declarations:\n```typescript\n\nenum MyValue {\n\tA /* = 0 */;\n\tB /* = 1 */;\n}\n \n```","scope":"language-overridable","keywords":["TypeScript"]},"typescript.inlayHints.enumMemberValues.enabled":{"type":"boolean","default":false,"markdownDescription":"Enable/disable inlay hints for member values in enum declarations:\n```typescript\n\nenum MyValue {\n\tA /* = 0 */;\n\tB /* = 1 */;\n}\n \n```","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.inlayHints.enumMemberValues.enabled#` instead.","scope":"resource"}}},{"type":"object","title":"TS Server Advanced Settings","properties":{"js/ts.tsdk.promptToUseWorkspaceVersion":{"type":"boolean","default":false,"description":"Enables prompting of users to use the TypeScript version configured in the workspace for Intellisense.","scope":"window","keywords":["TypeScript"]},"typescript.enablePromptUseWorkspaceTsdk":{"type":"boolean","default":false,"description":"Enables prompting of users to use the TypeScript version configured in the workspace for Intellisense.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsdk.promptToUseWorkspaceVersion#` instead.","scope":"window"},"js/ts.tsserver.automaticTypeAcquisition.enabled":{"type":"boolean","default":true,"markdownDescription":"Enable [automatic type acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition). Automatic type acquisition fetches `@types` packages from npm to improve IntelliSense for external libraries.","scope":"window","keywords":["TypeScript","usesOnlineServices"]},"typescript.disableAutomaticTypeAcquisition":{"type":"boolean","default":false,"markdownDescription":"Disables [automatic type acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition). Automatic type acquisition fetches `@types` packages from npm to improve IntelliSense for external libraries.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.automaticTypeAcquisition.enabled#` instead.","scope":"window","keywords":["usesOnlineServices"]},"js/ts.tsserver.node.path":{"type":"string","markdownDescription":"Run TS Server on a custom Node installation. This can be a path to a Node executable, or `node` if you want VS Code to detect a Node installation.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.nodePath":{"type":"string","markdownDescription":"Run TS Server on a custom Node installation. This can be a path to a Node executable, or `node` if you want VS Code to detect a Node installation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.node.path#` instead.","scope":"window"},"js/ts.tsserver.npm.path":{"type":"string","markdownDescription":"Specifies the path to the npm executable used for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","scope":"machine","keywords":["TypeScript"]},"typescript.npm":{"type":"string","markdownDescription":"Specifies the path to the npm executable used for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.npm.path#` instead.","scope":"machine"},"js/ts.tsserver.checkNpmIsInstalled":{"type":"boolean","default":true,"markdownDescription":"Check if npm is installed for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","scope":"window","keywords":["TypeScript"]},"typescript.check.npmIsInstalled":{"type":"boolean","default":true,"markdownDescription":"Check if npm is installed for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.checkNpmIsInstalled#` instead.","scope":"window"},"js/ts.tsserver.web.projectWideIntellisense.enabled":{"type":"boolean","default":true,"description":"Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.projectWideIntellisense.enabled":{"type":"boolean","default":true,"description":"Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.projectWideIntellisense.enabled#` instead.","scope":"window"},"js/ts.tsserver.web.projectWideIntellisense.suppressSemanticErrors":{"type":"boolean","default":false,"description":"Suppresses semantic errors on web even when project wide IntelliSense is enabled. This is always on when project wide IntelliSense is not enabled or available. See `#js/ts.tsserver.web.projectWideIntellisense.enabled#`","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.projectWideIntellisense.suppressSemanticErrors":{"type":"boolean","default":false,"description":"Suppresses semantic errors on web even when project wide IntelliSense is enabled. This is always on when project wide IntelliSense is not enabled or available. See `#js/ts.tsserver.web.projectWideIntellisense.enabled#`","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.projectWideIntellisense.suppressSemanticErrors#` instead.","scope":"window"},"js/ts.tsserver.web.typeAcquisition.enabled":{"type":"boolean","default":true,"description":"Enable/disable package acquisition on the web. This enables IntelliSense for imported packages. Requires `#js/ts.tsserver.web.projectWideIntellisense.enabled#`. Currently not supported for Safari.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.web.typeAcquisition.enabled":{"type":"boolean","default":true,"description":"Enable/disable package acquisition on the web. This enables IntelliSense for imported packages. Requires `#js/ts.tsserver.web.projectWideIntellisense.enabled#`. Currently not supported for Safari.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.web.typeAcquisition.enabled#` instead.","scope":"window"},"js/ts.tsserver.useSyntaxServer":{"type":"string","scope":"window","description":"Controls if TypeScript launches a dedicated server to more quickly handle syntax related operations, such as computing code folding.","default":"auto","enum":["always","never","auto"],"enumDescriptions":["Use a lighter weight syntax server to handle all IntelliSense operations. This disables project-wide features including auto-imports, cross-file completions, and go to definition for symbols in other files. Only use this for very large projects where performance is critical.","Don't use a dedicated syntax server. Use a single server to handle all IntelliSense operations.","Spawn both a full server and a lighter weight server dedicated to syntax operations. The syntax server is used to speed up syntax operations and provide IntelliSense while projects are loading."],"keywords":["TypeScript"]},"typescript.tsserver.useSyntaxServer":{"type":"string","scope":"window","description":"Controls if TypeScript launches a dedicated server to more quickly handle syntax related operations, such as computing code folding.","default":"auto","enum":["always","never","auto"],"enumDescriptions":["Use a lighter weight syntax server to handle all IntelliSense operations. This disables project-wide features including auto-imports, cross-file completions, and go to definition for symbols in other files. Only use this for very large projects where performance is critical.","Don't use a dedicated syntax server. Use a single server to handle all IntelliSense operations.","Spawn both a full server and a lighter weight server dedicated to syntax operations. The syntax server is used to speed up syntax operations and provide IntelliSense while projects are loading."],"markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.useSyntaxServer#` instead."},"js/ts.tsserver.maxMemory":{"type":"number","default":3072,"markdownDescription":"The maximum amount of memory (in MB) to allocate to the TypeScript server process. To use a memory limit greater than 4 GB, use `#js/ts.tsserver.node.path#` to run TS Server with a custom Node installation.","scope":"window","keywords":["TypeScript"]},"js/ts.tsserver.diagnosticDir":{"type":"string","markdownDescription":"Directory where TypeScript server writes Node diagnostic output by passing `--diagnostic-dir`.","scope":"machine","keywords":["TypeScript","diagnostic","memory"]},"typescript.tsserver.maxTsServerMemory":{"type":"number","default":3072,"markdownDescription":"The maximum amount of memory (in MB) to allocate to the TypeScript server process. To use a memory limit greater than 4 GB, use `#js/ts.tsserver.node.path#` to run TS Server with a custom Node installation.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.maxMemory#` instead.","scope":"window"},"js/ts.tsserver.heapSnapshot":{"type":"number","default":0,"minimum":0,"markdownDescription":"Controls how many near-heap-limit snapshots TypeScript server writes by passing `--heapsnapshot-near-heap-limit`. Set to `0` to disable.","scope":"window","keywords":["TypeScript","memory","diagnostics"]},"js/ts.tsserver.heapProfile":{"type":"object","default":{"enabled":false},"markdownDescription":"Configures heap profiling for TypeScript server.","scope":"machine","properties":{"enabled":{"type":"boolean","default":false,"description":"Enable heap profiling for TypeScript server by passing `--heap-prof`."},"dir":{"type":"string","description":"Directory where TypeScript server writes heap profiles by passing `--heap-prof-dir`."},"interval":{"type":"number","minimum":1,"description":"Sampling interval in bytes for TypeScript server heap profiling by passing `--heap-prof-interval`."}},"keywords":["TypeScript","memory","heap","profile"]},"js/ts.tsserver.watchOptions":{"description":"Configure which watching strategies should be used to keep track of files and directories.","scope":"window","default":"vscode","oneOf":[{"type":"string","const":"vscode","description":"Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace."},{"type":"object","properties":{"watchFile":{"type":"string","description":"Strategy for how individual files are watched.","enum":["fixedChunkSizePolling","fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling","useFsEvents","useFsEventsOnParentDirectory"],"enumDescriptions":["Polls files in chunks at regular interval.","Check every file for changes several times a second at a fixed interval.","Check every file for changes several times a second, but use heuristics to check certain types of files less frequently than others.","Use a dynamic queue where less-frequently modified files will be checked less often.","Attempt to use the operating system/file system's native events for file changes.","Attempt to use the operating system/file system's native events to listen for changes on a file's containing directories. This can use fewer file watchers, but might be less accurate."],"default":"useFsEvents"},"watchDirectory":{"type":"string","description":"Strategy for how entire directory trees are watched under systems that lack recursive file-watching functionality.","enum":["fixedChunkSizePolling","fixedPollingInterval","dynamicPriorityPolling","useFsEvents"],"enumDescriptions":["Polls directories in chunks at regular interval.","Check every directory for changes several times a second at a fixed interval.","Use a dynamic queue where less-frequently modified directories will be checked less often.","Attempt to use the operating system/file system's native events for directory changes."],"default":"useFsEvents"},"fallbackPolling":{"type":"string","description":"When using file system events, this option specifies the polling strategy that gets used when the system runs out of native file watchers and/or doesn't support native file watchers.","enum":["fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling"],"enumDescriptions":["configuration.tsserver.watchOptions.fallbackPolling.fixedPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.priorityPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.dynamicPriorityPolling"]},"synchronousWatchDirectory":{"type":"boolean","description":"Disable deferred watching on directories. Deferred watching is useful when lots of file changes might occur at once (e.g. a change in node_modules from running npm install), but you might want to disable it with this flag for some less-common setups."}}}],"keywords":["TypeScript"]},"typescript.tsserver.watchOptions":{"description":"Configure which watching strategies should be used to keep track of files and directories.","scope":"window","default":"vscode","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.watchOptions#` instead.","oneOf":[{"type":"string","const":"vscode","description":"Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace."},{"type":"object","properties":{"watchFile":{"type":"string","description":"Strategy for how individual files are watched.","enum":["fixedChunkSizePolling","fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling","useFsEvents","useFsEventsOnParentDirectory"],"enumDescriptions":["Polls files in chunks at regular interval.","Check every file for changes several times a second at a fixed interval.","Check every file for changes several times a second, but use heuristics to check certain types of files less frequently than others.","Use a dynamic queue where less-frequently modified files will be checked less often.","Attempt to use the operating system/file system's native events for file changes.","Attempt to use the operating system/file system's native events to listen for changes on a file's containing directories. This can use fewer file watchers, but might be less accurate."],"default":"useFsEvents"},"watchDirectory":{"type":"string","description":"Strategy for how entire directory trees are watched under systems that lack recursive file-watching functionality.","enum":["fixedChunkSizePolling","fixedPollingInterval","dynamicPriorityPolling","useFsEvents"],"enumDescriptions":["Polls directories in chunks at regular interval.","Check every directory for changes several times a second at a fixed interval.","Use a dynamic queue where less-frequently modified directories will be checked less often.","Attempt to use the operating system/file system's native events for directory changes."],"default":"useFsEvents"},"fallbackPolling":{"type":"string","description":"When using file system events, this option specifies the polling strategy that gets used when the system runs out of native file watchers and/or doesn't support native file watchers.","enum":["fixedPollingInterval","priorityPollingInterval","dynamicPriorityPolling"],"enumDescriptions":["configuration.tsserver.watchOptions.fallbackPolling.fixedPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.priorityPollingInterval","configuration.tsserver.watchOptions.fallbackPolling.dynamicPriorityPolling"]},"synchronousWatchDirectory":{"type":"boolean","description":"Disable deferred watching on directories. Deferred watching is useful when lots of file changes might occur at once (e.g. a change in node_modules from running npm install), but you might want to disable it with this flag for some less-common setups."}}}]},"js/ts.tsserver.tracing.enabled":{"type":"boolean","default":false,"description":"Enables tracing TS server performance to a directory. These trace files can be used to diagnose TS Server performance issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.enableTracing":{"type":"boolean","default":false,"description":"Enables tracing TS server performance to a directory. These trace files can be used to diagnose TS Server performance issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.tracing.enabled#` instead.","scope":"window"},"js/ts.tsserver.log":{"type":"string","enum":["off","terse","normal","verbose","requestTime"],"default":"off","description":"Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","scope":"window","keywords":["TypeScript"]},"typescript.tsserver.log":{"type":"string","enum":["off","terse","normal","verbose","requestTime"],"default":"off","description":"Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.log#` instead.","scope":"window"},"js/ts.tsserver.pluginPaths":{"type":"array","items":{"type":"string","description":"Either an absolute or relative path. Relative path will be resolved against workspace folder(s)."},"default":[],"description":"Additional paths to discover TypeScript Language Service plugins.","scope":"machine","keywords":["TypeScript"]},"typescript.tsserver.pluginPaths":{"type":"array","items":{"type":"string","description":"Either an absolute or relative path. Relative path will be resolved against workspace folder(s)."},"default":[],"description":"Additional paths to discover TypeScript Language Service plugins.","markdownDeprecationMessage":"This setting is deprecated. Use `#js/ts.tsserver.pluginPaths#` instead.","scope":"machine"}}}],"commands":[{"command":"typescript.reloadProjects","title":"Reload Project","category":"TypeScript"},{"command":"javascript.reloadProjects","title":"Reload Project","category":"JavaScript"},{"command":"typescript.selectTypeScriptVersion","title":"Select TypeScript Version...","category":"TypeScript"},{"command":"typescript.goToProjectConfig","title":"Go to Project Configuration (tsconfig)","category":"TypeScript"},{"command":"javascript.goToProjectConfig","title":"Go to Project Configuration (jsconfig / tsconfig)","category":"JavaScript"},{"command":"typescript.openTsServerLog","title":"Open TS Server log","category":"TypeScript"},{"command":"typescript.restartTsServer","title":"Restart TS Server","category":"TypeScript"},{"command":"typescript.findAllFileReferences","title":"Find File References","category":"TypeScript"},{"command":"typescript.goToSourceDefinition","title":"Go to Source Definition","category":"TypeScript"},{"command":"typescript.sortImports","title":"Sort Imports","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"javascript.sortImports","title":"Sort Imports","category":"JavaScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"typescript.removeUnusedImports","title":"Remove Unused Imports","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"javascript.removeUnusedImports","title":"Remove Unused Imports","category":"JavaScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile"},{"command":"typescript.experimental.enableTsgo","title":"Use TypeScript Go (Experimental)","category":"TypeScript","enablement":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && config.typescript-go.executablePath"},{"command":"typescript.experimental.disableTsgo","title":"Stop using TypeScript Go (Experimental)","category":"TypeScript","enablement":"config.js/ts.experimental.useTsgo || config.typescript.experimental.useTsgo"}],"menus":{"commandPalette":[{"command":"typescript.reloadProjects","when":"editorLangId == typescript && typescript.isManagedFile"},{"command":"typescript.reloadProjects","when":"editorLangId == typescriptreact && typescript.isManagedFile"},{"command":"javascript.reloadProjects","when":"editorLangId == javascript && typescript.isManagedFile"},{"command":"javascript.reloadProjects","when":"editorLangId == javascriptreact && typescript.isManagedFile"},{"command":"typescript.goToProjectConfig","when":"editorLangId == typescript && typescript.isManagedFile"},{"command":"typescript.goToProjectConfig","when":"editorLangId == typescriptreact && typescript.isManagedFile"},{"command":"javascript.goToProjectConfig","when":"editorLangId == javascript && typescript.isManagedFile"},{"command":"javascript.goToProjectConfig","when":"editorLangId == javascriptreact && typescript.isManagedFile"},{"command":"typescript.selectTypeScriptVersion","when":"typescript.isManagedFile"},{"command":"typescript.openTsServerLog","when":"typescript.isManagedFile"},{"command":"typescript.restartTsServer","when":"typescript.isManagedFile"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && typescript.isManagedFile"},{"command":"typescript.goToSourceDefinition","when":"tsSupportsSourceDefinition && typescript.isManagedFile"},{"command":"typescript.sortImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.sortImports\\b/ && editorLangId =~ /^typescript(react)?$/"},{"command":"javascript.sortImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.sortImports\\b/ && editorLangId =~ /^javascript(react)?$/"},{"command":"typescript.removeUnusedImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.removeUnusedImports\\b/ && editorLangId =~ /^typescript(react)?$/"},{"command":"javascript.removeUnusedImports","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && typescript.isManagedFile && supportedCodeAction =~ /(\\s|^)source\\.removeUnusedImports\\b/ && editorLangId =~ /^javascript(react)?$/"}],"editor/context":[{"command":"typescript.goToSourceDefinition","when":"!config.js/ts.experimental.useTsgo && !config.typescript.experimental.useTsgo && tsSupportsSourceDefinition && (resourceLangId == typescript || resourceLangId == typescriptreact || resourceLangId == javascript || resourceLangId == javascriptreact)","group":"navigation@1.41"}],"explorer/context":[{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescript","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescriptreact","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascript","group":"4_search"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascriptreact","group":"4_search"}],"editor/title/context":[{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascript"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == javascriptreact"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescript"},{"command":"typescript.findAllFileReferences","when":"tsSupportsFileReferences && resourceLangId == typescriptreact"}]},"breakpoints":[{"language":"typescript"},{"language":"typescriptreact"}],"taskDefinitions":[{"type":"typescript","required":["tsconfig"],"properties":{"tsconfig":{"type":"string","description":"The tsconfig file that defines the TS build."},"option":{"type":"string"}},"when":"shellExecutionSupported"}],"problemPatterns":[{"name":"tsc","regexp":"^([^\\s].*)[\\(:](\\d+)[,:](\\d+)(?:\\):\\s+|\\s+-\\s+)(error|warning|info)\\s+TS(\\d+)\\s*:\\s*(.*)$","file":1,"line":2,"column":3,"severity":4,"code":5,"message":6}],"problemMatchers":[{"name":"tsc","label":"TypeScript problems","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc"},{"name":"tsgo-watch","label":"TypeScript problems (watch mode)","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc","background":{"activeOnStart":true,"beginsPattern":{"regexp":"^build starting at .*$"},"endsPattern":{"regexp":"^build finished in .*$"}}},{"name":"tsc-watch","label":"TypeScript problems (watch mode)","owner":"typescript","source":"ts","applyTo":"closedDocuments","fileLocation":["relative","${cwd}"],"pattern":"$tsc","background":{"activeOnStart":true,"beginsPattern":{"regexp":"^\\s*(?:message TS6032:|\\[?\\D*.{1,2}[:.].{1,2}[:.].{1,2}\\D*(├\\D*\\d{1,2}\\D+┤)?(?:\\]| -)) (Starting compilation in watch mode|File change detected\\. Starting incremental compilation)\\.\\.\\."},"endsPattern":{"regexp":"^\\s*(?:message TS6042:|\\[?\\D*.{1,2}[:.].{1,2}[:.].{1,2}\\D*(├\\D*\\d{1,2}\\D+┤)?(?:\\]| -)) (?:Compilation complete\\.|Found \\d+ errors?\\.) Watching for file changes\\."}}}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"},"originalEnabledApiProposals":["workspaceTrust","multiDocumentHighlightProvider","codeActionAI","codeActionRanges","editorHoverVerbosityLevel"]},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/typescript-language-features","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.vb"},"manifest":{"name":"vb","displayName":"Visual Basic Language Basics","description":"Provides snippets, syntax highlighting, bracket matching and folding in Visual Basic files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"scripts":{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin textmate/asp.vb.net.tmbundle Syntaxes/ASP%20VB.net.plist ./syntaxes/asp-vb-net.tmLanguage.json"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"vb","extensions":[".vb",".brs",".vbs",".bas",".vba"],"aliases":["Visual Basic","vb"],"configuration":"./language-configuration.json"}],"grammars":[{"language":"vb","scopeName":"source.asp.vb.net","path":"./syntaxes/asp-vb-net.tmLanguage.json"}],"snippets":[{"language":"vb","path":"./snippets/vb.code-snippets"}]},"repository":{"type":"git","url":"https://github.com/microsoft/vscode.git"}},"location":{"$mid":1,"path":"/d:/Software/Microsoft/Visual Studio Code/645f29cc31/resources/app/extensions/vb","scheme":"file"},"isBuiltin":true,"targetPlatform":"undefined","isValid":true,"validations":[],"preRelease":false,"forceAutoUpdate":false},{"type":0,"identifier":{"id":"vscode.xml"},"manifest":{"name":"xml","displayName":"XML Language Basics","description":"Provides syntax highlighting and bracket matching in XML files.","version":"10.0.0","publisher":"vscode","license":"MIT","engines":{"vscode":"*"},"categories":["Programming Languages"],"contributes":{"languages":[{"id":"xml","extensions":[".xml",".xsd",".ascx",".atom",".axml",".axaml",".bpmn",".cpt",".csl",".csproj",".csproj.user",".dita",".ditamap",".dtd",".ent",".mod",".dtml",".fsproj",".fxml",".iml",".isml",".jmx",".launch",".menu",".mxml",".nuspec",".opml",".owl",".proj",".props",".pt",".publishsettings",".pubxml",".pubxml.user",".rbxlx",".rbxmx",".rdf",".rng",".rss",".shproj",".slnx",".storyboard",".svg",".targets",".tld",".tmx",".vbproj",".vbproj.user",".vcxproj",".vcxproj.filters",".wixproj",".wsdl",".wxi",".wxl",".wxs",".xaml",".xbl",".xib",".xlf",".xliff",".xpdl",".xul",".xoml"],"firstLine":"(\\<\\?xml.*)|(\\{if(t&&typeof t=="object"||typeof t=="function")for(let n of l(t))!d.call(s,n)&&n!==e&&S(s,n,{get:()=>t[n],enumerable:!(o=f(t,n))||o.enumerable});return s};var _=(s,t,e)=>(e=s!=null?E(T(s)):{},C(t||!s||!s.__esModule?S(e,"default",{value:s,enumerable:!0}):e,s));var P=_(require("fs"));var h=_(require("http")),c=class{constructor(t){this.handlerName=t;let e=process.env.VSCODE_GIT_IPC_HANDLE;if(!e)throw new Error("Missing VSCODE_GIT_IPC_HANDLE");this.ipcHandlePath=e}handlerName;ipcHandlePath;call(t){let e={socketPath:this.ipcHandlePath,path:`/${this.handlerName}`,method:"POST"};return new Promise((o,n)=>{let p=h.request(e,r=>{if(r.statusCode!==200)return n(new Error(`Bad status code: ${r.statusCode}`));let a=[];r.on("data",u=>a.push(u)),r.on("end",()=>o(JSON.parse(Buffer.concat(a).toString("utf8"))))});p.on("error",r=>n(r)),p.write(JSON.stringify(t)),p.end()})}};function i(s){console.error("Missing or invalid credentials."),console.error(s),process.exit(1)}function v(s){if(!process.env.VSCODE_GIT_ASKPASS_PIPE)return i("Missing pipe");if(!process.env.VSCODE_GIT_ASKPASS_TYPE)return i("Missing type");if(process.env.VSCODE_GIT_ASKPASS_TYPE!=="https"&&process.env.VSCODE_GIT_ASKPASS_TYPE!=="ssh")return i(`Invalid type: ${process.env.VSCODE_GIT_ASKPASS_TYPE}`);if(process.env.VSCODE_GIT_COMMAND==="fetch"&&process.env.VSCODE_GIT_FETCH_SILENT)return i("Skip silent fetch commands");let t=process.env.VSCODE_GIT_ASKPASS_PIPE,e=process.env.VSCODE_GIT_ASKPASS_TYPE;new c("askpass").call({askpassType:e,argv:s}).then(n=>{P.writeFileSync(t,n+` +`),setTimeout(()=>process.exit(0),0)}).catch(n=>i(n))}v(process.argv); +//# sourceMappingURL=askpass-main.js.map diff --git a/Extension/artifacts/stm32-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh b/Extension/artifacts/stm32-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh new file mode 100644 index 000000000..93a08c389 --- /dev/null +++ b/Extension/artifacts/stm32-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/askpass.sh @@ -0,0 +1,5 @@ +#!/bin/sh +VSCODE_GIT_ASKPASS_PIPE=`mktemp` +ELECTRON_RUN_AS_NODE="1" VSCODE_GIT_ASKPASS_PIPE="$VSCODE_GIT_ASKPASS_PIPE" VSCODE_GIT_ASKPASS_TYPE="https" "$VSCODE_GIT_ASKPASS_NODE" "$VSCODE_GIT_ASKPASS_MAIN" $VSCODE_GIT_ASKPASS_EXTRA_ARGS $* +cat $VSCODE_GIT_ASKPASS_PIPE +rm $VSCODE_GIT_ASKPASS_PIPE diff --git a/Extension/artifacts/stm32-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh b/Extension/artifacts/stm32-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh new file mode 100644 index 000000000..8fb014e5c --- /dev/null +++ b/Extension/artifacts/stm32-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass-empty.sh @@ -0,0 +1,2 @@ +#!/bin/sh +echo '' \ No newline at end of file diff --git a/Extension/artifacts/stm32-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh b/Extension/artifacts/stm32-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh new file mode 100644 index 000000000..dca45bc84 --- /dev/null +++ b/Extension/artifacts/stm32-host/user/User/globalStorage/vscode.git/askpass/70789581cae28aa7/ssh-askpass.sh @@ -0,0 +1,5 @@ +#!/bin/sh +VSCODE_GIT_ASKPASS_PIPE=`mktemp` +ELECTRON_RUN_AS_NODE="1" VSCODE_GIT_ASKPASS_PIPE="$VSCODE_GIT_ASKPASS_PIPE" VSCODE_GIT_ASKPASS_TYPE="ssh" "$VSCODE_GIT_ASKPASS_NODE" "$VSCODE_GIT_ASKPASS_MAIN" $VSCODE_GIT_ASKPASS_EXTRA_ARGS $* +cat $VSCODE_GIT_ASKPASS_PIPE +rm $VSCODE_GIT_ASKPASS_PIPE diff --git a/Extension/artifacts/stm32-host/user/User/settings.json b/Extension/artifacts/stm32-host/user/User/settings.json new file mode 100644 index 000000000..0070cab2f --- /dev/null +++ b/Extension/artifacts/stm32-host/user/User/settings.json @@ -0,0 +1 @@ +{"workbench.startupEditor":"none","window.restoreWindows":"none"} \ No newline at end of file diff --git a/Extension/artifacts/stm32-host/user/User/workspaceStorage/94a880a43aac17c09baaef9502a40b14/meta.json b/Extension/artifacts/stm32-host/user/User/workspaceStorage/94a880a43aac17c09baaef9502a40b14/meta.json new file mode 100644 index 000000000..a3e7f27e9 --- /dev/null +++ b/Extension/artifacts/stm32-host/user/User/workspaceStorage/94a880a43aac17c09baaef9502a40b14/meta.json @@ -0,0 +1,4 @@ +{ + "id": "94a880a43aac17c09baaef9502a40b14", + "name": "stm32_freertos" +} \ No newline at end of file diff --git a/Extension/artifacts/stm32-host/user/WebStorage/1/CacheStorage/04858d01-d80b-4bbd-8e34-6c4af8600583/index b/Extension/artifacts/stm32-host/user/WebStorage/1/CacheStorage/04858d01-d80b-4bbd-8e34-6c4af8600583/index new file mode 100644 index 000000000..79bd403ac Binary files /dev/null and b/Extension/artifacts/stm32-host/user/WebStorage/1/CacheStorage/04858d01-d80b-4bbd-8e34-6c4af8600583/index differ diff --git a/Extension/artifacts/stm32-host/user/WebStorage/1/CacheStorage/04858d01-d80b-4bbd-8e34-6c4af8600583/index-dir/the-real-index b/Extension/artifacts/stm32-host/user/WebStorage/1/CacheStorage/04858d01-d80b-4bbd-8e34-6c4af8600583/index-dir/the-real-index new file mode 100644 index 000000000..4bc05c686 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/WebStorage/1/CacheStorage/04858d01-d80b-4bbd-8e34-6c4af8600583/index-dir/the-real-index differ diff --git a/Extension/artifacts/stm32-host/user/WebStorage/1/CacheStorage/index.txt b/Extension/artifacts/stm32-host/user/WebStorage/1/CacheStorage/index.txt new file mode 100644 index 000000000..b5445a9ba Binary files /dev/null and b/Extension/artifacts/stm32-host/user/WebStorage/1/CacheStorage/index.txt differ diff --git a/Extension/artifacts/stm32-host/user/WebStorage/QuotaManager b/Extension/artifacts/stm32-host/user/WebStorage/QuotaManager new file mode 100644 index 000000000..321835955 Binary files /dev/null and b/Extension/artifacts/stm32-host/user/WebStorage/QuotaManager differ diff --git a/Extension/artifacts/stm32-host/user/WebStorage/QuotaManager-journal b/Extension/artifacts/stm32-host/user/WebStorage/QuotaManager-journal new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/stm32-host/user/languagepacks.json b/Extension/artifacts/stm32-host/user/languagepacks.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/Extension/artifacts/stm32-host/user/languagepacks.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/agenthost.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/agenthost.log new file mode 100644 index 000000000..7657581b5 --- /dev/null +++ b/Extension/artifacts/stm32-host/user/logs/20260910T081018/agenthost.log @@ -0,0 +1,31 @@ +2026-09-10 08:10:19.885 [info] Agent Host process started successfully +2026-09-10 08:10:19.903 [info] AgentService initialized +2026-09-10 08:10:19.908 [info] Registering agent provider: copilotcli +2026-09-10 08:10:19.909 [info] Registering agent provider: claude +2026-09-10 08:10:19.920 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 08:10:19.927 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 08:10:19.938 [info] [Claude] Models refreshed (merged). Count: 0, +2026-09-10 08:10:19.958 [info] [CommandAutoApprover] Tree-sitter initialized (bash=available, powershell=available) +2026-09-10 08:10:19.971 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 08:10:19.974 [info] [ProtocolServer] Initialize: clientId=a4889438-244e-4782-ae7d-f5dc8ccf1440, protocolVersions=[0.9.0, 0.7.0, 0.6.0, 0.5.2, 0.5.1] +2026-09-10 08:10:20.006 [info] [AgentService] showExternalSessions changed 'none' -> 'recent'; queueing session list reconciliation +2026-09-10 08:10:20.025 [info] [Copilot] Listing chats to migrate... +2026-09-10 08:10:20.026 [info] [Copilot] Starting CopilotClient... +2026-09-10 08:10:20.027 [info] [Copilot] Set CLI env: GITHUB_COPILOT_INTEGRATION_ID=vscode-chat +2026-09-10 08:10:20.029 [info] [Copilot] Resolved CLI path: d:\Software\Microsoft\Visual Studio Code\645f29cc31\resources\app\node_modules.asar.unpacked\@github\copilot-win32-x64\index.js +2026-09-10 08:10:20.087 [info] [Claude] SDK not downloaded yet; deferring the migratable chat list +2026-09-10 08:10:20.269 [info] [WebSocketProtocol] Server listening on socket \\.\pipe\vscode-agent-host-b7c4674fa3af2e0d69ce81060293f456a43a87a4a5a2b50bb0906abe56cfcd67-36bpDtol0nnWO8iKARAZ9Q +2026-09-10 08:10:20.824 [info] [Copilot] CopilotClient started successfully +2026-09-10 08:10:20.827 [info] [Copilot] Listed 0 SDK session(s) for chats to migrate +2026-09-10 08:10:20.827 [info] [Copilot] Found 0 legacy sessions +2026-09-10 08:10:20.835 [info] [Copilot] Listing discoverable chats... +2026-09-10 08:10:20.838 [info] [Copilot] Listed 0 SDK session(s) for discoverable chats +2026-09-10 08:10:20.838 [info] [AgentService] pruned 0 stale external session row(s) older than 30 days +2026-09-10 08:10:20.839 [info] [Copilot] Chat discovery: 0 SDK session(s) -> 0 external, 0 adoptable legacy extension-host, 0 suppressed adoptable legacy extension-host, 0 suppressed archived legacy extension-host, 0 already known to Agent Host, 0 without a working directory, 0 with unsupported or missing client name, 0 outside the import window, 0 without repository metadata, 0 failed to classify (adopt legacy extension-host chats: false) +2026-09-10 08:10:20.839 [info] [Claude] SDK not downloaded yet; deferring chat discovery +2026-09-10 08:10:21.052 [info] [Copilot] Restarting CopilotClient (CAPI proxy configuration changed (proxy (none) -> http://127.0.0.1:7890)) +2026-09-10 08:10:25.609 [info] [ProtocolServer] Client disconnected: a4889438-244e-4782-ae7d-f5dc8ccf1440, subscriptions=1 +2026-09-10 08:10:25.610 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 08:10:25.611 [info] [Copilot] BYOK bridge changed; refreshing models +2026-09-10 08:10:25.613 [info] AgentService: shutting down all providers... +2026-09-10 08:10:25.613 [info] [Copilot] Shutting down... diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/editSessions.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/editSessions.log new file mode 100644 index 000000000..11e1da50c --- /dev/null +++ b/Extension/artifacts/stm32-host/user/logs/20260910T081018/editSessions.log @@ -0,0 +1 @@ +2026-09-10 08:10:21.109 [info] Prompting to enable cloud changes, has application previously launched from Continue On flow: false diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/main.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/main.log new file mode 100644 index 000000000..dc87b36ed --- /dev/null +++ b/Extension/artifacts/stm32-host/user/logs/20260910T081018/main.log @@ -0,0 +1,12 @@ +2026-09-10 08:10:18.711 [info] StorageMainService: creating application shared storage +2026-09-10 08:10:18.711 [info] [shared storage] Creating shared storage database at ':memory:' (wasCreated: true) +2026-09-10 08:10:18.711 [info] [shared storage] Initializing fallback application storage (path: in-memory) +2026-09-10 08:10:18.711 [error] Error: Error mutex already exists + at Ks.installMutex (file:///D:/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/out/main.js:561:27488) +2026-09-10 08:10:18.724 [info] [shared storage] Fallback application storage initialized with 3 items +2026-09-10 08:10:19.497 [info] update#setState idle +2026-09-10 08:10:19.525 [info] AgentHostProcessManager: agent host started +2026-09-10 08:10:19.927 [error] [AgentHost:stderr] (node:27228) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +(Use `Code --trace-deprecation ...` to show where the warning was created) + +2026-09-10 08:10:25.857 [info] Extension host with pid 19996 exited with code: 0, signal: unknown. diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/mcpGateway.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/mcpGateway.log new file mode 100644 index 000000000..a19c09823 --- /dev/null +++ b/Extension/artifacts/stm32-host/user/logs/20260910T081018/mcpGateway.log @@ -0,0 +1 @@ +2026-09-10 08:10:18.716 [info] [McpGatewayService] Initialized diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/network-shared.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/network-shared.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/remoteTunnelService.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/remoteTunnelService.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/sharedprocess.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/sharedprocess.log new file mode 100644 index 000000000..79f231951 --- /dev/null +++ b/Extension/artifacts/stm32-host/user/logs/20260910T081018/sharedprocess.log @@ -0,0 +1,2 @@ +2026-09-10 08:10:20.139 [info] Started initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/stm32-host/extensions +2026-09-10 08:10:20.205 [info] Completed initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/stm32-host/extensions diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/telemetry.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/telemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/terminal.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/terminal.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/userDataSync.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/userDataSync.log new file mode 100644 index 000000000..d61be0960 --- /dev/null +++ b/Extension/artifacts/stm32-host/user/logs/20260910T081018/userDataSync.log @@ -0,0 +1,2 @@ +2026-09-10 08:10:20.125 [info] [AutoSync] Using settings sync service https://vscode-sync.trafficmanager.net/ +2026-09-10 08:10:20.125 [info] [AutoSync] Disabled. diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/extHostTelemetry.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/extHostTelemetry.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/exthost.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/exthost.log new file mode 100644 index 000000000..da467f25e --- /dev/null +++ b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/exthost.log @@ -0,0 +1,36 @@ +2026-09-10 08:10:20.519 [info] Extension host with pid 19996 started +2026-09-10 08:10:20.519 [info] Skipping acquiring lock for i:\BackFile\code\hornet-cpptools\Extension\artifacts\stm32-host\user\User\workspaceStorage\94a880a43aac17c09baaef9502a40b14. +2026-09-10 08:10:20.627 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github' +2026-09-10 08:10:20.653 [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onLanguage' +2026-09-10 08:10:20.722 [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.git +2026-09-10 08:10:20.762 [info] ExtensionService#_doActivateExtension vscode.git, startup: true, activationEvent: '*' +2026-09-10 08:10:20.825 [info] ExtensionService#_doActivateExtension vscode.github, startup: true, activationEvent: '*' +2026-09-10 08:10:20.897 [info] ExtensionService#_doActivateExtension hornet.hornet-cpp, startup: true, activationEvent: 'workspaceContains:**/CMakeLists.txt,**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}' +2026-09-10 08:10:21.339 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.openRepositoryInParentFolders', provide the URI of a resource or 'null' for any resource. +2026-09-10 08:10:21.339 [warning] [vscode.git] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for 'git.showProgress', provide the URI of a resource or 'null' for any resource. +2026-09-10 08:10:21.374 [info] Eager extensions activated +2026-09-10 08:10:21.407 [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 08:10:21.413 [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished' +2026-09-10 08:10:25.576 [info] Extension host terminating: received terminate message from renderer +2026-09-10 08:10:25.591 [error] Unable to refresh tree view hornet-cpp.callGraph: Canceled +2026-09-10 08:10:25.594 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14196:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12139:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 08:10:25.606 [error] Error: Channel has been closed + at o (file:///d:/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3524) + at Object.appendLine (file:///d:/Software/Microsoft/Visual%20Studio%20Code/645f29cc31/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:549:3663) + at Object.log (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:14196:24) + at Socket. (i:\BackFile\code\hornet-cpptools\Extension\dist\hornet.js:12139:52) + at Socket.emit (node:events:509:28) + at addChunk (node:internal/streams/readable:563:12) + at readableAddChunkPushByteMode (node:internal/streams/readable:514:3) + at Readable.push (node:internal/streams/readable:394:5) + at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) +2026-09-10 08:10:25.856 [info] Extension host with pid 19996 exiting with code 0 diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/output_logging_20260910T081020/1-Hornet CC++.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/output_logging_20260910T081020/1-Hornet CC++.log new file mode 100644 index 000000000..3cae48969 --- /dev/null +++ b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/output_logging_20260910T081020/1-Hornet CC++.log @@ -0,0 +1,329 @@ +Hornet C/C++ 0.1.9 (i:\BackFile\code\hornet-cpptools\Extension) +[2026-09-10T15:10:20.969Z] [stm32_freertos] [Compiler] Using build configuration: i:\BackFile\code\stm32_freertos\build\Debug\compile_commands.json +[2026-09-10T15:10:20.998Z] [stm32_freertos] [Compiler] Compilation database: 38 files from 1 sources +[2026-09-10T15:10:21.001Z] [stm32_freertos] [Compiler] Using build configuration: i:\BackFile\code\stm32_freertos\build\Debug\compile_commands.json +[2026-09-10T15:10:21.025Z] [stm32_freertos] [Compiler] Compilation database: 38 files from 1 sources +[2026-09-10T15:10:21.040Z] [stm32_freertos] [Compiler] [Index] Discovering C/C++ sources and compile commands +[2026-09-10T15:10:21.043Z] [stm32_freertos] [Compiler] [Index] Starting clangd for 38 source files +[2026-09-10T15:10:21.044Z] [stm32_freertos] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T15:10:21.113Z] [stm32_freertos] [Compiler] I[08:10:21.112] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[08:10:21.113] Features: windows+grpc +I[08:10:21.113] PID: 17504 +I[08:10:21.113] Working directory: i:\BackFile\code\stm32_freertos +I[08:10:21.113] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[08:10:21.113] argv[1]: --background-index +I[08:10:21.113] argv[2]: --enable-config=0 +I[08:10:21.113] argv[3]: --compile-commands-dir=I:\BackFile\code\stm32_freertos\.vscode\hornet\compile-db +I[08:10:21.113] argv[4]: -j=10 +[2026-09-10T15:10:21.113Z] [stm32_freertos] [Compiler] I[08:10:21.113] Starting LSP over stdin/stdout +I[08:10:21.113] <-- initialize(0) +[2026-09-10T15:10:21.133Z] [stm32_freertos] [Compiler] I[08:10:21.133] --> reply:initialize(0) 19 ms +[2026-09-10T15:10:21.136Z] [stm32_freertos] [Compiler] Compiler ready +[2026-09-10T15:10:21.140Z] [stm32_freertos] [Compiler] [Index] Loading compilation database (38 source files) +[2026-09-10T15:10:21.140Z] [stm32_freertos] [Compiler] [Index] Parsing I:\BackFile\code\stm32_freertos\core\src\beep_control.c +[2026-09-10T15:10:21.145Z] [stm32_freertos] [Compiler] I[08:10:21.136] <-- initialized +[2026-09-10T15:10:21.146Z] [stm32_freertos] [Compiler] I[08:10:21.147] <-- textDocument/didOpen +[2026-09-10T15:10:21.147Z] [stm32_freertos] [Compiler] I[08:10:21.147] <-- textDocument/documentSymbol(1) +[2026-09-10T15:10:21.148Z] [stm32_freertos] [Compiler] I[08:10:21.148] Loaded compilation database from I:\BackFile\code\stm32_freertos\.vscode\hornet\compile-db\compile_commands.json +I[08:10:21.148] --> window/workDoneProgress/create(0) +I[08:10:21.148] Enqueueing 38 commands for indexing +I[08:10:21.149] ASTWorker building file I:\BackFile\code\stm32_freertos\core\src\beep_control.c version 0 with command +[I:\BackFile\code\stm32_freertos\build\Debug] +"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe" --target=arm-none-eabi -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o "CMakeFiles\\stm32f103_freertos.dir\\core\\src\\beep_control.c.obj" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\stm32_freertos\\core\\src\\beep_control.c" +[2026-09-10T15:10:21.150Z] [stm32_freertos] [Compiler] I[08:10:21.150] <-- reply(0) +I[08:10:21.150] --> $/progress +[2026-09-10T15:10:21.150Z] [stm32_freertos] [Compiler] I[08:10:21.150] --> $/progress +[2026-09-10T15:10:21.151Z] [stm32_freertos] [Compiler] [Index] Building project index (0%) +[2026-09-10T15:10:21.152Z] [stm32_freertos] [Compiler] [Index] 0/1 (0%) +[2026-09-10T15:10:21.162Z] [stm32_freertos] [Compiler] I[08:10:21.162] --> $/progress +I[08:10:21.162] --> $/progress +[2026-09-10T15:10:21.162Z] [stm32_freertos] [Compiler] I[08:10:21.162] --> $/progress +I[08:10:21.162] --> $/progress +I[08:10:21.162] --> $/progress +I[08:10:21.162] --> $/progress +I[08:10:21.162] --> $/progress +I[08:10:21.162] --> $/progress +I[08:10:21.163] --> $/progress +I[08:10:21.163] --> $/progress +I[08:10:21.163] --> $/progress +I[08:10:21.163] --> $/progress +[2026-09-10T15:10:21.163Z] [stm32_freertos] [Compiler] [Index] 0/39 (0%) +[2026-09-10T15:10:21.164Z] [stm32_freertos] [Compiler] [Index] 1/39 (2%) +[2026-09-10T15:10:21.280Z] [stm32_freertos] [Compiler] I[08:10:21.261] Indexed I:\BackFile\code\stm32_freertos\free_rtos\stream_buffer.c (432 symbols, 2666 refs, 41 files) +I[08:10:21.263] Indexed I:\BackFile\code\stm32_freertos\free_rtos\portable\mem_mang\heap_4.c (479 symbols, 2322 refs, 39 files) +[2026-09-10T15:10:21.291Z] [stm32_freertos] [Compiler] I[08:10:21.281] Built preamble of size 2475436 for file I:\BackFile\code\stm32_freertos\core\src\beep_control.c version 0 in 0.13 seconds +I[08:10:21.282] Indexing c17 standard library in the context of I:\BackFile\code\stm32_freertos\core\src\beep_control.c +[2026-09-10T15:10:21.304Z] [stm32_freertos] [Compiler] I[08:10:21.304] --> textDocument/publishDiagnostics +[2026-09-10T15:10:21.305Z] [stm32_freertos] [Compiler] I[08:10:21.305] --> reply:textDocument/documentSymbol(1) 157 ms +[2026-09-10T15:10:21.310Z] [stm32_freertos] [Compiler] I[08:10:21.311] <-- textDocument/documentSymbol(2) +[2026-09-10T15:10:21.311Z] [stm32_freertos] [Compiler] I[08:10:21.311] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T15:10:21.388Z] [stm32_freertos] [Compiler] I[08:10:21.369] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_flash_ex.c (1277 symbols, 17292 refs, 43 files) +I[08:10:21.371] Indexed c17 standard library (incomplete due to errors): 2435 symbols, 11 filtered +I[08:10:21.377] Indexed I:\BackFile\code\stm32_freertos\core\src\stm32f1xx_it.c (1535 symbols, 17865 refs, 53 files) +I[08:10:21.379] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_dma.c (1267 symbols, 17336 refs, 42 files) +I[08:10:21.387] Indexed I:\BackFile\code\stm32_freertos\core\src\main.c (1811 symbols, 18650 refs, 58 files) +[2026-09-10T15:10:21.391Z] [stm32_freertos] [Compiler] Using build configuration: i:\BackFile\code\stm32_freertos\build\Debug\compile_commands.json +[2026-09-10T15:10:21.400Z] [stm32_freertos] [Compiler] I[08:10:21.396] Indexed I:\BackFile\code\stm32_freertos\core\src\key_control.c (1800 symbols, 18523 refs, 57 files) +I[08:10:21.398] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_rcc.c (1267 symbols, 17564 refs, 42 files) +I[08:10:21.398] Indexed I:\BackFile\code\stm32_freertos\core\src\led_control.c (1788 symbols, 18502 refs, 55 files) +[2026-09-10T15:10:21.449Z] [stm32_freertos] [Compiler] I[08:10:21.439] Indexed I:\BackFile\code\stm32_freertos\free_rtos\cmsis_rtos_v2\cmsis_os2.c (1947 symbols, 20814 refs, 72 files) +[2026-09-10T15:10:21.461Z] [stm32_freertos] [Compiler] Compilation database: 38 files from 1 sources +[2026-09-10T15:10:21.463Z] [stm32_freertos] [Compiler] Using build configuration: i:\BackFile\code\stm32_freertos\build\Debug\compile_commands.json +[2026-09-10T15:10:21.488Z] [stm32_freertos] [Compiler] Compilation database: 38 files from 1 sources +[2026-09-10T15:10:21.492Z] [stm32_freertos] [Compiler] I[08:10:21.491] <-- shutdown(3) +I[08:10:21.491] --> reply:shutdown(3) 0 ms +[2026-09-10T15:10:21.498Z] [stm32_freertos] [Compiler] I[08:10:21.493] <-- exit +I[08:10:21.493] LSP finished, exiting with status 0 +[2026-09-10T15:10:21.540Z] [stm32_freertos] [Compiler] Index build: Error: Index build interrupted by a language-service restart. +[2026-09-10T15:10:21.703Z] [stm32_freertos] [Compiler] I[08:10:21.703] --> $/progress +[2026-09-10T15:10:21.742Z] [stm32_freertos] [Compiler] I[08:10:21.742] --> $/progress +[2026-09-10T15:10:21.894Z] [stm32_freertos] [Compiler] I[08:10:21.895] --> $/progress +[2026-09-10T15:10:22.012Z] [stm32_freertos] [Compiler] [Index] Discovering C/C++ sources and compile commands +[2026-09-10T15:10:22.014Z] [stm32_freertos] [Compiler] [Index] Starting clangd for 38 source files +[2026-09-10T15:10:22.015Z] [stm32_freertos] [Compiler] Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +[2026-09-10T15:10:22.086Z] [stm32_freertos] [Compiler] I[08:10:22.084] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[08:10:22.085] Features: windows+grpc +I[08:10:22.085] PID: 5520 +I[08:10:22.085] Working directory: i:\BackFile\code\stm32_freertos +I[08:10:22.085] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[08:10:22.085] argv[1]: --background-index +I[08:10:22.085] argv[2]: --enable-config=0 +I[08:10:22.085] argv[3]: --compile-commands-dir=I:\BackFile\code\stm32_freertos\.vscode\hornet\compile-db +I[08:10:22.085] argv[4]: -j=10 +I[08:10:22.085] Starting LSP over stdin/stdout +I[08:10:22.086] <-- initialize(0) +[2026-09-10T15:10:22.108Z] [stm32_freertos] [Compiler] I[08:10:22.108] --> reply:initialize(0) 22 ms +[2026-09-10T15:10:22.108Z] [stm32_freertos] [Compiler] Compiler ready +[2026-09-10T15:10:22.113Z] [stm32_freertos] [Compiler] [Index] Loading compilation database (38 source files) +[2026-09-10T15:10:22.113Z] [stm32_freertos] [Compiler] [Index] Parsing I:\BackFile\code\stm32_freertos\core\src\beep_control.c +[2026-09-10T15:10:22.114Z] [stm32_freertos] [Compiler] I[08:10:22.109] <-- initialized +[2026-09-10T15:10:22.120Z] [stm32_freertos] [Compiler] I[08:10:22.120] <-- textDocument/didOpen +[2026-09-10T15:10:22.120Z] [stm32_freertos] [Compiler] I[08:10:22.120] <-- textDocument/documentSymbol(1) +[2026-09-10T15:10:22.121Z] [stm32_freertos] [Compiler] I[08:10:22.121] Loaded compilation database from I:\BackFile\code\stm32_freertos\.vscode\hornet\compile-db\compile_commands.json +I[08:10:22.121] --> window/workDoneProgress/create(0) +[2026-09-10T15:10:22.121Z] [stm32_freertos] [Compiler] I[08:10:22.121] Enqueueing 38 commands for indexing +[2026-09-10T15:10:22.121Z] [stm32_freertos] [Compiler] I[08:10:22.121] ASTWorker building file I:\BackFile\code\stm32_freertos\core\src\beep_control.c version 0 with command +[I:\BackFile\code\stm32_freertos\build\Debug] +"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe" --target=arm-none-eabi -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o "CMakeFiles\\stm32f103_freertos.dir\\core\\src\\beep_control.c.obj" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\stm32_freertos\\core\\src\\beep_control.c" +[2026-09-10T15:10:22.122Z] [stm32_freertos] [Compiler] I[08:10:22.122] <-- reply(0) +I[08:10:22.122] --> $/progress +I[08:10:22.122] --> $/progress +[2026-09-10T15:10:22.122Z] [stm32_freertos] [Compiler] [Index] Building project index (0%) +[2026-09-10T15:10:22.122Z] [stm32_freertos] [Compiler] [Index] 0/1 (0%) +[2026-09-10T15:10:22.213Z] [stm32_freertos] [Compiler] I[08:10:22.213] --> $/progress +I[08:10:22.213] --> $/progress +I[08:10:22.213] --> $/progress +[2026-09-10T15:10:22.213Z] [stm32_freertos] [Compiler] I[08:10:22.213] --> $/progress +I[08:10:22.213] --> $/progress +I[08:10:22.213] --> $/progress +I[08:10:22.213] --> $/progress +I[08:10:22.213] --> $/progress +[2026-09-10T15:10:22.213Z] [stm32_freertos] [Compiler] [Index] 0/33 (0%) +[2026-09-10T15:10:22.214Z] [stm32_freertos] [Compiler] I[08:10:22.213] --> $/progress +I[08:10:22.214] --> $/progress +I[08:10:22.214] --> $/progress +I[08:10:22.214] --> $/progress +[2026-09-10T15:10:22.215Z] [stm32_freertos] [Compiler] I[08:10:22.215] Built preamble of size 2475436 for file I:\BackFile\code\stm32_freertos\core\src\beep_control.c version 0 in 0.09 seconds +[2026-09-10T15:10:22.215Z] [stm32_freertos] [Compiler] [Index] 1/33 (3%) +[2026-09-10T15:10:22.216Z] [stm32_freertos] [Compiler] I[08:10:22.216] Indexing c17 standard library in the context of I:\BackFile\code\stm32_freertos\core\src\beep_control.c +[2026-09-10T15:10:22.244Z] [stm32_freertos] [Compiler] I[08:10:22.245] --> textDocument/publishDiagnostics +[2026-09-10T15:10:22.245Z] [stm32_freertos] [Compiler] I[08:10:22.245] --> reply:textDocument/documentSymbol(1) 124 ms +[2026-09-10T15:10:22.249Z] [stm32_freertos] [Compiler] I[08:10:22.249] <-- textDocument/documentSymbol(2) +[2026-09-10T15:10:22.249Z] [stm32_freertos] [Compiler] I[08:10:22.250] --> reply:textDocument/documentSymbol(2) 0 ms +[2026-09-10T15:10:22.303Z] [stm32_freertos] [Compiler] I[08:10:22.286] Indexed I:\BackFile\code\stm32_freertos\free_rtos\list.c (6 symbols, 1208 refs, 38 files) +I[08:10:22.299] Indexed I:\BackFile\code\stm32_freertos\free_rtos\event_groups.c (22 symbols, 1677 refs, 41 files) +[2026-09-10T15:10:22.310Z] [stm32_freertos] [Compiler] I[08:10:22.309] Indexed c17 standard library (incomplete due to errors): 2435 symbols, 11 filtered +[2026-09-10T15:10:22.323Z] [stm32_freertos] [Compiler] I[08:10:22.323] --> $/progress +I[08:10:22.323] --> $/progress +[2026-09-10T15:10:22.323Z] [stm32_freertos] [Compiler] [Index] 2/33 (6%) +[2026-09-10T15:10:22.335Z] [stm32_freertos] [Compiler] I[08:10:22.334] --> $/progress +I[08:10:22.334] --> $/progress +[2026-09-10T15:10:22.335Z] [stm32_freertos] [Compiler] [Index] 3/33 (9%) +[2026-09-10T15:10:22.367Z] [stm32_freertos] [Compiler] I[08:10:22.367] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_gpio.c (8 symbols, 14158 refs, 42 files) +[2026-09-10T15:10:22.376Z] [stm32_freertos] [Compiler] I[08:10:22.376] Indexed I:\BackFile\code\stm32_freertos\core\src\stm32f1xx_it.c (31 symbols, 14604 refs, 53 files) +[2026-09-10T15:10:22.391Z] [stm32_freertos] [Compiler] I[08:10:22.381] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_flash.c (16 symbols, 14318 refs, 43 files) +I[08:10:22.385] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal.c (28 symbols, 14111 refs, 42 files) +[2026-09-10T15:10:22.392Z] [stm32_freertos] [Compiler] I[08:10:22.392] --> $/progress +I[08:10:22.392] --> $/progress +[2026-09-10T15:10:22.392Z] [stm32_freertos] [Compiler] [Index] 4/33 (12%) +[2026-09-10T15:10:22.402Z] [stm32_freertos] [Compiler] I[08:10:22.402] --> $/progress +I[08:10:22.402] --> $/progress +[2026-09-10T15:10:22.403Z] [stm32_freertos] [Compiler] [Index] 5/33 (15%) +[2026-09-10T15:10:22.411Z] [stm32_freertos] [Compiler] I[08:10:22.405] --> $/progress +I[08:10:22.405] --> $/progress +[2026-09-10T15:10:22.412Z] [stm32_freertos] [Compiler] [Index] 6/33 (18%) +[2026-09-10T15:10:22.419Z] [stm32_freertos] [Compiler] I[08:10:22.419] --> $/progress +I[08:10:22.419] --> $/progress +[2026-09-10T15:10:22.420Z] [stm32_freertos] [Compiler] [Index] 7/33 (21%) +[2026-09-10T15:10:22.457Z] [stm32_freertos] [Compiler] I[08:10:22.455] Indexed I:\BackFile\code\stm32_freertos\free_rtos\cmsis_rtos_v2\cmsis_os2.c (226 symbols, 15910 refs, 72 files) +[2026-09-10T15:10:22.461Z] [stm32_freertos] [Compiler] I[08:10:22.461] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_cortex.c (15 symbols, 14026 refs, 42 files) +[2026-09-10T15:10:22.496Z] [stm32_freertos] [Compiler] I[08:10:22.495] --> $/progress +I[08:10:22.496] --> $/progress +[2026-09-10T15:10:22.496Z] [stm32_freertos] [Compiler] [Index] 8/33 (24%) +[2026-09-10T15:10:22.507Z] [stm32_freertos] [Compiler] I[08:10:22.507] Indexed I:\BackFile\code\stm32_freertos\free_rtos\portable\gcc\arm_cm3\port.c (16 symbols, 920 refs, 26 files) +[2026-09-10T15:10:22.523Z] [stm32_freertos] [Compiler] I[08:10:22.523] --> $/progress +I[08:10:22.523] --> $/progress +[2026-09-10T15:10:22.524Z] [stm32_freertos] [Compiler] [Index] 9/33 (27%) +[2026-09-10T15:10:22.525Z] [stm32_freertos] [Compiler] I[08:10:22.525] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_can.c (36 symbols, 14946 refs, 42 files) +[2026-09-10T15:10:22.526Z] [stm32_freertos] [Compiler] I[08:10:22.527] --> $/progress +I[08:10:22.527] --> $/progress +[2026-09-10T15:10:22.527Z] [stm32_freertos] [Compiler] [Index] 10/33 (30%) +[2026-09-10T15:10:22.532Z] [stm32_freertos] [Compiler] I[08:10:22.532] Indexed I:\BackFile\code\stm32_freertos\free_rtos\timers.c (45 symbols, 2051 refs, 41 files) +[2026-09-10T15:10:22.532Z] [stm32_freertos] [Compiler] I[08:10:22.532] Indexed I:\BackFile\code\stm32_freertos\core\src\stm32f1xx_hal_msp.c (40 symbols, 14210 refs, 43 files) +[2026-09-10T15:10:22.554Z] [stm32_freertos] [Compiler] I[08:10:22.554] --> $/progress +[2026-09-10T15:10:22.556Z] [stm32_freertos] [Compiler] I[08:10:22.557] --> $/progress +[2026-09-10T15:10:22.557Z] [stm32_freertos] [Compiler] [Index] 11/33 (33%) +[2026-09-10T15:10:22.573Z] [stm32_freertos] [Compiler] I[08:10:22.573] --> $/progress +I[08:10:22.573] --> $/progress +[2026-09-10T15:10:22.573Z] [stm32_freertos] [Compiler] [Index] 12/33 (36%) +[2026-09-10T15:10:22.585Z] [stm32_freertos] [Compiler] I[08:10:22.585] --> $/progress +I[08:10:22.586] --> $/progress +[2026-09-10T15:10:22.586Z] [stm32_freertos] [Compiler] [Index] 13/33 (39%) +[2026-09-10T15:10:22.664Z] [stm32_freertos] [Compiler] I[08:10:22.664] Indexed I:\BackFile\code\stm32_freertos\core\src\sysmem.c (8 symbols, 625 refs, 28 files) +[2026-09-10T15:10:22.681Z] [stm32_freertos] [Compiler] I[08:10:22.670] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_gpio_ex.c (3 symbols, 13963 refs, 42 files) +I[08:10:22.678] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_uart.c (62 symbols, 16134 refs, 42 files) +[2026-09-10T15:10:22.697Z] [stm32_freertos] [Compiler] I[08:10:22.697] --> $/progress +I[08:10:22.697] --> $/progress +[2026-09-10T15:10:22.697Z] [stm32_freertos] [Compiler] [Index] 14/33 (42%) +[2026-09-10T15:10:22.711Z] [stm32_freertos] [Compiler] I[08:10:22.711] Indexed I:\BackFile\code\stm32_freertos\core\src\syscalls.c (451 symbols, 2467 refs, 55 files) +[2026-09-10T15:10:22.713Z] [stm32_freertos] [Compiler] I[08:10:22.713] Indexed I:\BackFile\code\stm32_freertos\core\src\led_control.c (216 symbols, 15112 refs, 55 files) +[2026-09-10T15:10:22.721Z] [stm32_freertos] [Compiler] I[08:10:22.721] --> $/progress +I[08:10:22.721] --> $/progress +[2026-09-10T15:10:22.721Z] [stm32_freertos] [Compiler] [Index] 15/33 (45%) +[2026-09-10T15:10:22.727Z] [stm32_freertos] [Compiler] I[08:10:22.727] --> $/progress +I[08:10:22.727] --> $/progress +[2026-09-10T15:10:22.728Z] [stm32_freertos] [Compiler] [Index] 16/33 (48%) +[2026-09-10T15:10:22.742Z] [stm32_freertos] [Compiler] I[08:10:22.742] Indexed I:\BackFile\code\stm32_freertos\core\src\common.c (238 symbols, 15100 refs, 54 files) +[2026-09-10T15:10:22.769Z] [stm32_freertos] [Compiler] I[08:10:22.769] --> $/progress +I[08:10:22.769] --> $/progress +[2026-09-10T15:10:22.769Z] [stm32_freertos] [Compiler] [Index] 17/33 (51%) +[2026-09-10T15:10:22.786Z] [stm32_freertos] [Compiler] I[08:10:22.786] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_exti.c (9 symbols, 14182 refs, 42 files) +[2026-09-10T15:10:22.790Z] [stm32_freertos] [Compiler] I[08:10:22.790] --> $/progress +I[08:10:22.790] --> $/progress +[2026-09-10T15:10:22.791Z] [stm32_freertos] [Compiler] [Index] 18/33 (54%) +[2026-09-10T15:10:22.794Z] [stm32_freertos] [Compiler] I[08:10:22.794] Indexed I:\BackFile\code\stm32_freertos\drivers\cmsis\device\stm32f1xx\src\gcc\startup_stm32f103xe.s (0 symbols, 0 refs, 1 files) +I[08:10:22.794] Failed to compile I:\BackFile\code\stm32_freertos\drivers\cmsis\device\stm32f1xx\src\gcc\startup_stm32f103xe.s, index may be incomplete +[2026-09-10T15:10:22.814Z] [stm32_freertos] [Compiler] I[08:10:22.815] --> $/progress +I[08:10:22.815] --> $/progress +[2026-09-10T15:10:22.816Z] [stm32_freertos] [Compiler] [Index] 19/33 (57%) +[2026-09-10T15:10:22.825Z] [stm32_freertos] [Compiler] I[08:10:22.825] --> $/progress +I[08:10:22.825] Indexed I:\BackFile\code\stm32_freertos\core\src\tm1637_control.c (241 symbols, 15221 refs, 55 files) +I[08:10:22.825] --> $/progress +[2026-09-10T15:10:22.826Z] [stm32_freertos] [Compiler] [Index] 20/33 (60%) +[2026-09-10T15:10:22.846Z] [stm32_freertos] [Compiler] I[08:10:22.846] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_rcc_ex.c (3 symbols, 14150 refs, 42 files) +[2026-09-10T15:10:22.873Z] [stm32_freertos] [Compiler] I[08:10:22.873] --> $/progress +[2026-09-10T15:10:22.876Z] [stm32_freertos] [Compiler] I[08:10:22.876] --> $/progress +[2026-09-10T15:10:22.876Z] [stm32_freertos] [Compiler] [Index] 21/33 (63%) +[2026-09-10T15:10:22.880Z] [stm32_freertos] [Compiler] I[08:10:22.880] --> $/progress +I[08:10:22.881] --> $/progress +[2026-09-10T15:10:22.881Z] [stm32_freertos] [Compiler] [Index] 22/33 (66%) +[2026-09-10T15:10:22.904Z] [stm32_freertos] [Compiler] I[08:10:22.893] Indexed I:\BackFile\code\stm32_freertos\free_rtos\croutine.c (13 symbols, 828 refs, 27 files) +[2026-09-10T15:10:22.928Z] [stm32_freertos] [Compiler] I[08:10:22.925] Indexed I:\BackFile\code\stm32_freertos\core\src\freertos.c (1 symbols, 14541 refs, 52 files) +[2026-09-10T15:10:22.933Z] [stm32_freertos] [Compiler] I[08:10:22.933] --> $/progress +I[08:10:22.933] --> $/progress +[2026-09-10T15:10:22.934Z] [stm32_freertos] [Compiler] [Index] 23/33 (69%) +[2026-09-10T15:10:22.959Z] [stm32_freertos] [Compiler] I[08:10:22.959] --> $/progress +[2026-09-10T15:10:22.959Z] [stm32_freertos] [Compiler] [Index] 24/33 (72%) +[2026-09-10T15:10:22.974Z] [stm32_freertos] [Compiler] I[08:10:22.974] Indexed I:\BackFile\code\stm32_freertos\free_rtos\queue.c (67 symbols, 2810 refs, 44 files) +[2026-09-10T15:10:22.993Z] [stm32_freertos] [Compiler] I[08:10:22.993] Indexed I:\BackFile\code\stm32_freertos\core\src\main.c (0 symbols, 14706 refs, 58 files) +[2026-09-10T15:10:22.995Z] [stm32_freertos] [Compiler] I[08:10:22.995] --> $/progress +[2026-09-10T15:10:22.996Z] [stm32_freertos] [Compiler] [Index] 25/33 (75%) +[2026-09-10T15:10:23.007Z] [stm32_freertos] [Compiler] I[08:10:23.007] --> $/progress +[2026-09-10T15:10:23.008Z] [stm32_freertos] [Compiler] [Index] 26/33 (78%) +[2026-09-10T15:10:23.022Z] [stm32_freertos] [Compiler] I[08:10:23.022] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_usart.c (44 symbols, 15538 refs, 42 files) +[2026-09-10T15:10:23.050Z] [stm32_freertos] [Compiler] I[08:10:23.050] --> $/progress +[2026-09-10T15:10:23.051Z] [stm32_freertos] [Compiler] [Index] 27/33 (81%) +[2026-09-10T15:10:23.074Z] [stm32_freertos] [Compiler] I[08:10:23.074] Indexed I:\BackFile\code\stm32_freertos\free_rtos\tasks.c (83 symbols, 3445 refs, 45 files) +[2026-09-10T15:10:23.090Z] [stm32_freertos] [Compiler] I[08:10:23.090] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_pwr.c (18 symbols, 14144 refs, 42 files) +[2026-09-10T15:10:23.114Z] [stm32_freertos] [Compiler] I[08:10:23.114] --> $/progress +[2026-09-10T15:10:23.115Z] [stm32_freertos] [Compiler] I[08:10:23.115] --> $/progress +[2026-09-10T15:10:23.115Z] [stm32_freertos] [Compiler] [Index] 28/33 (84%) +[2026-09-10T15:10:23.116Z] [stm32_freertos] [Compiler] [Index] 29/33 (87%) +[2026-09-10T15:10:23.125Z] [stm32_freertos] [Compiler] I[08:10:23.125] --> $/progress +[2026-09-10T15:10:23.126Z] [stm32_freertos] [Compiler] I[08:10:23.125] Indexed I:\BackFile\code\stm32_freertos\drivers\cmsis\device\stm32f1xx\src\system_stm32f1xx.c (11 symbols, 14078 refs, 42 files) +[2026-09-10T15:10:23.126Z] [stm32_freertos] [Compiler] [Index] 30/33 (90%) +[2026-09-10T15:10:23.151Z] [stm32_freertos] [Compiler] I[08:10:23.151] --> $/progress +[2026-09-10T15:10:23.151Z] [stm32_freertos] [Compiler] [Index] 31/33 (93%) +[2026-09-10T15:10:23.158Z] [stm32_freertos] [Compiler] I[08:10:23.158] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_i2c.c (82 symbols, 20005 refs, 42 files) +[2026-09-10T15:10:23.190Z] [stm32_freertos] [Compiler] I[08:10:23.190] --> $/progress +[2026-09-10T15:10:23.191Z] [stm32_freertos] [Compiler] [Index] 32/33 (96%) +[2026-09-10T15:10:23.197Z] [stm32_freertos] [Compiler] I[08:10:23.197] Indexed I:\BackFile\code\stm32_freertos\core\src\beep_control.c (4 symbols, 14748 refs, 55 files) +[2026-09-10T15:10:23.296Z] [stm32_freertos] [Compiler] I[08:10:23.296] --> $/progress +[2026-09-10T15:10:23.297Z] [stm32_freertos] [Compiler] [Index] Background indexing finished; waiting for pending work +[2026-09-10T15:10:24.060Z] [stm32_freertos] [Compiler] [Index] Background indexing finished; waiting for pending work +[2026-09-10T15:10:24.813Z] [stm32_freertos] [Compiler] Index ready: 38 source files (cached for next startup) +[2026-09-10T15:10:24.813Z] [stm32_freertos] [Compiler] [Index] Index ready: 38 source files (cached for next startup) (100%) +[2026-09-10T15:10:24.839Z] [stm32_freertos] [Compiler] I[08:10:24.839] <-- textDocument/didOpen +[2026-09-10T15:10:24.839Z] [stm32_freertos] [Compiler] I[08:10:24.839] ASTWorker building file I:\BackFile\code\stm32_freertos\core\src\main.c version 1 with command +[I:\BackFile\code\stm32_freertos\build\Debug] +"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe" --target=arm-none-eabi -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o "CMakeFiles\\stm32f103_freertos.dir\\core\\src\\main.c.obj" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\stm32_freertos\\core\\src\\main.c" +[2026-09-10T15:10:24.881Z] [stm32_freertos] [Compiler] I[08:10:24.881] <-- textDocument/codeAction(3) +[2026-09-10T15:10:24.881Z] [stm32_freertos] [Compiler] I[08:10:24.881] <-- textDocument/documentSymbol(4) +[2026-09-10T15:10:24.947Z] [stm32_freertos] [Compiler] I[08:10:24.947] Built preamble of size 2479996 for file I:\BackFile\code\stm32_freertos\core\src\main.c version 1 in 0.10 seconds +[2026-09-10T15:10:24.972Z] [stm32_freertos] [Compiler] I[08:10:24.972] --> textDocument/publishDiagnostics +[2026-09-10T15:10:24.973Z] [stm32_freertos] [Compiler] I[08:10:24.973] --> reply:textDocument/codeAction(3) 91 ms +[2026-09-10T15:10:24.974Z] [stm32_freertos] [Compiler] I[08:10:24.973] --> reply:textDocument/documentSymbol(4) 91 ms +[2026-09-10T15:10:25.021Z] [stm32_freertos] [Compiler] I[08:10:25.021] <-- textDocument/codeAction(5) +[2026-09-10T15:10:25.021Z] [stm32_freertos] [Compiler] I[08:10:25.021] --> reply:textDocument/codeAction(5) 0 ms +I[08:10:25.021] <-- textDocument/prepareCallHierarchy(6) +[2026-09-10T15:10:25.021Z] [stm32_freertos] [Compiler] I[08:10:25.021] --> reply:textDocument/prepareCallHierarchy(6) 0 ms +[2026-09-10T15:10:25.056Z] [stm32_freertos] [Compiler] I[08:10:25.056] <-- textDocument/inlayHint(7) +[2026-09-10T15:10:25.056Z] [stm32_freertos] [Compiler] I[08:10:25.057] --> reply:textDocument/inlayHint(7) 0 ms +[2026-09-10T15:10:25.176Z] [stm32_freertos] [Compiler] I[08:10:25.176] <-- textDocument/documentSymbol(8) +[2026-09-10T15:10:25.177Z] [stm32_freertos] [Compiler] I[08:10:25.177] --> reply:textDocument/documentSymbol(8) 0 ms +[2026-09-10T15:10:25.177Z] [stm32_freertos] [Compiler] I[08:10:25.178] <-- textDocument/references(9) +[2026-09-10T15:10:25.178Z] [stm32_freertos] [Compiler] I[08:10:25.178] --> reply:textDocument/references(9) 0 ms +[2026-09-10T15:10:25.179Z] [stm32_freertos] [Compiler] I[08:10:25.179] <-- callHierarchy/incomingCalls(10) +[2026-09-10T15:10:25.179Z] [stm32_freertos] [Compiler] I[08:10:25.180] --> reply:callHierarchy/incomingCalls(10) 0 ms +[2026-09-10T15:10:25.226Z] [stm32_freertos] [Compiler] I[08:10:25.226] <-- textDocument/foldingRange(11) +I[08:10:25.226] <-- textDocument/foldingRange(12) +[2026-09-10T15:10:25.228Z] [stm32_freertos] [Compiler] I[08:10:25.228] --> reply:textDocument/foldingRange(11) 1 ms +[2026-09-10T15:10:25.228Z] [stm32_freertos] [Compiler] I[08:10:25.228] --> reply:textDocument/foldingRange(12) 1 ms +[2026-09-10T15:10:25.236Z] [stm32_freertos] [Compiler] I[08:10:25.236] <-- textDocument/documentSymbol(13) +[2026-09-10T15:10:25.237Z] [stm32_freertos] [Compiler] I[08:10:25.237] --> reply:textDocument/documentSymbol(13) 0 ms +[2026-09-10T15:10:25.238Z] [stm32_freertos] [Compiler] I[08:10:25.238] <-- callHierarchy/outgoingCalls(14) +[2026-09-10T15:10:25.238Z] [stm32_freertos] [Compiler] I[08:10:25.239] --> reply:callHierarchy/outgoingCalls(14) 0 ms +[2026-09-10T15:10:25.243Z] [stm32_freertos] [Compiler] I[08:10:25.243] <-- textDocument/prepareCallHierarchy(15) +[2026-09-10T15:10:25.243Z] [stm32_freertos] [Compiler] I[08:10:25.243] --> reply:textDocument/prepareCallHierarchy(15) 0 ms +[2026-09-10T15:10:25.321Z] [stm32_freertos] [Compiler] I[08:10:25.321] <-- textDocument/documentSymbol(16) +[2026-09-10T15:10:25.321Z] [stm32_freertos] [Compiler] I[08:10:25.321] <-- textDocument/documentSymbol(17) +[2026-09-10T15:10:25.321Z] [stm32_freertos] [Compiler] I[08:10:25.322] --> reply:textDocument/documentSymbol(16) 0 ms +[2026-09-10T15:10:25.322Z] [stm32_freertos] [Compiler] I[08:10:25.322] --> reply:textDocument/documentSymbol(17) 0 ms +[2026-09-10T15:10:25.322Z] [stm32_freertos] [Compiler] I[08:10:25.323] <-- textDocument/references(18) +[2026-09-10T15:10:25.323Z] [stm32_freertos] [Compiler] I[08:10:25.323] --> reply:textDocument/references(18) 0 ms +[2026-09-10T15:10:25.323Z] [stm32_freertos] [Compiler] I[08:10:25.324] <-- callHierarchy/outgoingCalls(19) +[2026-09-10T15:10:25.325Z] [stm32_freertos] [Compiler] I[08:10:25.324] --> reply:callHierarchy/outgoingCalls(19) 0 ms +[2026-09-10T15:10:25.326Z] [stm32_freertos] [Compiler] I[08:10:25.326] <-- callHierarchy/incomingCalls(20) +[2026-09-10T15:10:25.326Z] [stm32_freertos] [Compiler] I[08:10:25.326] --> reply:callHierarchy/incomingCalls(20) 0 ms +[2026-09-10T15:10:25.330Z] [stm32_freertos] [Compiler] I[08:10:25.330] <-- textDocument/documentSymbol(21) +[2026-09-10T15:10:25.331Z] [stm32_freertos] [Compiler] I[08:10:25.331] <-- textDocument/documentSymbol(22) +[2026-09-10T15:10:25.331Z] [stm32_freertos] [Compiler] I[08:10:25.331] --> reply:textDocument/documentSymbol(21) 1 ms +[2026-09-10T15:10:25.332Z] [stm32_freertos] [Compiler] I[08:10:25.332] --> reply:textDocument/documentSymbol(22) 1 ms +[2026-09-10T15:10:25.333Z] [stm32_freertos] [Compiler] I[08:10:25.333] <-- textDocument/didOpen +[2026-09-10T15:10:25.333Z] [stm32_freertos] [Compiler] I[08:10:25.334] <-- textDocument/documentSymbol(23) +I[08:10:25.334] <-- textDocument/references(24) +[2026-09-10T15:10:25.334Z] [stm32_freertos] [Compiler] I[08:10:25.334] <-- callHierarchy/outgoingCalls(25) +I[08:10:25.334] ASTWorker building file I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_rcc.c version 0 with command +[I:\BackFile\code\stm32_freertos\build\Debug] +"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe" --target=arm-none-eabi -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o "cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_rcc.c.obj" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_rcc.c" +I[08:10:25.334] --> reply:textDocument/references(24) 0 ms +[2026-09-10T15:10:25.334Z] [stm32_freertos] [Compiler] I[08:10:25.334] --> reply:callHierarchy/outgoingCalls(25) 0 ms +[2026-09-10T15:10:25.337Z] [stm32_freertos] [Compiler] I[08:10:25.335] <-- callHierarchy/incomingCalls(26) +I[08:10:25.335] --> reply:callHierarchy/incomingCalls(26) 0 ms +[2026-09-10T15:10:25.341Z] [stm32_freertos] [Compiler] I[08:10:25.341] <-- textDocument/codeAction(27) +[2026-09-10T15:10:25.341Z] [stm32_freertos] [Compiler] I[08:10:25.341] --> reply:textDocument/codeAction(27) 0 ms +[2026-09-10T15:10:25.345Z] [stm32_freertos] [Compiler] I[08:10:25.345] <-- textDocument/inlayHint(28) +I[08:10:25.345] --> reply:textDocument/inlayHint(28) 0 ms +[2026-09-10T15:10:25.346Z] [stm32_freertos] [Compiler] I[08:10:25.346] <-- textDocument/semanticTokens/full(29) +[2026-09-10T15:10:25.347Z] [stm32_freertos] [Compiler] I[08:10:25.347] --> reply:textDocument/semanticTokens/full(29) 1 ms +[2026-09-10T15:10:25.485Z] [stm32_freertos] [Compiler] I[08:10:25.485] Built preamble of size 2322972 for file I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_rcc.c version 0 in 0.15 seconds +[2026-09-10T15:10:25.562Z] [stm32_freertos] [Compiler] I[08:10:25.562] --> textDocument/publishDiagnostics +[2026-09-10T15:10:25.565Z] [stm32_freertos] [Compiler] I[08:10:25.565] --> reply:textDocument/documentSymbol(23) 231 ms +[2026-09-10T15:10:25.567Z] [stm32_freertos] [Compiler] I[08:10:25.567] <-- textDocument/documentSymbol(30) +I[08:10:25.567] <-- textDocument/documentSymbol(31) +[2026-09-10T15:10:25.567Z] [stm32_freertos] [Compiler] I[08:10:25.567] --> reply:textDocument/documentSymbol(30) 0 ms +[2026-09-10T15:10:25.568Z] [stm32_freertos] [Compiler] I[08:10:25.568] <-- callHierarchy/outgoingCalls(32) +I[08:10:25.568] --> reply:textDocument/documentSymbol(31) 1 ms +[2026-09-10T15:10:25.569Z] [stm32_freertos] [Compiler] I[08:10:25.569] --> reply:callHierarchy/outgoingCalls(32) 0 ms +I[08:10:25.569] <-- callHierarchy/outgoingCalls(33) +[2026-09-10T15:10:25.570Z] [stm32_freertos] [Compiler] I[08:10:25.570] --> reply:callHierarchy/outgoingCalls(33) 0 ms diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/vscode.git/Git.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/vscode.git/Git.log new file mode 100644 index 000000000..21b1da2af --- /dev/null +++ b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/vscode.git/Git.log @@ -0,0 +1,52 @@ +2026-09-10 08:10:20.886 [info] [main] Log level: Info +2026-09-10 08:10:20.886 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 08:10:20.886 [info] [main] Validating found git in: "C:\Program Files (x86)\Git\cmd\git.exe" +2026-09-10 08:10:20.886 [info] [main] Validating found git in: "C:\Program Files\Git\cmd\git.exe" +2026-09-10 08:10:20.886 [info] [main] Validating found git in: "C:\Users\LiXueqiang\AppData\Local\Programs\Git\cmd\git.exe" +2026-09-10 08:10:21.113 [info] [main] Validating found git in: "D:\Software\Git\cmd\git.exe" +2026-09-10 08:10:21.189 [info] [askpassManager] Creating content-addressed askpass scripts at i:\BackFile\code\hornet-cpptools\Extension\artifacts\stm32-host\user\User\globalStorage\vscode.git\askpass\70789581cae28aa7 +2026-09-10 08:10:21.332 [info] [askpassManager] Successfully created content-addressed askpass scripts +2026-09-10 08:10:21.369 [info] [main] Using git "2.53.0.windows.1" from "D:\Software\Git\cmd\git.exe" +2026-09-10 08:10:21.369 [info] [Model][doInitialScan] Initial repository scan started +2026-09-10 08:10:21.492 [info] > git rev-parse --show-toplevel [103ms] +2026-09-10 08:10:21.637 [info] > git rev-parse --git-dir --git-common-dir --show-superproject-working-tree [138ms] +2026-09-10 08:10:21.653 [info] [Model][openRepository] Opened repository (path): i:\BackFile\code\stm32_freertos +2026-09-10 08:10:21.653 [info] [Model][openRepository] Opened repository (real path): i:\BackFile\code\stm32_freertos +2026-09-10 08:10:21.653 [info] [Model][openRepository] Opened repository (kind): repository +2026-09-10 08:10:21.766 [info] > git config --get --local core.virtualfilesystem [103ms] +2026-09-10 08:10:21.766 [warning] [Git][config] git config failed: Failed to execute git +2026-09-10 08:10:21.769 [info] > git config --get commit.template [99ms] +2026-09-10 08:10:21.782 [info] > git rev-parse --show-toplevel [102ms] +2026-09-10 08:10:21.801 [info] > git for-each-ref --format=%(refname)%00%(upstream:short)%00%(objectname)%00%(upstream:track)%00%(upstream:remotename)%00%(upstream:remoteref) --ignore-case refs/heads/master refs/remotes/master [112ms] +2026-09-10 08:10:21.882 [info] > git rev-parse --show-toplevel [92ms] +2026-09-10 08:10:21.923 [info] > git for-each-ref --sort -committerdate --format %(refname)%00%(objectname)%00%(*objectname) [107ms] +2026-09-10 08:10:21.938 [info] > git status -z -uall [129ms] +2026-09-10 08:10:21.997 [info] > git rev-parse --show-toplevel [111ms] +2026-09-10 08:10:22.067 [info] > git config --get commit.template [101ms] +2026-09-10 08:10:22.070 [info] > git for-each-ref --format=%(refname)%00%(upstream:short)%00%(objectname)%00%(upstream:track)%00%(upstream:remotename)%00%(upstream:remoteref) --ignore-case refs/heads/master refs/remotes/master [97ms] +2026-09-10 08:10:22.071 [info] > git for-each-ref --format=%(refname)%00%(upstream:short)%00%(objectname)%00%(upstream:track)%00%(upstream:remotename)%00%(upstream:remoteref) --ignore-case refs/heads/master refs/remotes/master [116ms] +2026-09-10 08:10:22.094 [info] > git rev-parse --show-toplevel [90ms] +2026-09-10 08:10:22.170 [info] > git config --get --local branch.master.vscode-merge-base [94ms] +2026-09-10 08:10:22.176 [info] > git for-each-ref --sort -committerdate --format %(refname)%00%(objectname)%00%(*objectname) [90ms] +2026-09-10 08:10:22.180 [info] > git rev-parse --show-toplevel [82ms] +2026-09-10 08:10:22.192 [info] > git status -z -uall [110ms] +2026-09-10 08:10:22.276 [info] > git for-each-ref --format=%(refname)%00%(upstream:short)%00%(objectname)%00%(upstream:track)%00%(upstream:remotename)%00%(upstream:remoteref) --ignore-case refs/heads/origin/master refs/remotes/origin/master [101ms] +2026-09-10 08:10:22.304 [info] > git rev-parse --show-toplevel [113ms] +2026-09-10 08:10:22.313 [info] > git check-ignore -v -z --stdin [127ms] +2026-09-10 08:10:22.425 [info] > git merge-base refs/heads/master refs/remotes/origin/master [131ms] +2026-09-10 08:10:22.434 [info] > git merge-base refs/heads/master refs/remotes/origin/master [148ms] +2026-09-10 08:10:22.481 [info] > git rev-parse --show-toplevel [170ms] +2026-09-10 08:10:22.616 [info] > git diff --raw --numstat --diff-filter=ADMR -z --find-renames=50% 489329a85e79d0d721c96d2160e8404b9391c7a7...refs/remotes/origin/master -- [174ms] +2026-09-10 08:10:22.631 [info] > git diff --raw --numstat --diff-filter=ADMR -z --find-renames=50% 489329a85e79d0d721c96d2160e8404b9391c7a7...refs/remotes/origin/master -- [197ms] +2026-09-10 08:10:22.664 [info] > git rev-parse --show-toplevel [173ms] +2026-09-10 08:10:22.892 [info] > git rev-parse --show-toplevel [213ms] +2026-09-10 08:10:23.134 [info] > git rev-parse --show-toplevel [230ms] +2026-09-10 08:10:23.320 [info] > git rev-parse --show-toplevel [173ms] +2026-09-10 08:10:23.324 [info] [Model][doInitialScan] Initial repository scan completed - repositories (1), closed repositories (0), parent repositories (0), unsafe repositories (0) +2026-09-10 08:10:24.462 [info] > git config --get commit.template [96ms] +2026-09-10 08:10:24.467 [info] > git for-each-ref --format=%(refname)%00%(upstream:short)%00%(objectname)%00%(upstream:track)%00%(upstream:remotename)%00%(upstream:remoteref) --ignore-case refs/heads/master refs/remotes/master [96ms] +2026-09-10 08:10:24.583 [info] > git for-each-ref --sort -committerdate --format %(refname)%00%(objectname)%00%(*objectname) [105ms] +2026-09-10 08:10:24.602 [info] > git status -z -uall [129ms] +2026-09-10 08:10:25.320 [info] > git check-ignore -v -z --stdin [121ms] +2026-09-10 08:10:25.516 [info] > git show --textconv :core/src/main.c [148ms] +2026-09-10 08:10:25.521 [info] > git ls-files --stage -- core/src/main.c [146ms] diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/vscode.github-authentication/GitHub Authentication.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/vscode.github-authentication/GitHub Authentication.log new file mode 100644 index 000000000..f0f8d89ce --- /dev/null +++ b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/vscode.github-authentication/GitHub Authentication.log @@ -0,0 +1,273 @@ +2026-09-10 08:10:20.877 [info] Reading sessions from keychain... +2026-09-10 08:10:20.877 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.877 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.877 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.877 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.878 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.878 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.878 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.878 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.878 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.878 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.879 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.879 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.879 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.879 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.879 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.879 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.879 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.879 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.879 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.879 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.879 [info] Getting sessions for repo... +2026-09-10 08:10:20.879 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.879 [info] Getting sessions for repo... +2026-09-10 08:10:20.879 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.879 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.879 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.879 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.880 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.880 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.880 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.880 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.891 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.891 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.892 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.892 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.892 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.892 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.893 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.893 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.893 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.893 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.893 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.893 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.893 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.893 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.894 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.894 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.894 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.894 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.894 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.894 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.894 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.894 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.895 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.895 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.895 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.895 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.895 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.895 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.932 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.933 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.933 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.933 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.934 [info] Getting sessions for repo... +2026-09-10 08:10:20.934 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.934 [info] Getting sessions for repo... +2026-09-10 08:10:20.934 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.935 [info] Getting sessions for repo... +2026-09-10 08:10:20.935 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.935 [info] Getting sessions for repo... +2026-09-10 08:10:20.935 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.935 [info] Getting sessions for repo... +2026-09-10 08:10:20.935 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.935 [info] Getting sessions for repo... +2026-09-10 08:10:20.935 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.936 [info] Getting sessions for repo... +2026-09-10 08:10:20.936 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.936 [info] Getting sessions for repo... +2026-09-10 08:10:20.936 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.936 [info] Getting sessions for repo... +2026-09-10 08:10:20.936 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.936 [info] Getting sessions for repo... +2026-09-10 08:10:20.936 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.936 [info] Getting sessions for repo... +2026-09-10 08:10:20.936 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.937 [info] Getting sessions for repo... +2026-09-10 08:10:20.937 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.937 [info] Getting sessions for repo... +2026-09-10 08:10:20.937 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.937 [info] Getting sessions for repo... +2026-09-10 08:10:20.937 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.944 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.944 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.944 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.944 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.945 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.945 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.945 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.945 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.945 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.945 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.945 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.946 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.946 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.946 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.946 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.946 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.946 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.946 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.947 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.947 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.947 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.947 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.947 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.947 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.947 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.947 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.947 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.947 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.948 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.948 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.948 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.948 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.956 [info] Getting sessions for repo... +2026-09-10 08:10:20.956 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.957 [info] Getting sessions for repo... +2026-09-10 08:10:20.957 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.957 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.957 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.957 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.957 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.957 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.957 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.957 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.957 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.958 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.958 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.958 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.958 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.958 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.958 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.958 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.958 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.959 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.959 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.959 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.959 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.959 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.959 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.961 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.961 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.961 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.961 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.962 [info] Getting sessions for read:user,user:email... +2026-09-10 08:10:20.962 [info] Got 0 sessions for read:user,user:email... +2026-09-10 08:10:20.964 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.964 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.964 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.964 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.965 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.965 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.965 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.965 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.965 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.965 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.965 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.965 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.966 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.966 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.966 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.966 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.967 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.967 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.967 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.967 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.967 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.967 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.968 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.968 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.981 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.981 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.981 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.981 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.981 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.981 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.982 [info] Getting sessions for all scopes... +2026-09-10 08:10:20.982 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:20.983 [info] Getting sessions for repo... +2026-09-10 08:10:20.983 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.984 [info] Getting sessions for repo... +2026-09-10 08:10:20.984 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.984 [info] Getting sessions for repo... +2026-09-10 08:10:20.984 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.985 [info] Getting sessions for repo... +2026-09-10 08:10:20.985 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.985 [info] Getting sessions for repo... +2026-09-10 08:10:20.985 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.985 [info] Getting sessions for repo... +2026-09-10 08:10:20.985 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.986 [info] Getting sessions for repo... +2026-09-10 08:10:20.986 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.986 [info] Getting sessions for repo... +2026-09-10 08:10:20.986 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.987 [info] Getting sessions for repo... +2026-09-10 08:10:20.987 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.987 [info] Getting sessions for repo... +2026-09-10 08:10:20.987 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.999 [info] Getting sessions for repo... +2026-09-10 08:10:20.999 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.999 [info] Getting sessions for repo... +2026-09-10 08:10:20.999 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.999 [info] Getting sessions for repo... +2026-09-10 08:10:20.999 [info] Got 0 sessions for repo... +2026-09-10 08:10:20.999 [info] Getting sessions for repo... +2026-09-10 08:10:21.000 [info] Got 0 sessions for repo... +2026-09-10 08:10:21.000 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.000 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.000 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.000 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.000 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.000 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.000 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.000 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.000 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.000 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.000 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.001 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.001 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.001 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.002 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.002 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.003 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.003 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.003 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.003 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.012 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.012 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.012 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.012 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.012 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.012 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.013 [info] Getting sessions for all scopes... +2026-09-10 08:10:21.013 [info] Got 0 sessions for all scopes... +2026-09-10 08:10:21.974 [info] Getting sessions for read:user,repo,user:email,workflow... +2026-09-10 08:10:21.974 [info] Got 0 sessions for read:user,repo,user:email,workflow... +2026-09-10 08:10:22.816 [info] Getting sessions for all scopes... +2026-09-10 08:10:22.816 [info] Got 0 sessions for all scopes... diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/vscode.github/GitHub.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/vscode.github/GitHub.log new file mode 100644 index 000000000..94521196f --- /dev/null +++ b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/exthost/vscode.github/GitHub.log @@ -0,0 +1,2 @@ +2026-09-10 08:10:20.960 [info] Log level: Info +2026-09-10 08:10:21.979 [warning] [GitHubBranchProtectionProvider][updateRepositoryBranchProtection] Failed to update repository branch protection: No GitHub authentication session available. diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/network.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/network.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/notebook.rendering.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/notebook.rendering.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/output_20260910T081020/agentSessionsOutput.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/output_20260910T081020/agentSessionsOutput.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/output_20260910T081020/tasks.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/output_20260910T081020/tasks.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/renderer.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/renderer.log new file mode 100644 index 000000000..d7df8510e --- /dev/null +++ b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/renderer.log @@ -0,0 +1,83 @@ +2026-09-10 08:10:19.503 [info] [RemoteAgentHost] Reconciling: desired=[], current=[] +2026-09-10 08:10:19.519 [info] [AgentHost:renderer] Acquiring MessagePort to agent host... +2026-09-10 08:10:19.698 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey=undefined conversationKey=undefined modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 08:10:19.895 [info] [AgentHost:renderer] MessagePort acquired, creating client... +2026-09-10 08:10:19.921 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/MzllZTIyYjYtNTJkZi00OTNmLWI3YjItYTcwYThjODZiNjdl" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 08:10:20.007 [info] [AgentHost:renderer] Protocol connection established; clientId=a4889438-244e-4782-ae7d-f5dc8ccf1440 +2026-09-10 08:10:20.010 [info] Started initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/stm32-host/extensions +2026-09-10 08:10:20.019 [info] Started local extension host with pid 19996. +2026-09-10 08:10:20.218 [info] Completed initializing default profile extensions in extensions installation folder. file:///i%3A/BackFile/code/hornet-cpptools/Extension/artifacts/stm32-host/extensions +2026-09-10 08:10:20.295 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false +2026-09-10 08:10:20.323 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.334 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.335 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.335 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.363 [info] Loading development extension at i:\BackFile\code\hornet-cpptools\Extension +2026-09-10 08:10:20.764 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.765 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.900 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.903 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.909 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.910 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.911 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.912 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.913 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.914 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.915 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.916 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.916 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.917 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.919 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.920 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.920 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.921 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.955 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.957 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.958 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.959 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.959 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.960 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.961 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.962 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.963 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.963 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.963 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.964 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.965 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.965 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.965 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.966 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.973 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/MzllZTIyYjYtNTJkZi00OTNmLWI3YjItYTcwYThjODZiNjdl" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 08:10:20.982 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.983 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:20.984 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.987 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.988 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.989 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.991 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.992 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.992 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.993 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.994 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.995 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.997 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.998 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:20.998 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:21.000 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com +2026-09-10 08:10:21.012 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.016 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.019 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.020 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.021 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.021 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.022 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.023 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.024 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.025 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.025 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.027 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.028 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.029 [info] [AgentHost] No signed-in session resolved for resource: https://api.github.com/repos +2026-09-10 08:10:21.051 [info] Settings Sync: Account status changed from uninitialized to unavailable +2026-09-10 08:10:25.028 [info] [ChatModelSelection] event=no-model-at-toolbar-build surface="workbench" sessionKey="local" conversationKey="vscode-chat-session://local/MzllZTIyYjYtNTJkZi00OTNmLWI3YjItYTcwYThjODZiNjdl" modelTarget=undefined storageKey="chat.currentLanguageModel.panel" widgetViewKind="view" +2026-09-10 08:10:25.349 [info] [AccountPolicyGate] apply: state=inactive, reason=undefined, isRestricted=false diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/textModelChanges.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/textModelChanges.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/views.log b/Extension/artifacts/stm32-host/user/logs/20260910T081018/window1/views.log new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/artifacts/stm32-host/user/machineid b/Extension/artifacts/stm32-host/user/machineid new file mode 100644 index 000000000..ad35f49fd --- /dev/null +++ b/Extension/artifacts/stm32-host/user/machineid @@ -0,0 +1 @@ +782c3abb-5fc8-4e05-a166-efcc2b181044 \ No newline at end of file diff --git a/Extension/artifacts/stm32-repro.log b/Extension/artifacts/stm32-repro.log new file mode 100644 index 000000000..4feb3c4ac Binary files /dev/null and b/Extension/artifacts/stm32-repro.log differ diff --git a/Extension/artifacts/stm32/clangd.log b/Extension/artifacts/stm32/clangd.log new file mode 100644 index 000000000..34001167a --- /dev/null +++ b/Extension/artifacts/stm32/clangd.log @@ -0,0 +1,222 @@ +[Index] Discovering C/C++ sources and compile commands +[Index] Starting clangd for 38 source files +Starting D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[08:06:00.716] clangd version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) +I[08:06:00.717] Features: windows+grpc +I[08:06:00.717] PID: 20944 +I[08:06:00.717] Working directory: I:\BackFile\code\stm32_freertos +I[08:06:00.717] argv[0]: D:\Software\Microsoft\.vscode\user_data\User\globalStorage\llvm-vs-code-extensions.vscode-clangd\install\22.1.0\clangd_22.1.0\bin\clangd.exe +I[08:06:00.717] argv[1]: --background-index +I[08:06:00.717] argv[2]: --enable-config=0 +I[08:06:00.717] argv[3]: --compile-commands-dir=I:\BackFile\code\hornet-cpptools\Extension\artifacts\stm32\db +I[08:06:00.717] argv[4]: -j=10 +I[08:06:00.717] Starting LSP over stdin/stdout +I[08:06:00.717] <-- initialize(0) +I[08:06:00.734] --> reply:initialize(0) 16 ms +Compiler ready +[Index] Loading compilation database (38 source files) +[Index] Parsing I:\BackFile\code\stm32_freertos\core\src\common.c +I[08:06:00.735] <-- initialized +I[08:06:00.737] <-- textDocument/didOpen +I[08:06:00.737] <-- textDocument/documentSymbol(1) +I[08:06:00.738] Loaded compilation database from I:\BackFile\code\hornet-cpptools\Extension\artifacts\stm32\db\compile_commands.json +I[08:06:00.738] --> window/workDoneProgress/create(0) +I[08:06:00.738] Enqueueing 38 commands for indexing +I[08:06:00.738] ASTWorker building file I:\BackFile\code\stm32_freertos\core\src\common.c version 0 with command +[I:\BackFile\code\stm32_freertos\build\Debug] +"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe" --target=arm-none-eabi -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o "CMakeFiles\\stm32f103_freertos.dir\\core\\src\\common.c.obj" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\stm32_freertos\\core\\src\\common.c" +I[08:06:00.739] <-- reply(0) +I[08:06:00.739] --> $/progress +I[08:06:00.739] --> $/progress +[Index] Building project index (0%) +[Index] 0/1 (0%) +I[08:06:00.749] --> $/progress +I[08:06:00.749] --> $/progress +I[08:06:00.749] --> $/progress +I[08:06:00.749] --> $/progress +I[08:06:00.749] --> $/progress +I[08:06:00.749] --> $/progress +I[08:06:00.749] --> $/progress +I[08:06:00.749] --> $/progress +I[08:06:00.749] --> $/progress +I[08:06:00.749] --> $/progress +[Index] 0/39 (0%) +I[08:06:00.749] --> $/progress +I[08:06:00.749] --> $/progress +[Index] 1/39 (2%) +I[08:06:00.791] Indexed I:\BackFile\code\stm32_freertos\free_rtos\list.c (341 symbols, 1765 refs, 38 files) +I[08:06:00.838] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal.c (1269 symbols, 16893 refs, 42 files) +I[08:06:00.840] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_rcc_ex.c (1266 symbols, 16932 refs, 42 files) +I[08:06:00.846] Built preamble of size 2483556 for file I:\BackFile\code\stm32_freertos\core\src\common.c version 0 in 0.09 seconds +I[08:06:00.847] Indexing c17 standard library in the context of I:\BackFile\code\stm32_freertos\core\src\common.c +I[08:06:00.857] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_gpio_ex.c (1266 symbols, 16745 refs, 42 files) +I[08:06:00.859] Indexed I:\BackFile\code\stm32_freertos\core\src\key_control.c (1800 symbols, 18523 refs, 57 files) +I[08:06:00.862] Indexed I:\BackFile\code\stm32_freertos\core\src\freertos.c (1529 symbols, 17844 refs, 52 files) +I[08:06:00.865] Indexed I:\BackFile\code\stm32_freertos\core\src\led_control.c (1788 symbols, 18502 refs, 55 files) +I[08:06:00.866] --> textDocument/publishDiagnostics +I[08:06:00.867] --> reply:textDocument/documentSymbol(1) 129 ms +I[08:06:00.868] <-- textDocument/documentSymbol(2) +I[08:06:00.868] --> reply:textDocument/documentSymbol(2) 0 ms +I[08:06:00.872] Indexed I:\BackFile\code\stm32_freertos\core\src\main.c (1811 symbols, 18650 refs, 58 files) +I[08:06:00.889] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_i2c.c (1299 symbols, 22787 refs, 42 files) +I[08:06:00.889] Indexed I:\BackFile\code\stm32_freertos\free_rtos\cmsis_rtos_v2\cmsis_os2.c (1947 symbols, 20814 refs, 72 files) +I[08:06:00.946] Indexed c17 standard library (incomplete due to errors): 2435 symbols, 11 filtered +I[08:06:01.111] --> $/progress +I[08:06:01.111] --> $/progress +[Index] 2/39 (5%) +I[08:06:01.114] Indexed I:\BackFile\code\stm32_freertos\drivers\cmsis\device\stm32f1xx\src\gcc\startup_stm32f103xe.s (0 symbols, 0 refs, 1 files) +I[08:06:01.114] Failed to compile I:\BackFile\code\stm32_freertos\drivers\cmsis\device\stm32f1xx\src\gcc\startup_stm32f103xe.s, index may be incomplete +I[08:06:01.129] --> $/progress +I[08:06:01.129] --> $/progress +[Index] 3/39 (7%) +I[08:06:01.196] Indexed I:\BackFile\code\stm32_freertos\core\src\stm32f1xx_it.c (252 symbols, 15045 refs, 53 files) +I[08:06:01.294] --> $/progress +I[08:06:01.294] --> $/progress +[Index] 4/39 (10%) +I[08:06:01.304] --> $/progress +I[08:06:01.304] --> $/progress +[Index] 5/39 (12%) +I[08:06:01.327] --> $/progress +I[08:06:01.327] --> $/progress +[Index] 6/39 (15%) +I[08:06:01.329] --> $/progress +I[08:06:01.329] --> $/progress +[Index] 7/39 (17%) +I[08:06:01.355] Indexed I:\BackFile\code\stm32_freertos\drivers\cmsis\device\stm32f1xx\src\system_stm32f1xx.c (11 symbols, 14078 refs, 42 files) +I[08:06:01.360] Indexed I:\BackFile\code\stm32_freertos\free_rtos\stream_buffer.c (99 symbols, 2061 refs, 41 files) +I[08:06:01.366] --> $/progress +I[08:06:01.366] --> $/progress +[Index] 8/39 (20%) +I[08:06:01.367] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_pwr.c (18 symbols, 14144 refs, 42 files) +I[08:06:01.371] --> $/progress +I[08:06:01.371] --> $/progress +[Index] 9/39 (23%) +I[08:06:01.382] --> $/progress +I[08:06:01.382] --> $/progress +[Index] 10/39 (25%) +I[08:06:01.394] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_gpio.c (8 symbols, 14158 refs, 42 files) +I[08:06:01.406] --> $/progress +I[08:06:01.406] --> $/progress +I[08:06:01.406] Indexed I:\BackFile\code\stm32_freertos\free_rtos\portable\gcc\arm_cm3\port.c (16 symbols, 920 refs, 26 files) +[Index] 11/39 (28%) +I[08:06:01.410] --> $/progress +I[08:06:01.410] --> $/progress +[Index] 12/39 (30%) +I[08:06:01.416] --> $/progress +I[08:06:01.416] --> $/progress +[Index] 13/39 (33%) +I[08:06:01.422] --> $/progress +I[08:06:01.422] --> $/progress +[Index] 14/39 (35%) +I[08:06:01.443] --> $/progress +I[08:06:01.443] --> $/progress +[Index] 15/39 (38%) +I[08:06:01.444] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_rcc.c (15 symbols, 14782 refs, 42 files) +I[08:06:01.446] Indexed I:\BackFile\code\stm32_freertos\free_rtos\event_groups.c (21 symbols, 1676 refs, 41 files) +I[08:06:01.446] --> $/progress +I[08:06:01.446] --> $/progress +[Index] 16/39 (41%) +I[08:06:01.448] Indexed I:\BackFile\code\stm32_freertos\free_rtos\croutine.c (13 symbols, 828 refs, 27 files) +I[08:06:01.453] Indexed I:\BackFile\code\stm32_freertos\free_rtos\timers.c (45 symbols, 2051 refs, 41 files) +I[08:06:01.453] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_uart.c (62 symbols, 16134 refs, 42 files) +I[08:06:01.456] --> $/progress +I[08:06:01.456] --> $/progress +[Index] 17/39 (43%) +I[08:06:01.459] --> $/progress +I[08:06:01.459] --> $/progress +[Index] 18/39 (46%) +I[08:06:01.461] --> $/progress +I[08:06:01.461] --> $/progress +[Index] 19/39 (48%) +I[08:06:01.463] --> $/progress +I[08:06:01.463] --> $/progress +[Index] 20/39 (51%) +I[08:06:01.463] --> $/progress +I[08:06:01.463] --> $/progress +[Index] 21/39 (53%) +I[08:06:01.467] --> $/progress +I[08:06:01.467] --> $/progress +[Index] 22/39 (56%) +I[08:06:01.470] Indexed I:\BackFile\code\stm32_freertos\core\src\sysmem.c (8 symbols, 625 refs, 28 files) +I[08:06:01.476] Indexed I:\BackFile\code\stm32_freertos\free_rtos\portable\mem_mang\heap_4.c (21 symbols, 1492 refs, 39 files) +I[08:06:01.481] --> $/progress +I[08:06:01.481] --> $/progress +[Index] 23/39 (58%) +I[08:06:01.486] --> $/progress +I[08:06:01.486] --> $/progress +[Index] 24/39 (61%) +I[08:06:01.489] Indexed I:\BackFile\code\stm32_freertos\core\src\common.c (238 symbols, 15100 refs, 54 files) +I[08:06:01.502] Indexed I:\BackFile\code\stm32_freertos\free_rtos\queue.c (67 symbols, 2810 refs, 44 files) +I[08:06:01.505] Indexed I:\BackFile\code\stm32_freertos\core\src\syscalls.c (451 symbols, 2467 refs, 55 files) +I[08:06:01.507] --> $/progress +I[08:06:01.507] --> $/progress +[Index] 25/39 (64%) +I[08:06:01.509] --> $/progress +I[08:06:01.509] --> $/progress +[Index] 26/39 (66%) +I[08:06:01.530] Indexed I:\BackFile\code\stm32_freertos\core\src\stm32f1xx_hal_msp.c (9 symbols, 14150 refs, 43 files) +I[08:06:01.534] Indexed I:\BackFile\code\stm32_freertos\core\src\tm1637_control.c (29 symbols, 14883 refs, 55 files) +I[08:06:01.536] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_dma.c (13 symbols, 14554 refs, 42 files) +I[08:06:01.539] --> $/progress +I[08:06:01.539] --> $/progress +[Index] 27/39 (69%) +I[08:06:01.541] --> $/progress +I[08:06:01.541] --> $/progress +[Index] 28/39 (71%) +I[08:06:01.543] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_flash_ex.c (17 symbols, 14510 refs, 43 files) +I[08:06:01.547] --> $/progress +I[08:06:01.547] --> $/progress +[Index] 29/39 (74%) +I[08:06:01.550] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_exti.c (9 symbols, 14182 refs, 42 files) +I[08:06:01.555] --> $/progress +[Index] 30/39 (76%) +I[08:06:01.559] --> $/progress +[Index] 31/39 (79%) +I[08:06:01.562] --> $/progress +[Index] 32/39 (82%) +I[08:06:01.563] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_can.c (36 symbols, 14946 refs, 42 files) +I[08:06:01.572] --> $/progress +[Index] 33/39 (84%) +I[08:06:01.577] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_cortex.c (15 symbols, 14026 refs, 42 files) +I[08:06:01.578] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_flash.c (17 symbols, 14322 refs, 43 files) +I[08:06:01.586] --> $/progress +[Index] 34/39 (87%) +I[08:06:01.593] --> $/progress +[Index] 35/39 (89%) +I[08:06:01.594] Indexed I:\BackFile\code\stm32_freertos\free_rtos\tasks.c (83 symbols, 3445 refs, 45 files) +I[08:06:01.602] --> $/progress +[Index] 36/39 (92%) +I[08:06:01.608] Indexed I:\BackFile\code\stm32_freertos\drivers\stm32f1xx_hal_driver\src\stm32f1xx_hal_usart.c (44 symbols, 15538 refs, 42 files) +I[08:06:01.610] Indexed I:\BackFile\code\stm32_freertos\core\src\beep_control.c (4 symbols, 14748 refs, 55 files) +I[08:06:01.616] --> $/progress +[Index] 37/39 (94%) +I[08:06:01.619] --> $/progress +[Index] 38/39 (97%) +I[08:06:01.647] --> $/progress +[Index] Background indexing finished; waiting for pending work +[Index] Background indexing finished; waiting for pending work +[Index] Background indexing finished; waiting for pending work +Index ready: 38 source files (cached for next startup) +[Index] Index ready: 38 source files (cached for next startup) (100%) +I[08:06:03.151] <-- textDocument/didOpen +I[08:06:03.152] ASTWorker building file I:\BackFile\code\stm32_freertos\core\src\main.c version 1 with command +[I:\BackFile\code\stm32_freertos\build\Debug] +"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe" --target=arm-none-eabi -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o "CMakeFiles\\stm32f103_freertos.dir\\core\\src\\main.c.obj" -c "-resource-dir=D:\\Software\\Microsoft\\.vscode\\user_data\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install\\22.1.0\\clangd_22.1.0\\lib\\clang\\22" -- "I:\\BackFile\\code\\stm32_freertos\\core\\src\\main.c" +I[08:06:03.153] <-- textDocument/prepareCallHierarchy(3) +I[08:06:03.217] Built preamble of size 2480000 for file I:\BackFile\code\stm32_freertos\core\src\main.c version 1 in 0.06 seconds +I[08:06:03.232] --> textDocument/publishDiagnostics +I[08:06:03.232] --> reply:textDocument/prepareCallHierarchy(3) 78 ms +I[08:06:03.233] <-- textDocument/documentSymbol(4) +I[08:06:03.233] --> reply:textDocument/documentSymbol(4) 0 ms +I[08:06:03.234] <-- textDocument/references(5) +I[08:06:03.234] --> reply:textDocument/references(5) 0 ms +I[08:06:03.235] <-- callHierarchy/incomingCalls(6) +I[08:06:03.235] --> reply:callHierarchy/incomingCalls(6) 0 ms +I[08:06:03.236] <-- textDocument/documentSymbol(7) +I[08:06:03.236] --> reply:textDocument/documentSymbol(7) 0 ms +I[08:06:03.236] <-- callHierarchy/outgoingCalls(8) +I[08:06:03.236] --> reply:callHierarchy/outgoingCalls(8) 0 ms +I[08:06:03.238] <-- shutdown(9) +I[08:06:03.238] --> reply:shutdown(9) 0 ms +I[08:06:03.238] <-- exit +I[08:06:03.238] LSP finished, exiting with status 0 \ No newline at end of file diff --git a/Extension/artifacts/stm32/db/compile_commands.json b/Extension/artifacts/stm32/db/compile_commands.json new file mode 100644 index 000000000..8c45339a0 --- /dev/null +++ b/Extension/artifacts/stm32/db/compile_commands.json @@ -0,0 +1 @@ +[{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\core\\src\\common.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o CMakeFiles\\stm32f103_freertos.dir\\core\\src\\common.c.obj -c I:\\BackFile\\code\\stm32_freertos\\core\\src\\common.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\CMakeFiles\\stm32f103_freertos.dir\\core\\src\\common.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\core\\src\\main.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o CMakeFiles\\stm32f103_freertos.dir\\core\\src\\main.c.obj -c I:\\BackFile\\code\\stm32_freertos\\core\\src\\main.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\CMakeFiles\\stm32f103_freertos.dir\\core\\src\\main.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\core\\src\\freertos.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o CMakeFiles\\stm32f103_freertos.dir\\core\\src\\freertos.c.obj -c I:\\BackFile\\code\\stm32_freertos\\core\\src\\freertos.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\CMakeFiles\\stm32f103_freertos.dir\\core\\src\\freertos.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\core\\src\\led_control.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o CMakeFiles\\stm32f103_freertos.dir\\core\\src\\led_control.c.obj -c I:\\BackFile\\code\\stm32_freertos\\core\\src\\led_control.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\CMakeFiles\\stm32f103_freertos.dir\\core\\src\\led_control.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\core\\src\\beep_control.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o CMakeFiles\\stm32f103_freertos.dir\\core\\src\\beep_control.c.obj -c I:\\BackFile\\code\\stm32_freertos\\core\\src\\beep_control.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\CMakeFiles\\stm32f103_freertos.dir\\core\\src\\beep_control.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\core\\src\\key_control.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o CMakeFiles\\stm32f103_freertos.dir\\core\\src\\key_control.c.obj -c I:\\BackFile\\code\\stm32_freertos\\core\\src\\key_control.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\CMakeFiles\\stm32f103_freertos.dir\\core\\src\\key_control.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\core\\src\\tm1637_control.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o CMakeFiles\\stm32f103_freertos.dir\\core\\src\\tm1637_control.c.obj -c I:\\BackFile\\code\\stm32_freertos\\core\\src\\tm1637_control.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\CMakeFiles\\stm32f103_freertos.dir\\core\\src\\tm1637_control.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\core\\src\\stm32f1xx_it.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o CMakeFiles\\stm32f103_freertos.dir\\core\\src\\stm32f1xx_it.c.obj -c I:\\BackFile\\code\\stm32_freertos\\core\\src\\stm32f1xx_it.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\CMakeFiles\\stm32f103_freertos.dir\\core\\src\\stm32f1xx_it.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\core\\src\\stm32f1xx_hal_msp.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o CMakeFiles\\stm32f103_freertos.dir\\core\\src\\stm32f1xx_hal_msp.c.obj -c I:\\BackFile\\code\\stm32_freertos\\core\\src\\stm32f1xx_hal_msp.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\CMakeFiles\\stm32f103_freertos.dir\\core\\src\\stm32f1xx_hal_msp.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\core\\src\\sysmem.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o CMakeFiles\\stm32f103_freertos.dir\\core\\src\\sysmem.c.obj -c I:\\BackFile\\code\\stm32_freertos\\core\\src\\sysmem.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\CMakeFiles\\stm32f103_freertos.dir\\core\\src\\sysmem.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\core\\src\\syscalls.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o CMakeFiles\\stm32f103_freertos.dir\\core\\src\\syscalls.c.obj -c I:\\BackFile\\code\\stm32_freertos\\core\\src\\syscalls.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\CMakeFiles\\stm32f103_freertos.dir\\core\\src\\syscalls.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\cmsis\\device\\stm32f1xx\\src\\gcc\\startup_stm32f103xe.s","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -x assembler-with-cpp -MMD -MP -g -o CMakeFiles\\stm32f103_freertos.dir\\drivers\\cmsis\\device\\stm32f1xx\\src\\gcc\\startup_stm32f103xe.s.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\cmsis\\device\\stm32f1xx\\src\\gcc\\startup_stm32f103xe.s","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\CMakeFiles\\stm32f103_freertos.dir\\drivers\\cmsis\\device\\stm32f1xx\\src\\gcc\\startup_stm32f103xe.s.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\cmsis\\device\\stm32f1xx\\src\\system_stm32f1xx.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\cmsis\\device\\stm32f1xx\\src\\system_stm32f1xx.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\cmsis\\device\\stm32f1xx\\src\\system_stm32f1xx.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\cmsis\\device\\stm32f1xx\\src\\system_stm32f1xx.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_gpio_ex.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_gpio_ex.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_gpio_ex.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_gpio_ex.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_can.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_can.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_can.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_can.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_rcc.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_rcc.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_rcc.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_rcc.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_rcc_ex.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_rcc_ex.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_rcc_ex.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_rcc_ex.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_gpio.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_gpio.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_gpio.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_gpio.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_dma.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_dma.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_dma.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_dma.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_cortex.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_cortex.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_cortex.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_cortex.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_pwr.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_pwr.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_pwr.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_pwr.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_flash.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_flash.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_flash.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_flash.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_flash_ex.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_flash_ex.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_flash_ex.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_flash_ex.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_exti.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_exti.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_exti.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_exti.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_i2c.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_i2c.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_i2c.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_i2c.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_uart.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_uart.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_uart.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_uart.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_usart.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_usart.c.obj -c I:\\BackFile\\code\\stm32_freertos\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_usart.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\STM32_Drivers.dir\\__\\__\\drivers\\stm32f1xx_hal_driver\\src\\stm32f1xx_hal_usart.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\free_rtos\\croutine.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\croutine.c.obj -c I:\\BackFile\\code\\stm32_freertos\\free_rtos\\croutine.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\croutine.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\free_rtos\\event_groups.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\event_groups.c.obj -c I:\\BackFile\\code\\stm32_freertos\\free_rtos\\event_groups.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\event_groups.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\free_rtos\\list.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\list.c.obj -c I:\\BackFile\\code\\stm32_freertos\\free_rtos\\list.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\list.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\free_rtos\\queue.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\queue.c.obj -c I:\\BackFile\\code\\stm32_freertos\\free_rtos\\queue.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\queue.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\free_rtos\\stream_buffer.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\stream_buffer.c.obj -c I:\\BackFile\\code\\stm32_freertos\\free_rtos\\stream_buffer.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\stream_buffer.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\free_rtos\\tasks.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\tasks.c.obj -c I:\\BackFile\\code\\stm32_freertos\\free_rtos\\tasks.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\tasks.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\free_rtos\\timers.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\timers.c.obj -c I:\\BackFile\\code\\stm32_freertos\\free_rtos\\timers.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\timers.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\free_rtos\\cmsis_rtos_v2\\cmsis_os2.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\cmsis_rtos_v2\\cmsis_os2.c.obj -c I:\\BackFile\\code\\stm32_freertos\\free_rtos\\cmsis_rtos_v2\\cmsis_os2.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\cmsis_rtos_v2\\cmsis_os2.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\free_rtos\\portable\\mem_mang\\heap_4.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\portable\\mem_mang\\heap_4.c.obj -c I:\\BackFile\\code\\stm32_freertos\\free_rtos\\portable\\mem_mang\\heap_4.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\portable\\mem_mang\\heap_4.c.obj"},{"directory":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug","file":"I:\\BackFile\\code\\stm32_freertos\\free_rtos\\portable\\gcc\\arm_cm3\\port.c","command":"C:\\Users\\LiXueqiang\\AppData\\Local\\stm32cube\\bundles\\gnu-tools-for-stm32\\14.3.1+st.2\\bin\\arm-none-eabi-gcc.exe -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../core/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/stm32f1xx_hal_driver/include/legacy -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/cmsis_rtos_v2 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../free_rtos/portable/gcc/arm_cm3 -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/device/stm32f1xx/include -II:/BackFile/code/stm32_freertos/cmake/stm32cubemx/../../drivers/cmsis/include -mcpu=cortex-m3 -Wall -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -o cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\portable\\gcc\\arm_cm3\\port.c.obj -c I:\\BackFile\\code\\stm32_freertos\\free_rtos\\portable\\gcc\\arm_cm3\\port.c","output":"I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\cmake\\stm32cubemx\\CMakeFiles\\free_rtos.dir\\__\\__\\free_rtos\\portable\\gcc\\arm_cm3\\port.c.obj"}] \ No newline at end of file diff --git a/Extension/artifacts/stm32/result.json b/Extension/artifacts/stm32/result.json new file mode 100644 index 000000000..ef81c63e6 --- /dev/null +++ b/Extension/artifacts/stm32/result.json @@ -0,0 +1,16 @@ +{ + "source": "I:\\BackFile\\code\\stm32_freertos\\build\\Debug\\compile_commands.json", + "files": 38, + "symbols": [ + "SystemClockConfig" + ], + "incoming": [ + "main" + ], + "outgoing": [ + "ErrorHandler", + "HAL_RccClockConfig", + "HAL_RccOscConfig" + ], + "errors": [] +} \ No newline at end of file diff --git a/Extension/assets/callGraph/graph.css b/Extension/assets/callGraph/graph.css new file mode 100644 index 000000000..58f903bb2 --- /dev/null +++ b/Extension/assets/callGraph/graph.css @@ -0,0 +1,55 @@ +:root { color-scheme: light dark; } +* { box-sizing: border-box; } +body { margin: 0; display: flex; flex-direction: column; height: 100vh; overflow: hidden; color: var(--vscode-foreground, #d7dae0); background: var(--vscode-editor-background, #181b22); font-family: var(--vscode-font-family, system-ui); font-size: 13px; } +header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 22px 12px; border-bottom: 1px solid var(--vscode-panel-border, #343a47); } +h1 { font-size: 17px; font-weight: 600; margin: 0 0 7px; } +p { margin: 0; color: var(--vscode-descriptionForeground, #999fab); font-size: 12px; } +.toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; } +button, select { border: 1px solid var(--vscode-button-border, #596170); background: var(--vscode-button-secondaryBackground, #303642); color: var(--vscode-button-secondaryForeground, #eee); padding: 6px 10px; border-radius: 6px; font: inherit; cursor: pointer; } +button:hover, select:hover { background: var(--vscode-button-secondaryHoverBackground, #424b5b); } +button:focus-visible, select:focus-visible { outline: 2px solid var(--vscode-focusBorder, #55aaff); outline-offset: 2px; } +button:disabled { opacity: .45; cursor: default; } +.legend { display: flex; align-items: center; gap: 22px; padding: 12px 22px; color: var(--vscode-descriptionForeground, #a8afbd); font-size: 12px; } +.legend span:not(#counts)::before { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 7px; background: #779ef2; } +.legend .caller::before { background: #b39aef !important; } +.legend .callee::before { background: #65bea7 !important; } +.legend .related::before { background: #999fab !important; } +#counts { margin-left: auto; } +main { flex: 1; min-height: 100px; position: relative; overflow: hidden; } +svg { display: block; width: 100%; height: 100%; touch-action: none; user-select: none; cursor: grab; } +svg.dragging { cursor: grabbing; } +#empty { position: absolute; inset: 0; display: flex; justify-content: center; align-items: center; padding: 36px; color: var(--vscode-descriptionForeground, #a8afbd); pointer-events: none; } +#empty.hidden { display: none; } +.edge { fill: none; stroke: var(--vscode-descriptionForeground, #8592aa); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; opacity: .65; marker-end: url(#arrow); } +.edge.highlight { stroke: var(--vscode-focusBorder, #69a4ff); stroke-width: 2.4; opacity: 1; } +.edge.recursive { stroke-dasharray: 5 4; } +marker path { fill: var(--vscode-descriptionForeground, #8592aa); } +.node { cursor: pointer; outline: none; } +.node > rect { fill: var(--vscode-editorWidget-background, #232935); stroke: var(--vscode-panel-border, #4b5567); stroke-width: 1.4; } +.node.root > rect { stroke: #779ef2; stroke-width: 2; } +.node.selected > rect, .node:focus-visible > rect { stroke: var(--vscode-focusBorder, #69a4ff); stroke-width: 2.5; } +.node .name { fill: var(--vscode-foreground, #edf1f7); font-size: 13px; font-weight: 600; } +.node .file { fill: var(--vscode-descriptionForeground, #acb4c2); font-size: 11px; } +.node .stripe { stroke: #779ef2; stroke-width: 3; stroke-linecap: round; } +.node.caller .stripe { stroke: #b39aef; } +.node.callee .stripe { stroke: #65bea7; } +.node.related .stripe { stroke: #999fab; } +.expand { cursor: pointer; outline: none; } +.expand rect { fill: var(--vscode-editor-background, #181b22); stroke: var(--vscode-focusBorder, #79b5ff); stroke-width: 1.2; } +.expand text { fill: var(--vscode-button-foreground, #fff); font-size: 19px; text-anchor: middle; dominant-baseline: central; } +.expand:focus-visible rect, .expand:hover rect { stroke-width: 3; } +.expand[aria-disabled="true"] rect { fill: var(--vscode-editorWidget-background, #232935); stroke: var(--vscode-descriptionForeground, #8b97aa); } +.expand[aria-disabled="true"] text { font-size: 13px; } +.node.error > rect { stroke: var(--vscode-errorForeground, #f48771); } +footer { display: flex; justify-content: space-between; align-items: center; min-height: 48px; gap: 16px; padding: 8px 22px; border-top: 1px solid var(--vscode-panel-border, #343a47); } +footer > div { display: flex; gap: 7px; flex-shrink: 0; } +#message { color: var(--vscode-descriptionForeground, #a8afbd); white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; } +@media (max-width: 650px) { header { padding: 12px; } .legend { padding: 10px 12px; gap: 12px; } footer { padding: 8px 12px; } } +@media (max-height: 450px) { + header { padding: 6px 12px; gap: 8px; } + h1 { margin: 0; font-size: 14px; } + header p { display: none; } + .legend { padding: 6px 12px; gap: 14px; } + footer { padding: 4px 12px; min-height: 32px; } + button, select { padding: 4px 8px; } +} diff --git a/Extension/assets/callGraph/graph.js b/Extension/assets/callGraph/graph.js new file mode 100644 index 000000000..58fc91c1a --- /dev/null +++ b/Extension/assets/callGraph/graph.js @@ -0,0 +1,150 @@ +/* Runs only inside the sandboxed webview; symbol text is always assigned as textContent. */ +(() => { + const vscode = acquireVsCodeApi(); + const ns = 'http://www.w3.org/2000/svg'; + const svg = document.getElementById('graph'); + const scene = document.getElementById('scene'); + const nodesGroup = document.getElementById('nodes'); + const edgesGroup = document.getElementById('edges'); + const message = document.getElementById('message'); + const style = document.getElementById('edgeStyle'); + const saved = vscode.getState() || {}; + style.value = saved.edgeStyle === 'straight' ? 'straight' : 'rounded'; + const { W, H, layoutGraph, routePath, edgeKey, connectionPoint } = globalThis.HornetGraphLayout; + let graph = { nodes: [], edges: [], generation: -1 }; + let selected, positions = new Map(), scale = 1, tx = 0, ty = 0, autoFit = true; + let geometry, topology; + const send = (type, id, direction) => vscode.postMessage({ type, id, direction, generation: graph.generation }); + const element = (tag, attrs, text) => { + const item = document.createElementNS(ns, tag); + for (const [key, value] of Object.entries(attrs || {})) item.setAttribute(key, String(value)); + if (text !== undefined) item.textContent = text; + return item; + }; + const truncate = (text, length) => text.length > length ? text.slice(0, length - 1) + '…' : text; + function filename(uri) { try { return decodeURIComponent(uri.split('/').pop()); } catch { return uri.split('/').pop(); } } + function layout() { + const next = JSON.stringify([graph.root, graph.nodes.map(node => node.id).sort(), graph.edges.map(edgeKey).sort()]); + if (next === topology) return; + // Loading/probing updates only repaint controls; they must not shuffle the graph. + geometry = layoutGraph(graph); + positions = geometry.positions; topology = next; + } + function edgePath(edge) { + const route = geometry.routes.get(edgeKey(edge)); + if (!route) return ''; + const points = route.points.map(point => [...point]); + points[0] = connectionPoint(graph.nodes.find(node => node.id === edge.from), positions.get(edge.from), 'outgoing'); + points[points.length - 1] = connectionPoint(graph.nodes.find(node => node.id === edge.to), positions.get(edge.to), 'incoming'); + return routePath(points, style.value !== 'straight'); + } + function status() { + const node = graph.nodes.find(value => value.id === selected); + document.getElementById('open').disabled = !node; + document.getElementById('setRoot').disabled = !node; + const error = node?.incoming.error || node?.outgoing.error; + const loading = node?.incoming.loading || node?.outgoing.loading; + message.textContent = graph.message || (error ? `查询失败,可点击 + 重试:${error}` : loading ? `正在查询 ${node.name} 的调用关系…` : node ? `${node.name} · ${filename(node.uri)}:${node.line} · 左侧:调用者 / 右侧:被调用函数` : '点击选择函数 · 双击跳转源码 · 拖动画布平移 · 滚轮缩放'); + } + function select(id) { + selected = id; + for (const node of nodesGroup.children) node.classList.toggle('selected', node.dataset.id === id); + for (const edge of edgesGroup.children) edge.classList.toggle('highlight', edge.dataset.from === id || edge.dataset.to === id); + status(); + } + function draw() { + const focus = document.activeElement?.getAttribute('data-focus'); + layout(); nodesGroup.replaceChildren(); edgesGroup.replaceChildren(); + const names = new Map(graph.nodes.map(node => [node.id, node.name])); + for (const edge of graph.edges) { + const recursive = geometry.routes.get(edgeKey(edge))?.recursive; + const path = element('path', { class: `edge${recursive ? ' recursive' : ''}`, d: edgePath(edge), 'data-from': edge.from, 'data-to': edge.to }); + path.append(element('title', {}, `${names.get(edge.from)} → ${names.get(edge.to)}${recursive ? '(递归调用)' : ''}`)); + edgesGroup.append(path); + } + for (const node of graph.nodes) { + const position = positions.get(node.id); + const role = geometry.roles.get(node.id); + const group = element('g', { class: `node ${role}${node.incoming.error || node.outgoing.error ? ' error' : ''}`, transform: `translate(${position.x} ${position.y})`, 'data-id': node.id, + 'data-focus': node.id, tabindex: 0, role: 'group', 'aria-label': `${node.name},${filename(node.uri)} 第 ${node.line} 行` }); + group.append(element('rect', { width: W, height: H, rx: 12 })); + group.append(element('line', { class: 'stripe', x1: 10, x2: 10, y1: 18, y2: H - 18 })); + group.append(element('text', { class: 'name', x: 23, y: 29 }, truncate(node.name, 29))); + group.append(element('text', { class: 'file', x: 23, y: 52 }, truncate(`${filename(node.uri)}:${node.line}`, 34))); + group.append(element('title', {}, `${node.name}\n${node.detail}\n${node.uri}:${node.line}`)); + for (const direction of ['incoming', 'outgoing']) { + const state = node[direction], label = direction === 'incoming' ? '调用者' : '被调用函数'; + const empty = state.loaded && state.count === 0; + if ((empty || state.action === 'none') && !state.loading && !state.error) continue; + const action = state.action === 'collapse' ? 'collapse' : 'expand'; + const caption = `${action === 'collapse' ? '折叠' : '展开'} ${node.name} 的${label}`; + const expand = element('g', { class: 'expand', transform: `translate(${direction === 'incoming' ? 0 : W} ${H / 2})`, tabindex: 0, role: 'button', + 'data-focus': `${node.id}-${direction}`, 'data-direction': direction, 'aria-label': caption, + 'aria-expanded': action === 'collapse', 'aria-disabled': state.loading }); + expand.append(element('rect', { x: -13, y: -12, width: 26, height: 24, rx: 5 })); + expand.append(element('text', {}, state.loading ? '…' : action === 'collapse' ? '−' : '+')); + expand.append(element('title', {}, state.loading ? '正在查询…' : caption)); + const trigger = event => { event.stopPropagation(); select(node.id); if (!state.loading) { autoFit = true; send(action, node.id, direction); } }; + expand.addEventListener('click', trigger); + expand.addEventListener('dblclick', event => event.stopPropagation()); + expand.addEventListener('keydown', event => { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); trigger(event); } }); + group.append(expand); + } + group.addEventListener('click', () => select(node.id)); + group.addEventListener('dblclick', () => send('open', node.id)); + group.addEventListener('keydown', event => { if (event.key === 'Enter') { select(node.id); send('open', node.id); } }); + nodesGroup.append(group); + } + document.getElementById('empty').classList.toggle('hidden', graph.nodes.length > 0); + document.getElementById('empty').textContent = graph.message || '没有可显示的函数。请在编辑器中右键函数名,选择“Hornet Show Graph”。'; + document.getElementById('counts').textContent = `${graph.nodes.length} 个函数 · ${graph.edges.length} 条调用`; + if (!graph.nodes.some(node => node.id === selected)) selected = graph.root; + select(selected); + if (focus) { + const targets = [...nodesGroup.querySelectorAll('[data-focus]')]; + (targets.find(item => item.getAttribute('data-focus') === focus) + || targets.find(item => item.getAttribute('data-focus') === focus.replace(/-(incoming|outgoing)$/, '')))?.focus(); + } + if (autoFit) fit(); else transform(); + } + function transform() { scene.setAttribute('transform', `translate(${tx} ${ty}) scale(${scale})`); } + function fit() { + if (!positions.size) return; + const width = svg.clientWidth, height = svg.clientHeight; + const { minX, maxX, minY, maxY } = geometry.bounds; + scale = Math.max(.12, Math.min(1.25, width / (maxX - minX), height / (maxY - minY))); + tx = width / 2 - (minX + maxX) * scale / 2; + ty = height / 2 - (minY + maxY) * scale / 2; + transform(); + } + function zoom(factor, x = svg.clientWidth / 2, y = svg.clientHeight / 2) { + const next = Math.max(.12, Math.min(3, scale * factor)); + tx = x - (x - tx) * next / scale; ty = y - (y - ty) * next / scale; scale = next; autoFit = false; transform(); + } + let drag; + svg.addEventListener('pointerdown', event => { + if (event.button !== 0 || event.target.closest('.node')) return; + drag = { x: event.clientX, y: event.clientY, tx, ty }; + svg.setPointerCapture(event.pointerId); svg.classList.add('dragging'); autoFit = false; + }); + svg.addEventListener('pointermove', event => { if (drag) { tx = drag.tx + event.clientX - drag.x; ty = drag.ty + event.clientY - drag.y; transform(); } }); + const stopDrag = () => { drag = undefined; svg.classList.remove('dragging'); }; + svg.addEventListener('pointerup', stopDrag); svg.addEventListener('pointercancel', stopDrag); + svg.addEventListener('wheel', event => { event.preventDefault(); const rect = svg.getBoundingClientRect(); zoom(event.deltaY < 0 ? 1.12 : 1 / 1.12, event.clientX - rect.left, event.clientY - rect.top); }, { passive: false }); + document.getElementById('zoomIn').onclick = () => zoom(1.2); + document.getElementById('zoomOut').onclick = () => zoom(1 / 1.2); + document.getElementById('fit').onclick = () => { autoFit = true; fit(); }; + document.getElementById('refresh').onclick = () => send('refresh'); + document.getElementById('open').onclick = () => send('open', selected); + document.getElementById('setRoot').onclick = () => send('setRoot', selected); + style.onchange = () => { vscode.setState({ edgeStyle: style.value }); draw(); }; + new ResizeObserver(() => { if (autoFit) fit(); }).observe(document.getElementById('canvas')); + window.addEventListener('message', event => { + if (event.data?.type === 'graph') { + const next = event.data.graph; + if (next.generation !== graph.generation) { autoFit = true; selected = next.root; positions = new Map(); topology = undefined; } + graph = next; draw(); + } else if (event.data?.type === 'error') message.textContent = event.data.message; + }); + send('ready'); +})(); diff --git a/Extension/assets/callGraph/layout.js b/Extension/assets/callGraph/layout.js new file mode 100644 index 000000000..dfb3b091a --- /dev/null +++ b/Extension/assets/callGraph/layout.js @@ -0,0 +1,286 @@ +/* Shared by the webview and geometry regression tests. No DOM or external dependencies. */ +(function (scope) { + const W = 260, H = 74, X = 440, GAP = 44; + const edgeKey = edge => JSON.stringify([edge.from, edge.to]); + const hasControl = state => state && (state.loading || state.error || !(state.action === 'none' || state.loaded && state.count === 0)); + function connectionPoint(node, position, direction) { + const offset = hasControl(node[direction]) ? 14 : 1; + return [direction === 'incoming' ? position.x - offset : position.x + W + offset, position.y + H / 2]; + } + function layoutGraph(graph) { + const nodes = new Map(graph.nodes.map(node => [node.id, node])); + const edges = graph.edges.filter(edge => nodes.has(edge.from) && nodes.has(edge.to)); + const outgoing = new Map([...nodes.keys()].map(id => [id, []])); + const incoming = new Map([...nodes.keys()].map(id => [id, []])); + for (const edge of edges) { outgoing.get(edge.from).push(edge.to); incoming.get(edge.to).push(edge.from); } + const compare = (a, b) => nodes.get(a).name.localeCompare(nodes.get(b).name) || a.localeCompare(b); + const ids = [...nodes.keys()].sort(compare); + // Condense recursive groups before assigning ranks. Every non-recursive edge must go right. + const number = new Map(), low = new Map(), stack = [], onStack = new Set(), component = new Map(), groups = []; + function visit(id) { + number.set(id, number.size); low.set(id, number.get(id)); stack.push(id); onStack.add(id); + for (const next of outgoing.get(id)) { + if (!number.has(next)) { visit(next); low.set(id, Math.min(low.get(id), low.get(next))); } + else if (onStack.has(next)) low.set(id, Math.min(low.get(id), number.get(next))); + } + if (low.get(id) === number.get(id)) { + const group = []; let next; + do { next = stack.pop(); onStack.delete(next); component.set(next, groups.length); group.push(next); } while (next !== id); + groups.push(group); + } + } + ids.forEach(id => { if (!number.has(id)) visit(id); }); + const successors = groups.map(() => new Set()), indegree = groups.map(() => 0), ranks = groups.map(() => 0); + for (const edge of edges) { + const a = component.get(edge.from), b = component.get(edge.to); + if (a !== b && !successors[a].has(b)) { successors[a].add(b); indegree[b]++; } + } + const queue = indegree.flatMap((degree, index) => degree ? [] : [index]); + for (let i = 0; i < queue.length; i++) { + const current = queue[i]; + for (const next of successors[current]) { + ranks[next] = Math.max(ranks[next], ranks[current] + 1); + if (--indegree[next] === 0) queue.push(next); + } + } + const rootRank = ranks[component.get(graph.root)] || 0; + // For two trees rooted at the selected function, reserve each complete subtree's + // height before placing any boxes. Growing one branch pushes its siblings away. + let treeLayout; + if (graph.root && edges.length === nodes.size - 1) { + const seen = new Set([graph.root]); + let valid = true; + const measure = (id, adjacency) => { + const children = []; + for (const child of [...adjacency.get(id)].sort(compare)) { + if (seen.has(child)) { valid = false; continue; } + seen.add(child); + children.push(measure(child, adjacency)); + } + return { id, children, span: Math.max(H, children.reduce((sum, child) => sum + child.span + GAP, -GAP)) }; + }; + const left = measure(graph.root, incoming), right = measure(graph.root, outgoing); + if (valid && seen.size === nodes.size) { + treeLayout = new Map(); + const place = (tree, rank, y, direction) => { + treeLayout.set(tree.id, { rank, y }); + let top = y - tree.span / 2; + for (const child of tree.children) { + place(child, rank + direction, top + child.span / 2, direction); + top += child.span + GAP; + } + }; + place(left, 0, 0, -1); place(right, 0, 0, 1); + } + } + const columns = new Map(), slots = new Map(), chains = new Map(), external = new Set(); + let virtualCount = 0; + function addSlot(id, rank, real) { + const slot = { id, rank, real, height: real ? H : 12, before: [], after: [], y: 0 }; + slots.set(id, slot); + if (!columns.has(rank)) columns.set(rank, []); + columns.get(rank).push(slot); + return slot; + } + for (const id of ids) addSlot(id, treeLayout?.get(id).rank ?? ranks[component.get(id)] - rootRank, true); + // A reserved slot in each skipped column keeps long edges out of intervening rectangles. + for (const edge of [...edges].sort((a, b) => edgeKey(a).localeCompare(edgeKey(b)))) { + const from = slots.get(edge.from), to = slots.get(edge.to), chain = [from]; + const count = Math.max(0, to.rank - from.rank - 1); + if (virtualCount + count > 2000) external.add(edgeKey(edge)); + else { + virtualCount += count; + for (let rank = from.rank + 1; rank < to.rank; rank++) chain.push(addSlot(`edge:${edgeKey(edge)}:${rank}`, rank, false)); + } + chain.push(to); chains.set(edgeKey(edge), chain); + if (from.rank < to.rank && !external.has(edgeKey(edge))) for (let i = 1; i < chain.length; i++) { + chain[i - 1].after.push(chain[i]); chain[i].before.push(chain[i - 1]); + } + } + const layers = [...columns.keys()].sort((a, b) => a - b); + function pack(column) { + const height = column.reduce((sum, slot) => sum + slot.height + GAP, -GAP); + let y = -height / 2; + for (const slot of column) { slot.y = y + slot.height / 2; y += slot.height + GAP; } + } + for (const column of columns.values()) { + column.sort((a, b) => a.id.localeCompare(b.id)); + pack(column); + } + const segments = new Map(); + for (const [key, chain] of chains) for (let i = 1; i < chain.length; i++) { + if (external.has(key)) continue; + const a = chain[i - 1], b = chain[i]; + if (a.rank >= b.rank) continue; + if (!segments.has(a.rank)) segments.set(a.rank, []); + segments.get(a.rank).push({ a, b }); + } + function quality() { + let crossings = 0, span = 0; + for (const values of segments.values()) { + const sorted = [...values].sort((a, b) => a.a.y - b.a.y || a.b.y - b.b.y); + const ys = [...new Set(sorted.map(value => value.b.y))].sort((a, b) => a - b); + const indices = new Map(ys.map((y, i) => [y, i + 1])), tree = new Array(ys.length + 1).fill(0); + let seen = 0; + for (const value of sorted) { + const index = indices.get(value.b.y); let prefix = 0; + for (let i = index; i > 0; i -= i & -i) prefix += tree[i]; + crossings += seen++ - prefix; + for (let i = index; i < tree.length; i += i & -i) tree[i]++; + span += Math.abs(value.a.y - value.b.y); + } + } + return { crossings, span }; + } + let best = quality(), order = new Map([...columns].map(([rank, column]) => [rank, [...column]])); + // Barycentric sweeps group related branches instead of sorting each column alphabetically. + for (let pass = 0; pass < 6; pass++) { + const forward = pass % 2 === 0; + for (const layer of forward ? layers : [...layers].reverse()) { + const column = columns.get(layer); + const score = slot => { + const neighbors = forward ? slot.before : slot.after; + return neighbors.length ? neighbors.reduce((sum, other) => sum + other.y, 0) / neighbors.length : slot.y; + }; + const scores = new Map(column.map(slot => [slot, score(slot)])); + column.sort((a, b) => scores.get(a) - scores.get(b) || a.y - b.y || a.id.localeCompare(b.id)); + pack(column); + } + const candidate = quality(); + if (candidate.crossings < best.crossings || candidate.crossings === best.crossings && candidate.span < best.span) { + best = candidate; order = new Map([...columns].map(([rank, column]) => [rank, [...column]])); + } + } + for (const [rank, column] of order) { columns.set(rank, column); pack(column); } + // Align single-child chains and allocate room for whole branches across columns. + // Isotonic compaction finds the closest desired centers while enforcing box/lane clearance. + function align(column, forward) { + let offset = 0; + const offsets = [], blocks = []; + column.forEach((slot, index) => { + if (index) offset += (column[index - 1].height + slot.height) / 2 + GAP; + offsets.push(offset); + const neighbors = forward ? slot.before : slot.after; + const desired = neighbors.length ? neighbors.reduce((sum, other) => sum + other.y, 0) / neighbors.length : slot.y; + blocks.push({ start: index, end: index, sum: desired - offset, weight: 1 }); + while (blocks.length > 1) { + const last = blocks.at(-1), prev = blocks.at(-2); + if (prev.sum / prev.weight <= last.sum / last.weight) break; + blocks.splice(-2, 2, { start: prev.start, end: last.end, sum: prev.sum + last.sum, weight: prev.weight + last.weight }); + } + }); + for (const block of blocks) for (let i = block.start; i <= block.end; i++) column[i].y = block.sum / block.weight + offsets[i]; + } + for (let pass = 0; pass < 12; pass++) { + const forward = pass % 2 === 0; + for (const layer of forward ? layers : [...layers].reverse()) align(columns.get(layer), forward); + } + if (treeLayout) for (const [id, position] of treeLayout) slots.get(id).y = position.y; + else { + // Keep uninterrupted chains horizontal, including virtual lanes for long calls. + // Clamp each chain's shared center to its available space in every column. + const visited = new Set(); + for (const first of slots.values()) { + if (first.before.length === 1 && first.before[0].after.length === 1) continue; + const chain = []; let slot = first; + while (slot && !visited.has(slot)) { + chain.push(slot); visited.add(slot); + slot = slot.after.length === 1 && slot.after[0].before.length === 1 ? slot.after[0] : undefined; + } + if (chain.length < 2) continue; + let lower = -Infinity, upper = Infinity; + for (const member of chain) { + const column = columns.get(member.rank), index = column.indexOf(member); + if (index) lower = Math.max(lower, column[index - 1].y + (column[index - 1].height + member.height) / 2 + GAP); + if (index + 1 < column.length) upper = Math.min(upper, column[index + 1].y - (column[index + 1].height + member.height) / 2 - GAP); + } + if (lower <= upper) { + const center = Math.max(lower, Math.min(upper, chain.reduce((sum, member) => sum + member.y, 0) / chain.length)); + for (const member of chain) member.y = center; + } + } + } + const rootY = slots.get(graph.root)?.y || 0; + const positions = new Map(); + for (const slot of slots.values()) { + slot.y -= rootY; + if (slot.real) positions.set(slot.id, { x: slot.rank * X - W / 2, y: slot.y - H / 2, rank: slot.rank }); + } + const reachable = adjacency => { + const result = new Set(); const todo = graph.root ? [graph.root] : []; + for (let i = 0; i < todo.length; i++) for (const next of adjacency.get(todo[i]) || []) { + if (!result.has(next)) { result.add(next); todo.push(next); } + } + return result; + }; + const callers = reachable(incoming), callees = reachable(outgoing); + const roles = new Map(ids.map(id => [id, id === graph.root ? 'root' : callers.has(id) ? 'caller' : callees.has(id) ? 'callee' : 'related'])); + const routes = new Map(), tracks = segments; + // A fan-out shares one spine on the right; a fan-in shares one spine on the left. + const trackPositions = new Map(); + for (const [rank, entries] of tracks) { + entries.sort((a, b) => a.b.y - b.b.y || a.a.y - b.a.y || a.a.id.localeCompare(b.a.id)); + const group = entry => rank < 0 ? entry.b.id : entry.a.id; + const groups = [...new Set(entries.map(group))]; + entries.forEach(entry => trackPositions.set(JSON.stringify([entry.a.id, entry.b.id]), rank * X + W / 2 + 34 + (X - W - 68) * (groups.indexOf(group(entry)) + 1) / (groups.length + 1))); + } + const top = Math.min(0, ...[...positions.values()].map(position => position.y)) - GAP; + let loop = 0; + for (const edge of edges) { + const chain = chains.get(edgeKey(edge)), from = chain[0], to = chain.at(-1); + const a = positions.get(edge.from), b = positions.get(edge.to); + const start = connectionPoint(nodes.get(edge.from), a, 'outgoing'); + const end = connectionPoint(nodes.get(edge.to), b, 'incoming'); + const points = [start]; + const recursive = from.rank === to.rank; + if (recursive) { + const offset = 32 + (loop++ % 5) * 9; + const right = a.x + W + offset, left = b.x - offset; + const corridor = b.y - 22; + points.push([right, from.y], [right, corridor], [left, corridor], [left, to.y], end); + } else if (external.has(edgeKey(edge))) { + // Dense graphs use outside lanes after the dummy-slot budget is exhausted. + const corridor = top - (loop++ % 12) * 12, right = a.x + W + 32, left = b.x - 32; + points.push([right, from.y], [right, corridor], [left, corridor], [left, to.y], end); + } else { + for (let i = 1; i < chain.length; i++) { + const prev = chain[i - 1], next = chain[i]; + const mid = trackPositions.get(JSON.stringify([prev.id, next.id])); + const target = i === chain.length - 1 ? end : [next.rank * X, next.y]; + points.push([mid, prev.y], [mid, next.y], target); + } + } + routes.set(edgeKey(edge), { points, recursive }); + } + const allPoints = [...positions.values()].flatMap(p => [[p.x - 16, p.y], [p.x + W + 16, p.y + H]]) + .concat([...routes.values()].flatMap(route => route.points)); + const bounds = allPoints.length ? allPoints.reduce((box, p) => ({ minX: Math.min(box.minX, p[0] - 30), maxX: Math.max(box.maxX, p[0] + 30), + minY: Math.min(box.minY, p[1] - 30), maxY: Math.max(box.maxY, p[1] + 30) }), { minX: Infinity, maxX: -Infinity, minY: Infinity, maxY: -Infinity }) : undefined; + return { positions, routes, roles, bounds }; + } + function routePath(points, rounded) { + // Remove duplicate/collinear waypoints before rounding the remaining orthogonal bends. + const clean = []; + for (const point of points) { + const last = clean.at(-1), prev = clean.at(-2); + if (last && point[0] === last[0] && point[1] === last[1]) continue; + if (prev && (prev[0] === last[0] && last[0] === point[0] || prev[1] === last[1] && last[1] === point[1])) clean.pop(); + clean.push(point); + } + if (!clean.length) return ''; + let path = `M ${clean[0].join(' ')}`; + for (let i = 1; i < clean.length; i++) { + const prev = clean[i - 1], point = clean[i], next = clean[i + 1]; + if (!rounded || !next) { path += ` L ${point.join(' ')}`; continue; } + const before = Math.hypot(point[0] - prev[0], point[1] - prev[1]), after = Math.hypot(next[0] - point[0], next[1] - point[1]); + const radius = Math.min(12, before / 2, after / 2); + const a = point.map((value, axis) => value + (prev[axis] - value) * radius / before); + const b = point.map((value, axis) => value + (next[axis] - value) * radius / after); + path += ` L ${a.join(' ')} Q ${point.join(' ')} ${b.join(' ')}`; + } + return path; + } + const api = { layoutGraph, routePath, edgeKey, connectionPoint, W, H }; + if (typeof module === 'object' && module.exports) module.exports = api; + else scope.HornetGraphLayout = api; +})(typeof globalThis === 'object' ? globalThis : this); diff --git a/Extension/assets/hornet.svg b/Extension/assets/hornet.svg new file mode 100644 index 000000000..7f775cfc6 --- /dev/null +++ b/Extension/assets/hornet.svg @@ -0,0 +1 @@ + diff --git a/Extension/build.hornet.js b/Extension/build.hornet.js new file mode 100644 index 000000000..6405c036c --- /dev/null +++ b/Extension/build.hornet.js @@ -0,0 +1,15 @@ +const esbuild = require('esbuild'); +esbuild.build({ + entryPoints: ['src/hornet/extension.ts'], + outfile: 'dist/hornet.js', + bundle: true, + platform: 'node', + format: 'cjs', + target: 'node18', + external: ['vscode'], + sourcemap: true, + metafile: true +}).then(result => { + require('fs').writeFileSync('dist/hornet.meta.json', JSON.stringify(result.metafile, null, 2)); + require('./notices.hornet')(result.metafile); +}).catch(() => process.exit(1)); diff --git a/Extension/debug.log b/Extension/debug.log new file mode 100644 index 000000000..001d8fc0a --- /dev/null +++ b/Extension/debug.log @@ -0,0 +1 @@ +[0909/081216.010:ERROR:third_party\crashpad\crashpad\util\win\registration_protocol_win.cc:108] CreateFile: 拒绝访问。 (0x5) diff --git a/Extension/development.hornet.js b/Extension/development.hornet.js new file mode 100644 index 000000000..83099da86 --- /dev/null +++ b/Extension/development.hornet.js @@ -0,0 +1,17 @@ +const fs = require('fs'); +const path = require('path'); +const outputs = ['dist', 'out/hornet']; +const command = process.argv[2]; +if (command === 'scripts') { + for (const [name, script] of Object.entries(require('./package.json').scripts)) console.log(`${name}: ${script}`); +} else if (command === 'show' || command === 'clean') { + for (const output of outputs) { + const target = path.resolve(__dirname, output); + const relative = path.relative(__dirname, target); + if (relative.startsWith('..') || path.isAbsolute(relative)) throw new Error('Build output escapes Extension'); + console.log(target); + if (command === 'clean') fs.rmSync(target, { recursive: true, force: true }); + } +} else { + throw new Error('Expected scripts, show or clean'); +} diff --git a/Extension/yarn.lock b/Extension/legacy.yarn.lock similarity index 100% rename from Extension/yarn.lock rename to Extension/legacy.yarn.lock diff --git a/Extension/notices.hornet.js b/Extension/notices.hornet.js new file mode 100644 index 000000000..a02f20905 --- /dev/null +++ b/Extension/notices.hornet.js @@ -0,0 +1,26 @@ +const fs = require('fs'); +const path = require('path'); + +// Derive notices from the actual bundle rather than the historical dependency list. +module.exports = function writeNotices(metafile) { + const packages = new Set(); + for (const input of Object.keys(metafile.inputs)) { + if (!input.startsWith('node_modules/')) continue; + let directory = path.dirname(input); + while (!fs.existsSync(path.join(directory, 'package.json'))) { + const parent = path.dirname(directory); + if (parent === directory) throw new Error(`Cannot identify dependency: ${input}`); + directory = parent; + } + packages.add(directory); + } + let result = 'Hornet C/C++ third-party notices\n\nNo native binaries are included. clangd is installed separately.\n'; + for (const directory of [...packages].sort()) { + const metadata = JSON.parse(fs.readFileSync(path.join(directory, 'package.json'), 'utf8')); + const license = fs.readdirSync(directory).find(name => /^licen[cs]e(\.(txt|md))?$/i.test(name)); + if (!license) throw new Error(`Missing license for ${metadata.name}`); + result += `\n${'='.repeat(72)}\n${metadata.name} ${metadata.version} (${metadata.license})\n\n`; + result += fs.readFileSync(path.join(directory, license), 'utf8') + '\n'; + } + fs.writeFileSync('ThirdPartyNotices.txt', result.trimEnd() + '\n'); +}; diff --git a/Extension/package-lock.json b/Extension/package-lock.json new file mode 100644 index 000000000..262ff2c07 --- /dev/null +++ b/Extension/package-lock.json @@ -0,0 +1,6004 @@ +{ + "name": "hornet-cpp", + "version": "0.1.9", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "hornet-cpp", + "version": "0.1.9", + "license": "MIT", + "dependencies": { + "https-proxy-agent": "7.0.6", + "vscode-jsonrpc": "8.2.0", + "vscode-languageclient": "9.0.1", + "vscode-languageserver-protocol": "3.17.5", + "yauzl": "3.4.0" + }, + "devDependencies": { + "@types/node": "20.17.30", + "@types/vscode": "1.85.0", + "@types/yauzl": "3.4.0", + "@vscode/vsce": "3.3.2", + "esbuild": "0.25.2", + "ovsx": "1.1.1", + "typescript": "5.8.3" + }, + "engines": { + "vscode": "^1.85.0" + } + }, + "node_modules/@azu/format-text": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@azu/format-text/-/format-text-1.0.2.tgz", + "integrity": "sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@azu/style-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@azu/style-format/-/style-format-1.0.1.tgz", + "integrity": "sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "@azu/format-text": "^1.0.1" + } + }, + "node_modules/@azure/abort-controller": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.2.0.tgz", + "integrity": "sha512-fNAjWnA/nZ2jz31kxR/AqRaUT8ewHBw/WuBIosK0moMy1C9e5ValbDfFdIxJzVOOYaYkV/b2F1S4H/aHiqfVQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.11.0.tgz", + "integrity": "sha512-IUZydyTUkDnYdstOW9pFOOUQlBjAepK5teihDE3x6yxsPJs/hsAaaYpeGxdxrgtOiJbBKSjKW7MDk7AEhb4LRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-util": "^1.13.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.11.1.tgz", + "integrity": "sha512-2QygG2F76ZpMP2eMztiJvAiFMu71M9rDeU7vO/QKg5Css7MgM4frUOslFjhVjRhbGaCNPtz/S8M6y46/fFKVuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-rest-pipeline": "^1.22.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-process": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@azure/core-process/-/core-process-1.0.0.tgz", + "integrity": "sha512-/shnJ+ooO8WPxDhPEeI/2oRQuubn16gZ6CvlbpWbEswZfzwI9tI/sMAHmF3x1LuQ9yZYXfLW3TjzGMLEC5blKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.25.0.tgz", + "integrity": "sha512-bMs8ekJLjX8wPV+9IPBges1SLPyuDtE9g5gLDWOpxzKcoOFQnpLGkbcT1tdw3FaAmDS1gnPmMmJ6y/T5B96kIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "@typespec/ts-http-runtime": "^0.3.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-tracing": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.4.0.tgz", + "integrity": "sha512-eGwxD0AtncrxeBM4tG8R55Pc3rdX1hNW2WibJAgYpCVA6E93mvvVH+LcssoVjOBrSKWS55yEIHsk0X8ctHmfOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.14.0.tgz", + "integrity": "sha512-9n2pWK61veAuN0V20t9lOuoV4CFMdyAZ1ygZzvBGk/pBBJRib/PjL9PLXa/aI2CcPpyHfqVsxxqLCYl6uZlfDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/identity": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.13.2.tgz", + "integrity": "sha512-NXL2/pCJctLxgw8bvrwwgge743kEq8LBT+O1pmV0vyUwetzFPH9auP6jhkU/cgZCPPtWoewAe3ncaGCgPo07fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.9.0", + "@azure/core-client": "^1.9.2", + "@azure/core-process": "^1.0.0", + "@azure/core-rest-pipeline": "^1.17.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.11.0", + "@azure/logger": "^1.0.0", + "@azure/msal-browser": "^5.5.0", + "@azure/msal-node": "^5.1.5", + "open": "^10.1.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/logger": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.4.0.tgz", + "integrity": "sha512-rbAE25KUfjU/s3XHUdJgceoCP5dEOpMx85J04kF+QMdta73XkuG9JGHHinch+XIoKpBdqljin+KqURpJriSzLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/msal-browser": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-5.21.0.tgz", + "integrity": "sha512-80OcuXDErmcEDAIH9pBtSqBsed2sPT/IWmbG3xHLoPMl5zc8TINd6SlJAbVSmN5huGa3xGAg5qR7VnpaIEK0Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/msal-common": "16.14.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-common": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-16.14.0.tgz", + "integrity": "sha512-A4rb55hI86Q9tBl/+jBj7TMz7iX2RFgQs/nExFzcAtoI/BFRVdaH5SL/MivrYD7qvweMpN8AgVvVMHV8UBYxew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-node": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-5.6.0.tgz", + "integrity": "sha512-uFY9NxrWHw8PwZx7gAX6PDn+9vdfS05+levc/kwkx77IkjfaldnQbbcQzzDIZ5Hq5Zdr6/z92oAIoRWKp6MnOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/msal-common": "16.13.0", + "jsonwebtoken": "^9.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@azure/msal-node/node_modules/@azure/msal-common": { + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-16.13.0.tgz", + "integrity": "sha512-rOAy0KUcyBbdwVJ+f3uPpthXatFLLZN+/KWAsTLzk1aB23Xl9DRmmXYwSvBFOZyXj4jUQQ5FKxxRkhAFW1fOow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz", + "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz", + "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz", + "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz", + "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz", + "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz", + "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz", + "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz", + "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz", + "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz", + "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz", + "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz", + "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz", + "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz", + "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz", + "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz", + "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz", + "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz", + "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz", + "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz", + "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz", + "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz", + "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz", + "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz", + "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz", + "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/ansi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", + "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core": { + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core/node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@inquirer/editor": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", + "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/external-editor": "^1.0.3", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/expand": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", + "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", + "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/number": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", + "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/password": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", + "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/prompts": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz", + "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^4.3.2", + "@inquirer/confirm": "^5.1.21", + "@inquirer/editor": "^4.2.23", + "@inquirer/expand": "^4.0.23", + "@inquirer/input": "^4.3.1", + "@inquirer/number": "^3.0.23", + "@inquirer/password": "^4.0.23", + "@inquirer/rawlist": "^4.1.11", + "@inquirer/search": "^3.2.2", + "@inquirer/select": "^4.4.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/rawlist": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", + "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/search": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", + "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/select": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", + "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@isaacs/cliui": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", + "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@napi-rs/keyring": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring/-/keyring-1.3.0.tgz", + "integrity": "sha512-WrOw/bcXm0f9qHkumlT1QlArXSTWqaY9sunsDpOk+yCCorCKMxvWT/a3xko4EYHVdeZoh00yI2TydXn6eyICDA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/keyring-darwin-arm64": "1.3.0", + "@napi-rs/keyring-darwin-x64": "1.3.0", + "@napi-rs/keyring-freebsd-x64": "1.3.0", + "@napi-rs/keyring-linux-arm-gnueabihf": "1.3.0", + "@napi-rs/keyring-linux-arm64-gnu": "1.3.0", + "@napi-rs/keyring-linux-arm64-musl": "1.3.0", + "@napi-rs/keyring-linux-riscv64-gnu": "1.3.0", + "@napi-rs/keyring-linux-x64-gnu": "1.3.0", + "@napi-rs/keyring-linux-x64-musl": "1.3.0", + "@napi-rs/keyring-win32-arm64-msvc": "1.3.0", + "@napi-rs/keyring-win32-ia32-msvc": "1.3.0", + "@napi-rs/keyring-win32-x64-msvc": "1.3.0" + } + }, + "node_modules/@napi-rs/keyring-darwin-arm64": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring-darwin-arm64/-/keyring-darwin-arm64-1.3.0.tgz", + "integrity": "sha512-pl76hJvdYUBn6I24bXiOBMA9nbDapo3I5B+f3OorjDU4dUMSypXeKbOVehJe8fhgTiH24flMyTS3aAIy43xegQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/keyring-darwin-x64": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring-darwin-x64/-/keyring-darwin-x64-1.3.0.tgz", + "integrity": "sha512-YcJtEV5LA3cvA4z3BurgxH5IhTsW1JfIvcAAcqcecwk06Si9F9NqkxbZVIfDwQ8oRHgaBmT3zZJnLAotCrVahw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/keyring-freebsd-x64": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring-freebsd-x64/-/keyring-freebsd-x64-1.3.0.tgz", + "integrity": "sha512-vlLf31TGhfRAaxLDBhg8b89ss0HHD/lyNmL5F3UjSaz5CUXElsJmKYq9fqA/B+cZKUEUcLHHGhF0I/CqcFdaVw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/keyring-linux-arm-gnueabihf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-arm-gnueabihf/-/keyring-linux-arm-gnueabihf-1.3.0.tgz", + "integrity": "sha512-KiWdMMu/Inz/bHHIAGrnF7r54FZDYXuHO6UFF/rhIrshUsxbMG1Rl9lEymNtqqsVo927G0VYcb02FzWQ3iBQRQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/keyring-linux-arm64-gnu": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-arm64-gnu/-/keyring-linux-arm64-gnu-1.3.0.tgz", + "integrity": "sha512-eyKGpY40lm9Jvs1aD294XRH4y7+TlJM0YVAryZeXA6TX0mb4gMkxVXwSQv7MCwgah7raeUd0dKUb4BPAYIgcMg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/keyring-linux-arm64-musl": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-arm64-musl/-/keyring-linux-arm64-musl-1.3.0.tgz", + "integrity": "sha512-iIK6JWHXAJqDrEyLY3TmswwloVyt2vj+04TZnew+uSJ9gnDO8EwRbp3/iw3LpWaXiDO7VomGO6y8I0Id8uBZSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/keyring-linux-riscv64-gnu": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-riscv64-gnu/-/keyring-linux-riscv64-gnu-1.3.0.tgz", + "integrity": "sha512-/PGqrwn6EwgtK6vccASSXJRfOSP4vN1F4ASsIQ+7MdrK6hNvAJ1FZPrIuD5gGGdxezo3F++To2Wq7DbuGIeuNQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/keyring-linux-x64-gnu": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-x64-gnu/-/keyring-linux-x64-gnu-1.3.0.tgz", + "integrity": "sha512-2PDK1WKWTu9lBGq9VvNEkSlQD3O7YwVpmnyN2M3cy4v7NJ/8gDMd9GXv3G+FVXN13uhp4gnnPBS+ScefmEeD2A==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/keyring-linux-x64-musl": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-x64-musl/-/keyring-linux-x64-musl-1.3.0.tgz", + "integrity": "sha512-oJ2HkX8YUo46QBkn0pG+HuIKQNqr523q6vBobCn+P95s4C4K6/kLBqHY/1bg5J4ap31DzsznhnFKcfBNBsjCnw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/keyring-win32-arm64-msvc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring-win32-arm64-msvc/-/keyring-win32-arm64-msvc-1.3.0.tgz", + "integrity": "sha512-tOd3c/uAaeoE4ycVlmAdSvygz0Zt3zdca6Y7gokBeIbaRDWpjDIUOpU3MvML59XAaqyuKGsVVu0F/DZb1lHPmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/keyring-win32-ia32-msvc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring-win32-ia32-msvc/-/keyring-win32-ia32-msvc-1.3.0.tgz", + "integrity": "sha512-sPSqeAFZMGqP1R++M2JTza7GQJJ/TpCo6JU6Vcd4jnebvOaEDs9b7eipakU1PJdSvhpC2yXMCNRk9gXfrhuwHQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/keyring-win32-x64-msvc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@napi-rs/keyring-win32-x64-msvc/-/keyring-win32-x64-msvc-1.3.0.tgz", + "integrity": "sha512-4DnCWXwDc0HRKwyRlG5y0VhKZW2tNRQfKKfyj6IX/KWfDNyq9hn4n+GL1auyDcOO/v8PwnhmYo2+rOOqCkvvOg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32/-/crc32-1.10.7.tgz", + "integrity": "sha512-OwuyRAe9Lj0GoFVBFzTS6bTAV4i+Xd68sYbNUmLnI1GVkQIqVb9mzNrpKSZkBFiQD73CdMB/uKYsvk2bxq/eZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@node-rs/crc32-android-arm-eabi": "1.10.7", + "@node-rs/crc32-android-arm64": "1.10.7", + "@node-rs/crc32-darwin-arm64": "1.10.7", + "@node-rs/crc32-darwin-x64": "1.10.7", + "@node-rs/crc32-freebsd-x64": "1.10.7", + "@node-rs/crc32-linux-arm-gnueabihf": "1.10.7", + "@node-rs/crc32-linux-arm64-gnu": "1.10.7", + "@node-rs/crc32-linux-arm64-musl": "1.10.7", + "@node-rs/crc32-linux-x64-gnu": "1.10.7", + "@node-rs/crc32-linux-x64-musl": "1.10.7", + "@node-rs/crc32-win32-arm64-msvc": "1.10.7", + "@node-rs/crc32-win32-ia32-msvc": "1.10.7", + "@node-rs/crc32-win32-x64-msvc": "1.10.7" + } + }, + "node_modules/@node-rs/crc32-android-arm-eabi": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-android-arm-eabi/-/crc32-android-arm-eabi-1.10.7.tgz", + "integrity": "sha512-mWNghDkwgoc5uJhhPx/LbgLoNAxnq6Sfz4pTxi4NWG7s5l+dPe7K+L4kXb0oOfwl3Yq3Ro7CNPGLrU4cmTXhaA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32-android-arm64": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-android-arm64/-/crc32-android-arm64-1.10.7.tgz", + "integrity": "sha512-lLUVm2H5HrSm/g2379JBRsSr5RCDqobP6I5sxZd+wSq6WBH2b6goilNYhxbss8gYQZLCJA09EvyFkZFFU9VuAQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32-darwin-arm64": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-darwin-arm64/-/crc32-darwin-arm64-1.10.7.tgz", + "integrity": "sha512-8slhmrRa3B3/z+MnLgST+lR5T0Oic60YTQ3S9OIHP259GiktlmdYyebhAvy0bBcyCuScLDcW0EB3sXxWw1TCbQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32-darwin-x64": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-darwin-x64/-/crc32-darwin-x64-1.10.7.tgz", + "integrity": "sha512-+RkQ2+jSWco0WqSPq7GWJlJwmJpIGA79OoToGTSAsqgypkls4i3PlexVTPrfepuHn3whpa4GrmjvLbRm5RXgCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32-freebsd-x64": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-freebsd-x64/-/crc32-freebsd-x64-1.10.7.tgz", + "integrity": "sha512-yqtsf23JCO1gYt3/Rkk5aoVn1rINk/J7//A9EKwGstNpBBlN3t0JKD3QpGzEnqc1vS72lEvIeO9sO3XiH+hJWw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32-linux-arm-gnueabihf": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-linux-arm-gnueabihf/-/crc32-linux-arm-gnueabihf-1.10.7.tgz", + "integrity": "sha512-AB/I1GO9LDIIHiur2bexqPy30740AmBjEhO8ij9k9desVO41dN5/ddTU2+xbf9TYt2XXvku1qYbtf5YHAAVFAw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32-linux-arm64-gnu": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-linux-arm64-gnu/-/crc32-linux-arm64-gnu-1.10.7.tgz", + "integrity": "sha512-0lPFuudkW+bpeXUZAqz6FSml6Z2JvF52UGSALvnDS8Qyg3wKBNWjcXy78Pw1wiIGao/AAFFr74I3OwCMzYujuQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32-linux-arm64-musl": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-linux-arm64-musl/-/crc32-linux-arm64-musl-1.10.7.tgz", + "integrity": "sha512-lx5m7iCmdXPGigG7AI5NiawWsiJ1HwR/w6PV8XN48HNsgzdjar0ISB8TSLtJpq+jFcj10Wcz3Rt43RA72652Vg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32-linux-x64-gnu": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-linux-x64-gnu/-/crc32-linux-x64-gnu-1.10.7.tgz", + "integrity": "sha512-If3ogA9D2XKKb8vHttu+jl3BTWT7UCTgmrXmUAwQABH45iK32AZ9OoMcrg2rWKKXgGpG6x3IslFBgzdOkObDnA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32-linux-x64-musl": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-linux-x64-musl/-/crc32-linux-x64-musl-1.10.7.tgz", + "integrity": "sha512-XxuxZYJhQBlo2rRnyOOummZSyBdC+jHpXWM9XSWs1LWfsgc36IauKY+XXRAJwKwefx8lwmMjqp6T/Zq9frU87w==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32-win32-arm64-msvc": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-win32-arm64-msvc/-/crc32-win32-arm64-msvc-1.10.7.tgz", + "integrity": "sha512-Rs8TGuvxgpkteSLhPqAb3DOqqRO1jiYghdMxozl+P3Ftep1hTWL8+gwYF5dtu1BtdOJpz23A+8GehSuwl96MrQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32-win32-ia32-msvc": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-win32-ia32-msvc/-/crc32-win32-ia32-msvc-1.10.7.tgz", + "integrity": "sha512-G/xNcmblMH6Z7KBX02XJPJj2UGo6eTgFa+r5ZU17O8V5P9iQLrKqs/T7Sz40otDxazD1maSXT/zA8Q7rBu2/3g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/crc32-win32-x64-msvc": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@node-rs/crc32-win32-x64-msvc/-/crc32-win32-x64-msvc-1.10.7.tgz", + "integrity": "sha512-1uXrMu17uz12WPdii84NXmoQsoPdmSQViyCMJPu0KQuwnhErQCA4PoGK+dih9jY0mrcLuzR1r5wXVaE049fJ6w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@secretlint/config-creator": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-creator/-/config-creator-10.2.2.tgz", + "integrity": "sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/types": "^10.2.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/config-loader": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-loader/-/config-loader-10.2.2.tgz", + "integrity": "sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/profiler": "^10.2.2", + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", + "ajv": "^8.17.1", + "debug": "^4.4.1", + "rc-config-loader": "^4.1.3" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/core": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/core/-/core-10.2.2.tgz", + "integrity": "sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/profiler": "^10.2.2", + "@secretlint/types": "^10.2.2", + "debug": "^4.4.1", + "structured-source": "^4.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/formatter": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/formatter/-/formatter-10.2.2.tgz", + "integrity": "sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", + "@textlint/linter-formatter": "^15.2.0", + "@textlint/module-interop": "^15.2.0", + "@textlint/types": "^15.2.0", + "chalk": "^5.4.1", + "debug": "^4.4.1", + "pluralize": "^8.0.0", + "strip-ansi": "^7.1.0", + "table": "^6.9.0", + "terminal-link": "^4.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/formatter/node_modules/ansi-regex": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", + "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@secretlint/formatter/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@secretlint/formatter/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@secretlint/node": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/node/-/node-10.2.2.tgz", + "integrity": "sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/config-loader": "^10.2.2", + "@secretlint/core": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/profiler": "^10.2.2", + "@secretlint/source-creator": "^10.2.2", + "@secretlint/types": "^10.2.2", + "debug": "^4.4.1", + "p-map": "^7.0.3" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/profiler": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/profiler/-/profiler-10.2.2.tgz", + "integrity": "sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig==", + "dev": true, + "license": "MIT" + }, + "node_modules/@secretlint/resolver": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/resolver/-/resolver-10.2.2.tgz", + "integrity": "sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@secretlint/secretlint-formatter-sarif": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-formatter-sarif/-/secretlint-formatter-sarif-10.2.2.tgz", + "integrity": "sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-sarif-builder": "^3.2.0" + } + }, + "node_modules/@secretlint/secretlint-rule-no-dotenv": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-no-dotenv/-/secretlint-rule-no-dotenv-10.2.2.tgz", + "integrity": "sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/types": "^10.2.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/secretlint-rule-preset-recommend": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-preset-recommend/-/secretlint-rule-preset-recommend-10.2.2.tgz", + "integrity": "sha512-K3jPqjva8bQndDKJqctnGfwuAxU2n9XNCPtbXVI5JvC7FnQiNg/yWlQPbMUlBXtBoBGFYp08A94m6fvtc9v+zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/source-creator": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/source-creator/-/source-creator-10.2.2.tgz", + "integrity": "sha512-h6I87xJfwfUTgQ7irWq7UTdq/Bm1RuQ/fYhA3dtTIAop5BwSFmZyrchph4WcoEvbN460BWKmk4RYSvPElIIvxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/types": "^10.2.2", + "istextorbinary": "^9.5.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/types": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/types/-/types-10.2.2.tgz", + "integrity": "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@textlint/ast-node-types": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-15.8.0.tgz", + "integrity": "sha512-5CiH9COYmovWmExQgs7763DzX6Gy9zjkjJ7JxCC95wyTcjwQn/8poNF6fv3qzRlmx8CRRde8DHr9FcgAAiPzgw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/linter-formatter": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-15.8.0.tgz", + "integrity": "sha512-+oU3A235NATv6Lzi4xa4kJ65PuNJlIxesaO4AvDhDWA9FWm7y4XKWaoQCW1esgaQQ6dwnUiFKArQ8TcJ86mC4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azu/format-text": "^1.0.2", + "@azu/style-format": "^1.0.1", + "@textlint/module-interop": "15.8.0", + "@textlint/resolver": "15.8.0", + "@textlint/types": "15.8.0", + "debug": "^4.4.3", + "js-yaml": "^4.3.0", + "lodash": "^4.18.1", + "pluralize": "^2.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "table": "^6.9.0", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=20.18.0" + } + }, + "node_modules/@textlint/linter-formatter/node_modules/pluralize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-2.0.0.tgz", + "integrity": "sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/module-interop": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-15.8.0.tgz", + "integrity": "sha512-rt+OR1WYGoLOY8HkA/aBPrqufF6yUUEsKEAh7XohTsT3lp9IyZFT6zOIbjul9P4FAzsmSPkcrYjVx3Bz/IUfkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/resolver": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-15.8.0.tgz", + "integrity": "sha512-E88tzfX3K8Jykk+38aJ9cy8RquD8ABVOPTO2rFEESq0wcg8x6/ypdAS8ZgR7OKiGqlRF0hkO/m5PbQwVfKM3VA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/types": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-15.8.0.tgz", + "integrity": "sha512-Anhc6y5736YIsvqae0U6k0YmB2M/QVHkEeOv2aydAn/WIkdI69dCOiDbe3/+RagS3qstFTSFWJzNRA2lUjv19w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "15.8.0" + } + }, + "node_modules/@types/node": { + "version": "20.17.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.30.tgz", + "integrity": "sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sarif": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@types/sarif/-/sarif-2.1.7.tgz", + "integrity": "sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/vscode": { + "version": "1.85.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.85.0.tgz", + "integrity": "sha512-CF/RBon/GXwdfmnjZj0WTUMZN5H6YITOfBCP4iEZlOtVQXuzw6t7Le7+cR+7JzdMrnlm7Mfp49Oj2TuSXIWo3g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-3.4.0.tgz", + "integrity": "sha512-NRPn5w6h8dhcnmx3YIRQcqMywY/+nND/uOkJessedcrowO3C0AssHp3tMJpxKAwOhFOo0OV1y9VtsC5hbKKBAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typespec/ts-http-runtime": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.9.tgz", + "integrity": "sha512-edSdeAqkdxBVzA1yL1LrLCml1YjyCVvPMtMqJpbF+6K609tHe8V6sQUzFQSGcYNhcuhOceZtjvN32+mpIth30A==", + "dev": true, + "license": "MIT", + "dependencies": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@vscode/vsce": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.3.2.tgz", + "integrity": "sha512-XQ4IhctYalSTMwLnMS8+nUaGbU7v99Qm2sOoGfIEf2QC7jpiLXZZMh7NwArEFsKX4gHTJLx0/GqAUlCdC3gKCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/identity": "^4.1.0", + "@vscode/vsce-sign": "^2.0.0", + "azure-devops-node-api": "^12.5.0", + "chalk": "^2.4.2", + "cheerio": "^1.0.0-rc.9", + "cockatiel": "^3.1.2", + "commander": "^12.1.0", + "form-data": "^4.0.0", + "glob": "^11.0.0", + "hosted-git-info": "^4.0.2", + "jsonc-parser": "^3.2.0", + "leven": "^3.1.0", + "markdown-it": "^14.1.0", + "mime": "^1.3.4", + "minimatch": "^3.0.3", + "parse-semver": "^1.1.1", + "read": "^1.0.7", + "semver": "^7.5.2", + "tmp": "^0.2.3", + "typed-rest-client": "^1.8.4", + "url-join": "^4.0.1", + "xml2js": "^0.5.0", + "yauzl": "^2.3.1", + "yazl": "^2.2.2" + }, + "bin": { + "vsce": "vsce" + }, + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "keytar": "^7.7.0" + } + }, + "node_modules/@vscode/vsce-sign": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.1.0.tgz", + "integrity": "sha512-9AQrqazrBgTgRSuwleLVXUrIUphY02/SFCh2TKYoLV/xifJAdblhdmEmw5gUrYSPQ3sRwNs9iyCMD14sATEE6g==", + "dev": true, + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optionalDependencies": { + "@vscode/vsce-sign-alpine-arm64": "2.0.6", + "@vscode/vsce-sign-alpine-x64": "2.0.6", + "@vscode/vsce-sign-darwin-arm64": "2.0.6", + "@vscode/vsce-sign-darwin-x64": "2.0.6", + "@vscode/vsce-sign-linux-arm": "2.0.6", + "@vscode/vsce-sign-linux-arm64": "2.0.6", + "@vscode/vsce-sign-linux-x64": "2.0.6", + "@vscode/vsce-sign-win32-arm64": "2.0.6", + "@vscode/vsce-sign-win32-x64": "2.0.6" + } + }, + "node_modules/@vscode/vsce-sign-alpine-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.6.tgz", + "integrity": "sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "alpine" + ] + }, + "node_modules/@vscode/vsce-sign-alpine-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.6.tgz", + "integrity": "sha512-YoAGlmdK39vKi9jA18i4ufBbd95OqGJxRvF3n6ZbCyziwy3O+JgOpIUPxv5tjeO6gQfx29qBivQ8ZZTUF2Ba0w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "alpine" + ] + }, + "node_modules/@vscode/vsce-sign-darwin-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.6.tgz", + "integrity": "sha512-5HMHaJRIQuozm/XQIiJiA0W9uhdblwwl2ZNDSSAeXGO9YhB9MH5C4KIHOmvyjUnKy4UCuiP43VKpIxW1VWP4tQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/vsce-sign-darwin-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.6.tgz", + "integrity": "sha512-25GsUbTAiNfHSuRItoQafXOIpxlYj+IXb4/qarrXu7kmbH94jlm5sdWSCKrrREs8+GsXF1b+l3OB7VJy5jsykw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/vsce-sign-linux-arm": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.6.tgz", + "integrity": "sha512-UndEc2Xlq4HsuMPnwu7420uqceXjs4yb5W8E2/UkaHBB9OWCwMd3/bRe/1eLe3D8kPpxzcaeTyXiK3RdzS/1CA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-linux-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.6.tgz", + "integrity": "sha512-cfb1qK7lygtMa4NUl2582nP7aliLYuDEVpAbXJMkDq1qE+olIw/es+C8j1LJwvcRq1I2yWGtSn3EkDp9Dq5FdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-linux-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.6.tgz", + "integrity": "sha512-/olerl1A4sOqdP+hjvJ1sbQjKN07Y3DVnxO4gnbn/ahtQvFrdhUi0G1VsZXDNjfqmXw57DmPi5ASnj/8PGZhAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-win32-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.6.tgz", + "integrity": "sha512-ivM/MiGIY0PJNZBoGtlRBM/xDpwbdlCWomUWuLmIxbi1Cxe/1nooYrEQoaHD8ojVRgzdQEUzMsRbyF5cJJgYOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vscode/vsce-sign-win32-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.6.tgz", + "integrity": "sha512-mgth9Kvze+u8CruYMmhHw6Zgy3GRX2S+Ed5oSokDEK5vPEwGGKnmuXua9tmFhomeAnhgJnL4DCna3TiNuGrBTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vscode/vsce/node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", + "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/azure-devops-node-api": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.5.0.tgz", + "integrity": "sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==", + "dev": true, + "license": "MIT", + "dependencies": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, + "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/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/binaryextensions": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-6.11.0.tgz", + "integrity": "sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "editions": "^6.21.0" + }, + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/boundary": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz", + "integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.2.0.tgz", + "integrity": "sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==", + "dev": true, + "license": "MIT" + }, + "node_modules/cheerio": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", + "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "encoding-sniffer": "^0.2.1", + "htmlparser2": "^10.1.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^7.19.0", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=20.18.1" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, + "node_modules/cockatiel": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/cockatiel/-/cockatiel-3.2.1.tgz", + "integrity": "sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-keychain": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cross-keychain/-/cross-keychain-1.1.0.tgz", + "integrity": "sha512-244DWNdGepLKD5vEn3reZqwzZFiE/LD4U+XV9IaXQbtIXKvQkf0VkRaOj/9vPYauPdR12PSGB3U0cE7jJi3WTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/prompts": "^7.8.6", + "meow": "^14.0.0" + }, + "bin": { + "cross-keychain": "dist/cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@napi-rs/keyring": "^1.2.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/default-browser": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.1.tgz", + "integrity": "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/editions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/editions/-/editions-6.22.0.tgz", + "integrity": "sha512-UgGlf8IW75je7HZjNDpJdCv4cGJWIi6yumFdZ0R7A8/CIhQiWUjyGLCxdHpd8bmyD1gnkfUNK0oeOXqUS2cpfQ==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "version-range": "^4.15.0" + }, + "engines": { + "ecmascript": ">= es5", + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/encoding-sniffer": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz", + "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.2", + "@esbuild/android-arm": "0.25.2", + "@esbuild/android-arm64": "0.25.2", + "@esbuild/android-x64": "0.25.2", + "@esbuild/darwin-arm64": "0.25.2", + "@esbuild/darwin-x64": "0.25.2", + "@esbuild/freebsd-arm64": "0.25.2", + "@esbuild/freebsd-x64": "0.25.2", + "@esbuild/linux-arm": "0.25.2", + "@esbuild/linux-arm64": "0.25.2", + "@esbuild/linux-ia32": "0.25.2", + "@esbuild/linux-loong64": "0.25.2", + "@esbuild/linux-mips64el": "0.25.2", + "@esbuild/linux-ppc64": "0.25.2", + "@esbuild/linux-riscv64": "0.25.2", + "@esbuild/linux-s390x": "0.25.2", + "@esbuild/linux-x64": "0.25.2", + "@esbuild/netbsd-arm64": "0.25.2", + "@esbuild/netbsd-x64": "0.25.2", + "@esbuild/openbsd-arm64": "0.25.2", + "@esbuild/openbsd-x64": "0.25.2", + "@esbuild/sunos-x64": "0.25.2", + "@esbuild/win32-arm64": "0.25.2", + "@esbuild/win32-ia32": "0.25.2", + "@esbuild/win32-x64": "0.25.2" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "license": "(MIT OR WTFPL)", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-uri": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.7.tgz", + "integrity": "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz", + "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/fs-extra": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.4.0.tgz", + "integrity": "sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "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==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/glob": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", + "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", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/ignore": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.9.tgz", + "integrity": "sha512-brTTsvFRt5C1gGHtPst/281UjPD5t9fBqbgoMPlVWy11ZLTPfu7HxK4ZYqO9H7o/yC9rSTCI85EaQ4OoY12qYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/index-to-position": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.2.0.tgz", + "integrity": "sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-it-type": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/is-it-type/-/is-it-type-5.1.3.tgz", + "integrity": "sha512-AX2uU0HW+TxagTgQXOJY7+2fbFHemC7YFBwN1XqD8qQMKdtfbOC8OC3fUb4s5NU59a3662Dzwto8tWDdZYRXxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "globalthis": "^1.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istextorbinary": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-9.5.0.tgz", + "integrity": "sha512-5mbUj3SiZXCuRf9fT3ibzbSSEWiy63gFfksmGfdOzujPjW3k+z8WvIBxcJHBoQNlaZaiyB25deviif2+osLmLw==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "binaryextensions": "^6.11.0", + "editions": "^6.21.0", + "textextensions": "^6.11.0" + }, + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/jackspeak": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", + "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^9.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keytar": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", + "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-addon-api": "^4.3.0", + "prebuild-install": "^7.0.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/linkify-it": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.2.tgz", + "integrity": "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/markdown-it": { + "version": "14.3.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.1.tgz", + "integrity": "sha512-4Ej49aYTDFIQ+uBkfX8GBvJGccoARxxPep+7aWTs55ozbjQJpW9M26Fe53vnGgvLeVzva/amzjQQaQu9w0vMhA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.5.0", + "linkify-it": "^5.0.2", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdurl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.1.0.tgz", + "integrity": "sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/meow": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-14.1.0.tgz", + "integrity": "sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "optional": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "license": "ISC" + }, + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-abi": { + "version": "3.96.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.96.0.tgz", + "integrity": "sha512-rebQ/lz7i0EkoLzUVSrKRzA69zMkwLp95kKMWoMDkkM00Suxz0D7zEQPwRml5fQum24mj7bPvmlgLAmu2JCiYg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-sarif-builder": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/node-sarif-builder/-/node-sarif-builder-3.4.0.tgz", + "integrity": "sha512-tGnJW6OKRii9u/b2WiUViTJS+h7Apxx17qsMUjsUeNDiMMX5ZFf8F8Fcz7PAQ6omvOxHZtvDTmOYKJQwmfpjeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/sarif": "^2.1.7", + "fs-extra": "^11.1.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ovsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ovsx/-/ovsx-1.1.1.tgz", + "integrity": "sha512-tklsCzvGVWKlM91Vc9U8tNnaQ+XacPJ12SWHjDaHGUJB49oMhoAULsJGeefhHebPvvckbcWbKqKIXODMZah5SA==", + "dev": true, + "license": "EPL-2.0", + "dependencies": { + "@inquirer/prompts": "^7.10.1", + "@vscode/vsce": "^3.7.1", + "commander": "^6.2.1", + "cross-keychain": "^1.1.0", + "follow-redirects": "^1.16.0", + "is-ci": "^2.0.0", + "leven": "^3.1.0", + "semver": "^7.6.0", + "tmp": "^0.2.3", + "yauzl-promise": "^4.0.0" + }, + "bin": { + "ovsx": "bin/ovsx" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/ovsx/node_modules/@vscode/vsce": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.9.2.tgz", + "integrity": "sha512-XSxMosEEDO6vLxELAHVkwmhC0qe0ijZni2jB9Rcs8kQsW4lhTDQ/wMzmwFs/buotAWSnpmUp/dRWD2ufG3UYKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/identity": "^4.1.0", + "@secretlint/node": "^10.1.2", + "@secretlint/secretlint-formatter-sarif": "^10.1.2", + "@secretlint/secretlint-rule-no-dotenv": "^10.1.2", + "@secretlint/secretlint-rule-preset-recommend": "^10.1.2", + "@vscode/vsce-sign": "^2.0.0", + "azure-devops-node-api": "^12.5.0", + "chalk": "^4.1.2", + "cheerio": "^1.0.0-rc.9", + "cockatiel": "^3.1.2", + "commander": "^12.1.0", + "form-data": "^4.0.0", + "glob": "^13.0.6", + "hosted-git-info": "^4.0.2", + "jsonc-parser": "^3.2.0", + "leven": "^3.1.0", + "markdown-it": "^14.1.0", + "mime": "^1.3.4", + "minimatch": "^10.2.2", + "parse-semver": "^1.1.1", + "read": "^1.0.7", + "secretlint": "^10.1.2", + "semver": "^7.5.2", + "tmp": "^0.2.3", + "typed-rest-client": "^1.8.4", + "url-join": "^4.0.1", + "xml2js": "^0.5.0", + "yauzl": "^3.2.1", + "yazl": "^2.2.2" + }, + "bin": { + "vsce": "vsce" + }, + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "keytar": "^7.7.0" + } + }, + "node_modules/ovsx/node_modules/@vscode/vsce/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/ovsx/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ovsx/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/ovsx/node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/ovsx/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ovsx/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ovsx/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ovsx/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/ovsx/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ovsx/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ovsx/node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ovsx/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.7.tgz", + "integrity": "sha512-VaWRu2i4FJNRtiRWCuuQRgfQ1B7a6+gMSrO+3j0EQi/k0ULfS9kosRxGoiqwzIjZTDI02tGfk5mXXltLg6QtfQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parse-json": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-semver": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", + "integrity": "sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^5.1.0" + } + }, + "node_modules/parse-semver/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.0.tgz", + "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc-config-loader": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.4.tgz", + "integrity": "sha512-3GiwEzklkbXTDp52UR5nT8iXgYAx1V9ZG/kDZT7p60u2GCv2XTwQq4NzinMoMpNtXhmt3WkhYXcj6HH8HdwCEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "js-yaml": "^4.1.1", + "json5": "^2.2.3", + "require-from-string": "^2.0.2" + } + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/secretlint": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/secretlint/-/secretlint-10.2.2.tgz", + "integrity": "sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/config-creator": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/node": "^10.2.2", + "@secretlint/profiler": "^10.2.2", + "debug": "^4.4.1", + "globby": "^14.1.0", + "read-pkg": "^9.0.1" + }, + "bin": { + "secretlint": "bin/secretlint.js" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-invariant": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/simple-invariant/-/simple-invariant-2.0.1.tgz", + "integrity": "sha512-1sbhsxqI+I2tqlmjbz99GXNmZtr6tKIyEgGGnJw/MKGblalqk/XoOYYFJlBzTKZCxx8kLaD3FD5s9BEEjx5Pyg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/structured-source": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz", + "integrity": "sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boundary": "^2.0.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/table": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/tar-fs": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.5.tgz", + "integrity": "sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terminal-link": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-4.0.0.tgz", + "integrity": "sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "supports-hyperlinks": "^3.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/textextensions": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-6.11.0.tgz", + "integrity": "sha512-tXJwSr9355kFJI3lbCkPpUH5cP8/M0GGy2xLO34aZCjMXBaK3SoPnZwr/oWmo1FdCnELcs4npdCIOFtq9W3ruQ==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "editions": "^6.21.0" + }, + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/tmp": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-rest-client": { + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", + "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/underscore": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.8.tgz", + "integrity": "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.1.tgz", + "integrity": "sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/version-range": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/version-range/-/version-range-4.15.0.tgz", + "integrity": "sha512-Ck0EJbAGxHwprkzFO966t4/5QkRuzh+/I1RxhLgUKKwEn+Cd8NwM60mE3AqBZg5gYODoXW0EFsQvbZjRlvdqbg==", + "dev": true, + "license": "Artistic-2.0", + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageclient": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz", + "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==", + "license": "MIT", + "dependencies": { + "minimatch": "^5.1.0", + "semver": "^7.3.7", + "vscode-languageserver-protocol": "3.17.5" + }, + "engines": { + "vscode": "^1.82.0" + } + }, + "node_modules/vscode-languageclient/node_modules/brace-expansion": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/vscode-languageclient/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "license": "MIT" + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.4.0.tgz", + "integrity": "sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yauzl-promise/-/yauzl-promise-4.0.0.tgz", + "integrity": "sha512-/HCXpyHXJQQHvFq9noqrjfa/WpQC2XYs3vI7tBiAi4QiIU1knvYhZGaO1QPjwIVMdqflxbmwgMXtYeaRiAE0CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@node-rs/crc32": "^1.7.0", + "is-it-type": "^5.1.2", + "simple-invariant": "^2.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/Extension/package.json b/Extension/package.json index 64b578645..bd93befec 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -9,2299 +9,2002 @@ "author": { "name": "Microsoft Corporation" }, - "license": "SEE LICENSE IN LICENSE.txt", - "engines": { - "vscode": "^1.77.0" + "virtualWorkspaces": false + }, + "activationEvents": [ + "onLanguage:c", + "onLanguage:cpp", + "onLanguage:cuda-cpp", + "workspaceContains:compile_commands.json", + "workspaceContains:**/CMakeLists.txt", + "workspaceContains:**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}", + "onTaskType:hornet-cpp.build", + "onTaskType:cppbuild" + ], + "main": "./dist/hornet.js", + "scripts": { + "check": "tsc --noEmit -p tsconfig.hornet.json", + "compile": "npm run check && node build.hornet.js", + "watch": "tsc --watch -p tsconfig.hornet.json", + "test": "tsc -p tsconfig.hornet.json && node --test out/hornet/test/hornet/*.test.js", + "vscode:prepublish": "npm run compile", + "package": "vsce package --no-dependencies --no-yarn", + "bootstrap": "npm ci", + "build": "npm run compile", + "rebuild": "npm run clean && npm run compile", + "vsix-prepublish": "npm run compile", + "webpack": "npm run compile", + "clean": "node development.hornet.js clean", + "scripts": "node development.hornet.js scripts", + "show": "node development.hornet.js show", + "package:all": "node release.hornet.js package --all", + "package:pre-release": "node release.hornet.js package --pre-release", + "publish:marketplace": "node release.hornet.js marketplace", + "publish:openvsx": "node release.hornet.js openvsx", + "package:win32-x64": "node release.hornet.js package --target win32-x64", + "package:win32-arm64": "node release.hornet.js package --target win32-arm64", + "package:linux-x64": "node release.hornet.js package --target linux-x64", + "package:linux-arm64": "node release.hornet.js package --target linux-arm64", + "package:linux-armhf": "node release.hornet.js package --target linux-armhf", + "package:darwin-x64": "node release.hornet.js package --target darwin-x64", + "package:darwin-arm64": "node release.hornet.js package --target darwin-arm64", + "package:alpine-x64": "node release.hornet.js package --target alpine-x64", + "package:alpine-arm64": "node release.hornet.js package --target alpine-arm64" + }, + "dependencies": { + "https-proxy-agent": "7.0.6", + "vscode-jsonrpc": "8.2.0", + "vscode-languageclient": "9.0.1", + "vscode-languageserver-protocol": "3.17.5", + "yauzl": "3.4.0" + }, + "devDependencies": { + "@types/node": "20.17.30", + "@types/vscode": "1.85.0", + "@types/yauzl": "3.4.0", + "@vscode/vsce": "3.3.2", + "esbuild": "0.25.2", + "ovsx": "1.1.1", + "typescript": "5.8.3" + }, + "contributes": { + "commands": [ + { + "command": "hornet-cpp.switchMode", + "title": "Switch Parsing Mode", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.importCompilationDatabase", + "title": "Import Compilation Database", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.mergeCompilationDatabases", + "title": "Merge Compilation Databases", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.exportCompilationDatabase", + "title": "Export Compilation Database", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.generateCompilationDatabase", + "title": "Generate Compilation Database", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.showCompileCommand", + "title": "Show Compile Command", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.restartLanguageServices", + "title": "Restart Language Services", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.buildProjectIndex", + "title": "Hornet Build Index", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.syncProjectIndex", + "title": "Sync Project Index", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.syncFolderIndex", + "title": "Sync Folder Index", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.syncFileIndex", + "title": "Sync File Index", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.showCallGraph", + "title": "Hornet Show Graph", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.showTypeHierarchy", + "title": "Show Type Hierarchy", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.refreshHierarchy", + "title": "Refresh Hierarchy", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.setHierarchyRoot", + "title": "Set As Root", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.pinCallGraph", + "title": "Pin / Unpin Call Graph Root", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.copySymbol", + "title": "Copy Symbol", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.findNodeReferences", + "title": "Find References", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.symbolSearch", + "title": "Search Symbols", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.openLogs", + "title": "Open Logs", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.autoSetupClangd", + "title": "Automatically Set Up clangd", + "category": "Hornet C/C++" + }, + { + "command": "hornet-cpp.configureClangd", + "title": "Configure clangd", + "category": "Hornet C/C++" + } + ], + "configuration": { + "title": "Hornet C/C++", + "properties": { + "hornet-cpp.mode": { + "type": "string", + "default": "hybrid", + "description": "Parsing mode. Compiler and Hybrid are available; saved unavailable modes use Compiler for the current session.", + "scope": "resource", + "enum": [ + "compiler", + "hybrid" + ] + }, + "hornet-cpp.clangd.path": { + "type": "string", + "default": "clangd", + "description": "Absolute path or PATH name of clangd on the workspace host. The default searches PATH, LLVM and editor-managed installations, then downloads an official clangd release if missing. Manual selection is optional.", + "scope": "machine-overridable" + }, + "hornet-cpp.clangd.arguments": { + "type": "array", + "default": [], + "description": "Additional clangd arguments. Hornet manages compile database, config execution, threads and query-driver.", + "scope": "resource", + "items": { + "type": "string" + } + }, + "hornet-cpp.clangd.queryDriver": { + "type": "array", + "default": [], + "description": "Explicit allowlist of compiler paths clangd may execute. Empty disables driver probing.", + "scope": "machine", + "items": { + "type": "string" + } + }, + "hornet-cpp.clangd.ignoreDiagnostics": { + "type": "string", + "default": "not_indexed", + "description": "Diagnostic filtering. not_indexed requires an explicit compile command; Hybrid always filters uncovered files.", + "scope": "resource", + "enum": [ + "none", + "all", + "not_indexed" + ] + }, + "hornet-cpp.clangd.enableInlayHints": { + "type": "boolean", + "default": true, + "description": "Show clangd inlay hints.", + "scope": "resource" + }, + "hornet-cpp.syntaxColor.enable": { + "type": "boolean", + "default": true, + "description": "Enable clangd semantic highlighting.", + "scope": "resource" + }, + "hornet-cpp.cpuUsage": { + "type": "string", + "default": "Medium", + "description": "clangd worker thread budget: 100%, 75%, 50%, or 25% of host logical CPUs (at least one).", + "scope": "resource", + "enum": [ + "Maximum", + "High", + "Medium", + "Low" + ] + }, + "hornet-cpp.excludePaths": { + "type": "array", + "default": [ + "**/.mm/**", + "**/.git/**", + "**/build/**", + "**/output/**" + ], + "description": "Exclude patterns for manual folder synchronization. clangd controls its own background index.", + "scope": "resource", + "items": { + "type": "string" + } + } + } + }, + "viewsContainers": { + "panel": [ + { + "id": "hornet-cpp-graph", + "title": "Hornet Graph", + "icon": "LanguageCCPP_color.png", + "order": 100 + } + ], + "activitybar": [ + { + "id": "hornet-cpp", + "title": "Hornet C/C++", + "icon": "LanguageCCPP_color.png" + } + ] }, - "bugs": { - "url": "https://github.com/Microsoft/vscode-cpptools/issues", - "email": "c_cpp_support@microsoft.com" + "views": { + "hornet-cpp-graph": [ + { + "id": "hornet-cpp.graphView", + "name": "Hornet Graph", + "type": "webview" + } + ], + "hornet-cpp": [ + { + "id": "hornet-cpp.callGraph", + "name": "Call Graph" + }, + { + "id": "hornet-cpp.typeHierarchy", + "name": "Type Hierarchy" + } + ] }, - "repository": { - "type": "git", - "url": "git+https://github.com/Microsoft/vscode-cpptools.git" + "viewsWelcome": [ + { + "view": "hornet-cpp.callGraph", + "contents": "Place the cursor on a function.\n[Show Call Graph](command:hornet-cpp.showCallGraph)" + }, + { + "view": "hornet-cpp.typeHierarchy", + "contents": "Place the cursor on a class.\n[Show Type Hierarchy](command:hornet-cpp.showTypeHierarchy)" + } + ], + "menus": { + "editor/context": [ + { + "command": "hornet-cpp.showCompileCommand", + "when": "editorLangId == c || editorLangId == cpp || editorLangId == cuda-cpp", + "group": "hornet" + }, + { + "command": "hornet-cpp.showCallGraph", + "when": "editorLangId == c || editorLangId == cpp || editorLangId == cuda-cpp", + "group": "navigation@10" + }, + { + "command": "hornet-cpp.showTypeHierarchy", + "when": "editorLangId == c || editorLangId == cpp || editorLangId == cuda-cpp", + "group": "hornet" + }, + { + "command": "hornet-cpp.syncFileIndex", + "when": "editorLangId == c || editorLangId == cpp || editorLangId == cuda-cpp", + "group": "hornet" + } + ], + "explorer/context": [ + { + "command": "hornet-cpp.buildProjectIndex", + "when": "explorerResourceIsFolder", + "group": "hornet@1" + }, + { + "command": "hornet-cpp.syncFolderIndex", + "when": "explorerResourceIsFolder", + "group": "hornet" + }, + { + "command": "hornet-cpp.syncFileIndex", + "when": "!explorerResourceIsFolder", + "group": "hornet" + } + ], + "view/title": [ + { + "command": "hornet-cpp.refreshHierarchy", + "when": "view == hornet-cpp.callGraph || view == hornet-cpp.typeHierarchy", + "group": "navigation" + }, + { + "command": "hornet-cpp.pinCallGraph", + "when": "view == hornet-cpp.callGraph" + } + ], + "view/item/context": [ + { + "command": "hornet-cpp.setHierarchyRoot", + "when": "view == hornet-cpp.callGraph || view == hornet-cpp.typeHierarchy", + "group": "hornet" + }, + { + "command": "hornet-cpp.copySymbol", + "when": "view == hornet-cpp.callGraph || view == hornet-cpp.typeHierarchy", + "group": "hornet" + }, + { + "command": "hornet-cpp.findNodeReferences", + "when": "view == hornet-cpp.callGraph || view == hornet-cpp.typeHierarchy", + "group": "hornet" + } + ] }, - "homepage": "https://github.com/Microsoft/vscode-cpptools", - "qna": "https://github.com/Microsoft/vscode-cpptools/issues", - "extensionKind": [ - "workspace" + "languages": [ + { + "id": "cpp", + "extensions": [ + ".ccm", + ".cppm", + ".hip", + ".ixx", + ".sycl" + ], + "filenames": [ + "algorithm", + "any", + "array", + "atomic", + "barrier", + "bit", + "bitset", + "cassert", + "ccomplex", + "cctype", + "cerrno", + "cfenv", + "cfloat", + "charconv", + "chrono", + "cinttypes", + "ciso646", + "climits", + "clocale", + "cmath", + "codecvt", + "compare", + "complex", + "concepts", + "condition_variable", + "contracts", + "coroutine", + "csetjmp", + "csignal", + "cstdalign", + "cstdarg", + "cstdbool", + "cstddef", + "cstdint", + "cstdio", + "cstdlib", + "cstring", + "ctgmath", + "ctime", + "cuchar", + "cwchar", + "cwctype", + "debugging", + "deque", + "exception", + "execution", + "expected", + "filesystem", + "flat_map", + "flat_set", + "format", + "forward_list", + "fstream", + "functional", + "future", + "generator", + "hazard_pointer", + "hive", + "initializer_list", + "inplace_vector", + "iomanip", + "ios", + "iosfwd", + "iostream", + "istream", + "iterator", + "latch", + "limits", + "linalg", + "list", + "locale", + "map", + "mdspan", + "memory", + "memory_resource", + "mutex", + "new", + "numbers", + "numeric", + "optional", + "ostream", + "print", + "queue", + "random", + "ranges", + "ratio", + "rcu", + "regex", + "scoped_allocator", + "semaphore", + "set", + "shared_mutex", + "simd", + "source_location", + "span", + "spanstream", + "sstream", + "stack", + "stacktrace", + "stdexcept", + "stdfloat", + "stop_token", + "streambuf", + "string", + "string_view", + "strstream", + "syncstream", + "system_error", + "text_encoding", + "thread", + "tuple", + "type_traits", + "typeindex", + "typeinfo", + "unordered_map", + "unordered_set", + "utility", + "valarray", + "variant", + "vector", + "version" + ] + } ], - "keywords": [ - "C", - "C++", - "IntelliSense", - "Microsoft", - "multi-root ready" + "configurationDefaults": { + "[cpp]": { + "editor.wordBasedSuggestions": "off", + "editor.semanticHighlighting.enabled": true, + "editor.stickyScroll.defaultModel": "foldingProviderModel", + "editor.suggest.insertMode": "replace" + }, + "[cuda-cpp]": { + "editor.wordBasedSuggestions": "off", + "editor.semanticHighlighting.enabled": true, + "editor.stickyScroll.defaultModel": "foldingProviderModel", + "editor.suggest.insertMode": "replace" + }, + "[c]": { + "editor.wordBasedSuggestions": "off", + "editor.semanticHighlighting.enabled": true, + "editor.stickyScroll.defaultModel": "foldingProviderModel", + "editor.suggest.insertMode": "replace" + } + }, + "semanticTokenTypes": [ + { + "id": "referenceType", + "superType": "class", + "description": "Style for C++/CLI reference types." + }, + { + "id": "cliProperty", + "superType": "property", + "description": "Style for C++/CLI properties." + }, + { + "id": "genericType", + "superType": "class", + "description": "Style for C++/CLI generic types." + }, + { + "id": "valueType", + "superType": "class", + "description": "Style for C++/CLI value types." + }, + { + "id": "templateFunction", + "superType": "function", + "description": "Style for C++ template functions." + }, + { + "id": "templateType", + "superType": "class", + "description": "Style for C++ template types." + }, + { + "id": "operatorOverload", + "superType": "operator", + "description": "Style for C++ overloaded operators." + }, + { + "id": "memberOperatorOverload", + "superType": "operator", + "description": "Style for C++ overloaded operator member functions." + }, + { + "id": "newOperator", + "superType": "operator", + "description": "Style for C++ new or delete operators." + }, + { + "id": "customLiteral", + "superType": "number", + "description": "Style for C++ user-defined literals." + }, + { + "id": "numberLiteral", + "superType": "number", + "description": "Style for C++ user-defined literal numbers." + }, + { + "id": "stringLiteral", + "superType": "string", + "description": "Style for C++ user-defined literal strings." + } ], - "categories": [ - "Programming Languages", - "Debuggers", - "Formatters", - "Linters", - "Snippets" + "semanticTokenModifiers": [ + { + "id": "global", + "description": "Style to use for symbols that are global." + }, + { + "id": "local", + "description": "Style to use for symbols that are local." + } ], - "enabledApiProposals": [ - "terminalDataWriteEvent", - "chatParticipantAdditions" + "semanticTokenScopes": [ + { + "language": "c", + "scopes": { + "namespace": [ + "entity.name.namespace.c" + ], + "type": [ + "entity.name.type.c" + ], + "type.defaultLibrary": [ + "support.type.c" + ], + "struct": [ + "storage.type.struct.c" + ], + "class": [ + "entity.name.type.class.c" + ], + "class.defaultLibrary": [ + "support.class.c" + ], + "interface": [ + "entity.name.type.interface.c" + ], + "enum": [ + "entity.name.type.enum.c" + ], + "function": [ + "entity.name.function.c" + ], + "function.defaultLibrary": [ + "support.function.c" + ], + "method": [ + "entity.name.function.member.c" + ], + "variable": [ + "variable.other.readwrite.c", + "entity.name.variable.c" + ], + "variable.readonly": [ + "variable.other.constant.c" + ], + "variable.readonly.defaultLibrary": [ + "support.constant.c" + ], + "parameter": [ + "variable.parameter.c" + ], + "property": [ + "variable.other.property.c" + ], + "property.readonly": [ + "variable.other.constant.property.c" + ], + "enumMember": [ + "variable.other.enummember.c" + ], + "event": [ + "variable.other.event.c" + ], + "label": [ + "entity.name.label.c" + ], + "variable.global": [ + "variable.other.global.c" + ], + "variable.local": [ + "variable.other.local.c" + ], + "property.static": [ + "variable.other.property.static.c" + ], + "method.static": [ + "entity.name.function.member.static.c" + ], + "macro": [ + "entity.name.function.preprocessor.c", + "entity.name.function.macro.c" + ], + "referenceType": [ + "entity.name.type.class.reference.c" + ], + "cliProperty": [ + "variable.other.property.cli.c" + ], + "genericType": [ + "entity.name.type.class.generic.c" + ], + "valueType": [ + "entity.name.type.class.value.c" + ], + "templateFunction": [ + "entity.name.function.templated.c" + ], + "templateType": [ + "entity.name.type.class.templated.c" + ], + "operatorOverload": [ + "entity.name.function.operator.c" + ], + "memberOperatorOverload": [ + "entity.name.function.operator.member.c" + ], + "newOperator": [ + "keyword.operator.new.c" + ], + "numberLiteral": [ + "entity.name.operator.custom-literal.number.c" + ], + "customLiteral": [ + "entity.name.operator.custom-literal.c" + ], + "stringLiteral": [ + "entity.name.operator.custom-literal.string.c" + ] + } + }, + { + "language": "cpp", + "scopes": { + "namespace": [ + "entity.name.namespace.cpp" + ], + "type": [ + "entity.name.type.cpp" + ], + "type.defaultLibrary": [ + "support.type.cpp" + ], + "struct": [ + "storage.type.struct.cpp" + ], + "class": [ + "entity.name.type.class.cpp" + ], + "class.defaultLibrary": [ + "support.class.cpp" + ], + "interface": [ + "entity.name.type.interface.cpp" + ], + "enum": [ + "entity.name.type.enum.cpp" + ], + "function": [ + "entity.name.function.cpp" + ], + "function.defaultLibrary": [ + "support.function.cpp" + ], + "method": [ + "entity.name.function.member.cpp" + ], + "variable": [ + "variable.other.readwrite.cpp", + "entity.name.variable.cpp" + ], + "variable.readonly": [ + "variable.other.constant.cpp" + ], + "variable.readonly.defaultLibrary": [ + "support.constant.cpp" + ], + "parameter": [ + "variable.parameter.cpp" + ], + "property": [ + "variable.other.property.cpp" + ], + "property.readonly": [ + "variable.other.constant.property.cpp" + ], + "enumMember": [ + "variable.other.enummember.cpp" + ], + "event": [ + "variable.other.event.cpp" + ], + "label": [ + "entity.name.label.cpp" + ], + "variable.global": [ + "variable.other.global.cpp" + ], + "variable.local": [ + "variable.other.local.cpp" + ], + "property.static": [ + "variable.other.property.static.cpp" + ], + "method.static": [ + "entity.name.function.member.static.cpp" + ], + "macro": [ + "entity.name.function.preprocessor.cpp", + "entity.name.function.macro.cpp" + ], + "referenceType": [ + "entity.name.type.class.reference.cpp" + ], + "cliProperty": [ + "variable.other.property.cli.cpp" + ], + "genericType": [ + "entity.name.type.class.generic.cpp" + ], + "valueType": [ + "entity.name.type.class.value.cpp" + ], + "templateFunction": [ + "entity.name.function.templated.cpp" + ], + "templateType": [ + "entity.name.type.class.templated.cpp" + ], + "operatorOverload": [ + "entity.name.function.operator.cpp" + ], + "memberOperatorOverload": [ + "entity.name.function.operator.member.cpp" + ], + "newOperator": [ + "keyword.operator.new.cpp" + ], + "numberLiteral": [ + "entity.name.operator.custom-literal.number.cpp" + ], + "customLiteral": [ + "entity.name.operator.custom-literal.cpp" + ], + "stringLiteral": [ + "entity.name.operator.custom-literal.string.cpp" + ] + } + }, + { + "language": "cuda-cpp", + "scopes": { + "namespace": [ + "entity.name.namespace.cuda-cpp" + ], + "type": [ + "entity.name.type.cuda-cpp" + ], + "type.defaultLibrary": [ + "support.type.cuda-cpp" + ], + "struct": [ + "storage.type.struct.cuda-cpp" + ], + "class": [ + "entity.name.type.class.cuda-cpp" + ], + "class.defaultLibrary": [ + "support.class.cuda-cpp" + ], + "interface": [ + "entity.name.type.interface.cuda-cpp" + ], + "enum": [ + "entity.name.type.enum.cuda-cpp" + ], + "function": [ + "entity.name.function.cuda-cpp" + ], + "function.defaultLibrary": [ + "support.function.cuda-cpp" + ], + "method": [ + "entity.name.function.member.cuda-cpp" + ], + "variable": [ + "variable.other.readwrite.cuda-cpp", + "entity.name.variable.cuda-cpp" + ], + "variable.readonly": [ + "variable.other.constant.cuda-cpp" + ], + "variable.readonly.defaultLibrary": [ + "support.constant.cuda-cpp" + ], + "parameter": [ + "variable.parameter.cuda-cpp" + ], + "property": [ + "variable.other.property.cuda-cpp" + ], + "property.readonly": [ + "variable.other.constant.property.cuda-cpp" + ], + "enumMember": [ + "variable.other.enummember.cuda-cpp" + ], + "event": [ + "variable.other.event.cuda-cpp" + ], + "label": [ + "entity.name.label.cuda-cpp" + ], + "variable.global": [ + "variable.other.global.cuda-cpp" + ], + "variable.local": [ + "variable.other.local.cuda-cpp" + ], + "property.static": [ + "variable.other.property.static.cuda-cpp" + ], + "method.static": [ + "entity.name.function.member.static.cuda-cpp" + ], + "macro": [ + "entity.name.function.preprocessor.cuda-cpp", + "entity.name.function.macro.cuda-cpp" + ], + "referenceType": [ + "entity.name.type.class.reference.cuda-cpp" + ], + "cliProperty": [ + "variable.other.property.cli.cuda-cpp" + ], + "genericType": [ + "entity.name.type.class.generic.cuda-cpp" + ], + "valueType": [ + "entity.name.type.class.value.cuda-cpp" + ], + "templateFunction": [ + "entity.name.function.templated.cuda-cpp" + ], + "templateType": [ + "entity.name.type.class.templated.cuda-cpp" + ], + "operatorOverload": [ + "entity.name.function.operator.cuda-cpp" + ], + "memberOperatorOverload": [ + "entity.name.function.operator.member.cuda-cpp" + ], + "newOperator": [ + "keyword.operator.new.cuda-cpp" + ], + "numberLiteral": [ + "entity.name.operator.custom-literal.number.cuda-cpp" + ], + "customLiteral": [ + "entity.name.operator.custom-literal.cuda-cpp" + ], + "stringLiteral": [ + "entity.name.operator.custom-literal.string.cuda-cpp" + ] + } + } ], - "capabilities": { - "untrustedWorkspaces": { - "supported": false, - "description": "%c_cpp.capabilities.untrustedWorkspaces.description%" - }, - "virtualWorkspaces": false - }, - "activationEvents": [ - "onLanguage:c", - "onLanguage:cpp", - "onLanguage:cuda-cpp", - "onCommand:extension.pickNativeProcess", - "onCommand:extension.pickRemoteNativeProcess", - "onDebugResolve:cppdbg", - "onDebugResolve:cppvsdbg", - "workspaceContains:/.vscode/c_cpp_properties.json", - "onFileSystem:cpptools-schema" + "problemMatchers": [ + { + "name": "gcc", + "source": "gcc", + "owner": "hornet-cpp", + "fileLocation": [ + "autoDetect", + "${cwd}" + ], + "pattern": { + "regexp": "^(.*?):(\\d+):(\\d*):?\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + }, + { + "name": "iar", + "source": "iar", + "owner": "hornet-cpp", + "fileLocation": "absolute", + "pattern": { + "regexp": "^\"(.*?)\",(\\d+)\\s+(?:[Ff]atal\\s+)?([Ww]arning|[Ee]rror)\\[(\\w+\\d+)\\]:\\s+(.*)$", + "file": 1, + "line": 2, + "severity": 3, + "code": 4, + "message": 5 + } + }, + { + "name": "armcc5", + "source": "armcc5", + "owner": "hornet-cpp", + "fileLocation": [ + "autoDetect", + "${cwd}" + ], + "pattern": { + "regexp": "^\"(.*)?\",\\s+line\\s+(\\d+):\\s+([Ee]rror|[Ww]arning):\\s+#(.*?):\\s+(.*)$", + "file": 1, + "line": 2, + "severity": 3, + "code": 4, + "message": 5 + } + } ], - "main": "./dist/src/main", - "type": "commonjs", - "contributes": { - "languages": [ - { - "id": "cpp", - "extensions": [ - ".ccm", - ".cppm", - ".hip", - ".ixx", - ".sycl" + "taskDefinitions": [ + { + "type": "hornet-cpp.build", + "required": [ + "command", + "label" + ], + "properties": { + "label": { + "type": "string", + "description": "The name of the task." + }, + "command": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": [ + "value", + "quoting" ], - "filenames": [ - "algorithm", - "any", - "array", - "atomic", - "barrier", - "bit", - "bitset", - "cassert", - "ccomplex", - "cctype", - "cerrno", - "cfenv", - "cfloat", - "charconv", - "chrono", - "cinttypes", - "ciso646", - "climits", - "clocale", - "cmath", - "codecvt", - "compare", - "complex", - "concepts", - "condition_variable", - "contracts", - "coroutine", - "csetjmp", - "csignal", - "cstdalign", - "cstdarg", - "cstdbool", - "cstddef", - "cstdint", - "cstdio", - "cstdlib", - "cstring", - "ctgmath", - "ctime", - "cuchar", - "cwchar", - "cwctype", - "debugging", - "deque", - "exception", - "execution", - "expected", - "filesystem", - "flat_map", - "flat_set", - "format", - "forward_list", - "fstream", - "functional", - "future", - "generator", - "hazard_pointer", - "hive", - "initializer_list", - "inplace_vector", - "iomanip", - "ios", - "iosfwd", - "iostream", - "istream", - "iterator", - "latch", - "limits", - "linalg", - "list", - "locale", - "map", - "mdspan", - "memory", - "memory_resource", - "mutex", - "new", - "numbers", - "numeric", - "optional", - "ostream", - "print", - "queue", - "random", - "ranges", - "ratio", - "rcu", - "regex", - "scoped_allocator", - "semaphore", - "set", - "shared_mutex", - "simd", - "source_location", - "span", - "spanstream", - "sstream", - "stack", - "stacktrace", - "stdexcept", - "stdfloat", - "stop_token", - "streambuf", - "string", - "string_view", - "strstream", - "syncstream", - "system_error", - "text_encoding", - "thread", - "tuple", - "type_traits", - "typeindex", - "typeinfo", - "unordered_map", - "unordered_set", - "utility", - "valarray", - "variant", - "vector", - "version" - ] + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." + } + } + } + ] + }, + "args": { + "type": "array", + "description": "Additional arguments to pass to the compiler or compilation script.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." + } + } + } + ] } - ], - "walkthroughs": [ - { - "id": "cppWelcome", - "title": "%c_cpp.walkthrough.title%", - "description": "%c_cpp.walkthrough.description%", - "steps": [ - { - "id": "awaiting.activation.mac", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.activating.description%", - "when": "workspacePlatform == mac && cpptools.scanForCompilersDone == false", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-clang-macos.md" - } - }, - { - "id": "awaiting.activation.linux", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.activating.description%", - "when": "workspacePlatform == linux && cpptools.scanForCompilersDone == false", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-gcc-linux.md" - } - }, - { - "id": "awaiting.activation.windows", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.activating.description%", - "when": "workspacePlatform == windows && cpptools.scanForCompilersDone == false && cpptools.windowsVersion != 10 && cpptools.windowsVersion != 11", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-compiler-windows.md" - } - }, - { - "id": "awaiting.activation.windows10", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.activating.description%", - "when": "workspacePlatform == windows && cpptools.scanForCompilersDone == false && cpptools.windowsVersion == 10", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-compiler-windows10.md" - } - }, - { - "id": "awaiting.activation.windows11", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.activating.description%", - "when": "workspacePlatform == windows && cpptools.scanForCompilersDone == false && cpptools.windowsVersion == 11", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-compiler-windows11.md" - } - }, - { - "id": "no.compilers.found.mac", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.no.compilers.description%", - "when": "workspacePlatform == mac && cpptools.scanForCompilersDone == true && cpptools.scanForCompilersEmpty == true", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-clang-macos.md" - } - }, - { - "id": "no.compilers.found.linux", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.no.compilers.description%", - "when": "workspacePlatform == linux && cpptools.scanForCompilersDone == true && cpptools.scanForCompilersEmpty == true", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-gcc-linux.md" - } - }, - { - "id": "no.compilers.found.windows", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.no.compilers.windows.description%", - "when": "workspacePlatform == windows && cpptools.scanForCompilersDone == true && cpptools.scanForCompilersEmpty == true && cpptools.windowsVersion != 10 && cpptools.windowsVersion != 11", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-compiler-windows.md" - } - }, - { - "id": "no.compilers.found.windows10", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.no.compilers.windows.description%", - "when": "workspacePlatform == windows && cpptools.scanForCompilersDone == true && cpptools.scanForCompilersEmpty == true && cpptools.windowsVersion == 10", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-compiler-windows10.md" - } - }, + }, + "options": { + "type": "object", + "description": "Additional command options.", + "properties": { + "cwd": { + "type": "string", + "description": "The current working directory of the executed program or script. If omitted Code's current workspace root is used." + } + } + }, + "problemMatcher": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "One or more problem matchers to use to detect compiler errors and warnings in task output." + }, + "detail": { + "type": "string", + "description": "Additional details of the task." + }, + "windows": { + "type": "object", + "properties": { + "command": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." + } + } + } + ] + }, + "args": { + "type": "array", + "description": "Additional arguments to pass to the compiler or compilation script.", + "items": { + "oneOf": [ { - "id": "no.compilers.found.windows11", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.no.compilers.windows.description%", - "when": "workspacePlatform == windows && cpptools.scanForCompilersDone == true && cpptools.scanForCompilersEmpty == true && cpptools.windowsVersion == 11", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-compiler-windows11.md" - } + "type": "string" }, { - "id": "verify.compiler.mac", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.compilers.found.description%", - "when": "workspacePlatform == mac && cpptools.scanForCompilersDone == true && cpptools.scanForCompilersEmpty == false", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-clang-macos.md" + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." }, - "completionEvents": [ - "onContext:cpptools.trustedCompilerFound" - ] - }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." + } + } + } + ] + } + }, + "options": { + "type": "object", + "description": "Additional command options.", + "properties": { + "cwd": { + "type": "string", + "description": "The current working directory of the executed program or script. If omitted Code's current workspace root is used." + } + } + }, + "problemMatcher": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "One or more problem matchers to use to detect compiler errors and warnings in task output." + } + } + }, + "linux": { + "type": "object", + "properties": { + "command": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." + } + } + } + ] + }, + "args": { + "type": "array", + "description": "Additional arguments to pass to the compiler or compilation script.", + "items": { + "oneOf": [ { - "id": "verify.compiler.linux", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.compilers.found.description%", - "when": "workspacePlatform == linux && cpptools.scanForCompilersDone == true && cpptools.scanForCompilersEmpty == false", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-gcc-linux.md" - }, - "completionEvents": [ - "onContext:cpptools.trustedCompilerFound" - ] + "type": "string" }, { - "id": "verify.compiler.windows", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.compilers.found.description%", - "when": "workspacePlatform == windows && cpptools.scanForCompilersDone == true && cpptools.scanForCompilersEmpty == false && cpptools.windowsVersion != 10 && cpptools.windowsVersion != 11", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-compiler-windows.md" + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." }, - "completionEvents": [ - "onContext:cpptools.trustedCompilerFound" - ] - }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." + } + } + } + ] + } + }, + "options": { + "type": "object", + "description": "Additional command options.", + "properties": { + "cwd": { + "type": "string", + "description": "The current working directory of the executed program or script. If omitted Code's current workspace root is used." + } + } + }, + "problemMatcher": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "One or more problem matchers to use to detect compiler errors and warnings in task output." + } + } + }, + "osx": { + "type": "object", + "properties": { + "command": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." + } + } + } + ] + }, + "args": { + "type": "array", + "description": "Additional arguments to pass to the compiler or compilation script.", + "items": { + "oneOf": [ { - "id": "verify.compiler.windows10", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.compilers.found.description%", - "when": "workspacePlatform == windows && cpptools.scanForCompilersDone == true && cpptools.scanForCompilersEmpty == false && cpptools.windowsVersion == 10", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-compiler-windows10.md" - }, - "completionEvents": [ - "onContext:cpptools.trustedCompilerFound" - ] + "type": "string" }, { - "id": "verify.compiler.windows11", - "title": "%c_cpp.walkthrough.set.up.title%", - "description": "%c_cpp.walkthrough.compilers.found.description%", - "when": "workspacePlatform == windows && cpptools.scanForCompilersDone == true && cpptools.scanForCompilersEmpty == false && cpptools.windowsVersion == 11", - "media": { - "markdown": "dist/walkthrough/installcompiler/install-compiler-windows11.md" + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." }, - "completionEvents": [ - "onContext:cpptools.trustedCompilerFound" - ] - }, - { - "id": "create.cpp.file", - "title": "%c_cpp.walkthrough.create.cpp.file.title%", - "description": "%c_cpp.walkthrough.create.cpp.file.description%", - "media": { - "svg": "dist/walkthrough/images/create-a-file.svg", - "altText": "%c_cpp.walkthrough.create.cpp.file.altText%" + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." } - }, - { - "id": "relaunch.developer.command.prompt.windows", - "title": "%c_cpp.walkthrough.command.prompt.title%", - "description": "%c_cpp.walkthrough.command.prompt.description%", - "when": "workspacePlatform == windows", - "media": { - "markdown": "dist/walkthrough/devcommandprompt/open-developer-command-prompt.md" - }, - "completionEvents": [ - "onContext:cpptools.msvcEnvironmentFound" - ] - }, + } + } + ] + } + }, + "options": { + "type": "object", + "description": "Additional command options.", + "properties": { + "cwd": { + "type": "string", + "description": "The current working directory of the executed program or script. If omitted Code's current workspace root is used." + } + } + }, + "problemMatcher": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "One or more problem matchers to use to detect compiler errors and warnings in task output." + } + } + } + } + }, + { + "type": "cppbuild", + "required": [ + "command", + "label" + ], + "properties": { + "label": { + "type": "string", + "description": "The name of the task." + }, + "command": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." + } + } + } + ] + }, + "args": { + "type": "array", + "description": "Additional arguments to pass to the compiler or compilation script.", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." + } + } + } + ] + } + }, + "options": { + "type": "object", + "description": "Additional command options.", + "properties": { + "cwd": { + "type": "string", + "description": "The current working directory of the executed program or script. If omitted Code's current workspace root is used." + } + } + }, + "problemMatcher": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "One or more problem matchers to use to detect compiler errors and warnings in task output." + }, + "detail": { + "type": "string", + "description": "Additional details of the task." + }, + "windows": { + "type": "object", + "properties": { + "command": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." + } + } + } + ] + }, + "args": { + "type": "array", + "description": "Additional arguments to pass to the compiler or compilation script.", + "items": { + "oneOf": [ { - "id": "run.project.mac", - "title": "%c_cpp.walkthrough.run.debug.title%", - "description": "%c_cpp.walkthrough.run.debug.mac.description%", - "when": "workspacePlatform == mac", - "media": { - "altText": "%c_cpp.walkthrough.run.debug.windows.altText%", - "svg": "dist/walkthrough/images/run-and-debug.svg" - } + "type": "string" }, { - "id": "run.project.linux", - "title": "%c_cpp.walkthrough.run.debug.title%", - "description": "%c_cpp.walkthrough.run.debug.linux.description%", - "when": "workspacePlatform == linux", - "media": { - "altText": "%c_cpp.walkthrough.run.debug.windows.altText%", - "svg": "dist/walkthrough/images/run-and-debug.svg" + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." } - }, + } + } + ] + } + }, + "options": { + "type": "object", + "description": "Additional command options.", + "properties": { + "cwd": { + "type": "string", + "description": "The current working directory of the executed program or script. If omitted Code's current workspace root is used." + } + } + }, + "problemMatcher": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "One or more problem matchers to use to detect compiler errors and warnings in task output." + } + } + }, + "linux": { + "type": "object", + "properties": { + "command": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." + } + } + } + ] + }, + "args": { + "type": "array", + "description": "Additional arguments to pass to the compiler or compilation script.", + "items": { + "oneOf": [ { - "id": "run.project.windows", - "title": "%c_cpp.walkthrough.run.debug.title%", - "description": "%c_cpp.walkthrough.run.debug.windows.description%", - "when": "workspacePlatform == windows", - "media": { - "altText": "%c_cpp.walkthrough.run.debug.windows.altText%", - "svg": "dist/walkthrough/images/run-and-debug.svg" - } + "type": "string" }, { - "id": "customize.debugging.linux", - "title": "%c_cpp.walkthrough.customize.debugging.title%", - "when": "workspacePlatform == linux", - "description": "%c_cpp.walkthrough.customize.debugging.mac.description%", - "media": { - "altText": "%c_cpp.walkthrough.customize.debugging.altText%", - "svg": "dist/walkthrough/images/customize-debugging.svg" + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." } - }, + } + } + ] + } + }, + "options": { + "type": "object", + "description": "Additional command options.", + "properties": { + "cwd": { + "type": "string", + "description": "The current working directory of the executed program or script. If omitted Code's current workspace root is used." + } + } + }, + "problemMatcher": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "One or more problem matchers to use to detect compiler errors and warnings in task output." + } + } + }, + "osx": { + "type": "object", + "properties": { + "command": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." + } + } + } + ] + }, + "args": { + "type": "array", + "description": "Additional arguments to pass to the compiler or compilation script.", + "items": { + "oneOf": [ { - "id": "customize.debugging.windows", - "title": "%c_cpp.walkthrough.customize.debugging.title%", - "when": "workspacePlatform == windows", - "description": "%c_cpp.walkthrough.customize.debugging.linux.description%", - "media": { - "altText": "%c_cpp.walkthrough.customize.debugging.altText%", - "svg": "dist/walkthrough/images/customize-debugging.svg" - } + "type": "string" }, { - "id": "customize.debugging.mac", - "title": "%c_cpp.walkthrough.customize.debugging.title%", - "when": "workspacePlatform == mac", - "description": "%c_cpp.walkthrough.customize.debugging.windows.description%", - "media": { - "altText": "%c_cpp.walkthrough.customize.debugging.altText%", - "svg": "dist/walkthrough/images/customize-debugging.svg" + "type": "object", + "required": [ + "value", + "quoting" + ], + "properties": { + "value": { + "type": "string", + "description": "The actual argument value." + }, + "quoting": { + "type": "string", + "enum": [ + "escape", + "strong", + "weak" + ], + "enumDescriptions": [ + "Escapes characters using the shell's escape character (e.g. \\ under bash).", + "Quotes the argument using the shell's strong quote character (e.g. ' under bash).", + "Quotes the argument using the shell's weak quote character (e.g. \" under bash)." + ], + "default": "strong", + "description": "How the argument value should be quoted." } + } } - ] - } - ], - "taskDefinitions": [ + ] + } + }, + "options": { + "type": "object", + "description": "Additional command options.", + "properties": { + "cwd": { + "type": "string", + "description": "The current working directory of the executed program or script. If omitted Code's current workspace root is used." + } + } + }, + "problemMatcher": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + }, { - "type": "cppbuild", - "required": [ - "command", - "label" - ], + "title": "%c_cpp.subheaders.codeAnalysis.title%", "properties": { - "label": { - "type": "string", - "description": "%c_cpp.taskDefinitions.name.description%" + "C_Cpp.codeAnalysis.maxConcurrentThreads": { + "type": [ + "integer", + "null" + ], + "markdownDescription": "%c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription%", + "default": null, + "minimum": 1, + "maximum": 32, + "scope": "machine" }, - "command": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "required": [ - "value", - "quoting" - ], - "properties": { - "value": { - "type": "string", - "description": "%c_cpp.taskDefinitions.args.value.description%" - }, - "quoting": { - "type": "string", - "enum": [ - "escape", - "strong", - "weak" - ], - "enumDescriptions": [ - "%c_cpp.taskDefinitions.args.quoting.escape.description%", - "%c_cpp.taskDefinitions.args.quoting.strong.description%", - "%c_cpp.taskDefinitions.args.quoting.weak.description%" - ], - "default": "strong", - "description": "%c_cpp.taskDefinitions.args.quoting.description%" - } - } - } - ] + "C_Cpp.codeAnalysis.maxMemory": { + "type": [ + "integer", + "null" + ], + "markdownDescription": "%c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription%", + "default": null, + "minimum": 256, + "maximum": 65536, + "scope": "machine" }, - "args": { - "type": "array", - "description": "%c_cpp.taskDefinitions.args.description%", - "items": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "required": [ - "value", - "quoting" - ], - "properties": { - "value": { - "type": "string", - "description": "%c_cpp.taskDefinitions.args.value.description%" - }, - "quoting": { + "C_Cpp.codeAnalysis.updateDelay": { + "type": "number", + "default": 2000, + "markdownDescription": "%c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription%", + "scope": "application", + "minimum": 0, + "maximum": 6000 + }, + "C_Cpp.codeAnalysis.exclude": { + "type": "object", + "markdownDescription": "%c_cpp.configuration.codeAnalysis.exclude.markdownDescription%", + "default": {}, + "additionalProperties": { + "anyOf": [ + { + "type": "boolean", + "markdownDescription": "%c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription%" + }, + { + "type": "object", + "properties": { + "when": { "type": "string", - "enum": [ - "escape", - "strong", - "weak" - ], - "enumDescriptions": [ - "%c_cpp.taskDefinitions.args.quoting.escape.description%", - "%c_cpp.taskDefinitions.args.quoting.strong.description%", - "%c_cpp.taskDefinitions.args.quoting.weak.description%" - ], - "default": "strong", - "description": "%c_cpp.taskDefinitions.args.quoting.description%" + "pattern": "\\w*\\$\\(basename\\)\\w*", + "default": "$(basename).ext", + "markdownDescription": "%c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription%" } } } ] - } + }, + "scope": "resource" }, - "options": { - "type": "object", - "description": "%c_cpp.taskDefinitions.options.description%", - "properties": { - "cwd": { - "type": "string", - "description": "%c_cpp.taskDefinitions.options.cwd.description%" - } - } + "C_Cpp.codeAnalysis.clangTidy.codeAction.formatFixes": { + "type": "boolean", + "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription%", + "default": true, + "scope": "resource" }, - "problemMatcher": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } + "C_Cpp.codeAnalysis.clangTidy.codeAction.showClear": { + "type": "string", + "description": "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description%", + "enum": [ + "None", + "AllOnly", + "AllAndAllType", + "AllAndAllTypeAndThis" + ], + "enumDescriptions": [ + "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.None.description%", + "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description%", + "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description%", + "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description%" ], - "description": "%c_cpp.taskDefinitions.problemMatcher.description%" + "default": "AllAndAllTypeAndThis", + "scope": "application" + }, + "C_Cpp.codeAnalysis.clangTidy.codeAction.showDisable": { + "type": "boolean", + "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription%", + "default": true, + "scope": "application" + }, + "C_Cpp.codeAnalysis.clangTidy.codeAction.showDocumentation": { + "type": "boolean", + "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription%", + "default": true, + "scope": "application" + }, + "C_Cpp.codeAnalysis.runAutomatically": { + "type": "boolean", + "markdownDescription": "%c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription%", + "default": true, + "scope": "resource" + }, + "C_Cpp.codeAnalysis.clangTidy.enabled": { + "type": "boolean", + "default": false, + "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription%", + "scope": "resource" }, - "detail": { + "C_Cpp.codeAnalysis.clangTidy.path": { "type": "string", - "description": "%c_cpp.taskDefinitions.detail.description%" + "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription%", + "scope": "machine-overridable" }, - "windows": { - "type": "object", - "properties": { - "command": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "required": [ - "value", - "quoting" - ], - "properties": { - "value": { - "type": "string", - "description": "%c_cpp.taskDefinitions.args.value.description%" - }, - "quoting": { - "type": "string", - "enum": [ - "escape", - "strong", - "weak" - ], - "enumDescriptions": [ - "%c_cpp.taskDefinitions.args.quoting.escape.description%", - "%c_cpp.taskDefinitions.args.quoting.strong.description%", - "%c_cpp.taskDefinitions.args.quoting.weak.description%" - ], - "default": "strong", - "description": "%c_cpp.taskDefinitions.args.quoting.description%" - } - } - } - ] - }, - "args": { - "type": "array", - "description": "%c_cpp.taskDefinitions.args.description%", - "items": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "required": [ - "value", - "quoting" - ], - "properties": { - "value": { - "type": "string", - "description": "%c_cpp.taskDefinitions.args.value.description%" - }, - "quoting": { - "type": "string", - "enum": [ - "escape", - "strong", - "weak" - ], - "enumDescriptions": [ - "%c_cpp.taskDefinitions.args.quoting.escape.description%", - "%c_cpp.taskDefinitions.args.quoting.strong.description%", - "%c_cpp.taskDefinitions.args.quoting.weak.description%" - ], - "default": "strong", - "description": "%c_cpp.taskDefinitions.args.quoting.description%" - } - } - } - ] - } - }, - "options": { - "type": "object", - "description": "%c_cpp.taskDefinitions.options.description%", - "properties": { - "cwd": { - "type": "string", - "description": "%c_cpp.taskDefinitions.options.cwd.description%" - } - } - }, - "problemMatcher": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "%c_cpp.taskDefinitions.problemMatcher.description%" - } - } + "C_Cpp.codeAnalysis.clangTidy.config": { + "type": "string", + "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription%", + "scope": "resource" }, - "linux": { - "type": "object", - "properties": { - "command": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "required": [ - "value", - "quoting" - ], - "properties": { - "value": { - "type": "string", - "description": "%c_cpp.taskDefinitions.args.value.description%" - }, - "quoting": { - "type": "string", - "enum": [ - "escape", - "strong", - "weak" - ], - "enumDescriptions": [ - "%c_cpp.taskDefinitions.args.quoting.escape.description%", - "%c_cpp.taskDefinitions.args.quoting.strong.description%", - "%c_cpp.taskDefinitions.args.quoting.weak.description%" - ], - "default": "strong", - "description": "%c_cpp.taskDefinitions.args.quoting.description%" - } - } - } - ] - }, - "args": { - "type": "array", - "description": "%c_cpp.taskDefinitions.args.description%", - "items": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "required": [ - "value", - "quoting" - ], - "properties": { - "value": { - "type": "string", - "description": "%c_cpp.taskDefinitions.args.value.description%" - }, - "quoting": { - "type": "string", - "enum": [ - "escape", - "strong", - "weak" - ], - "enumDescriptions": [ - "%c_cpp.taskDefinitions.args.quoting.escape.description%", - "%c_cpp.taskDefinitions.args.quoting.strong.description%", - "%c_cpp.taskDefinitions.args.quoting.weak.description%" - ], - "default": "strong", - "description": "%c_cpp.taskDefinitions.args.quoting.description%" - } - } - } - ] - } - }, - "options": { - "type": "object", - "description": "%c_cpp.taskDefinitions.options.description%", - "properties": { - "cwd": { - "type": "string", - "description": "%c_cpp.taskDefinitions.options.cwd.description%" - } - } - }, - "problemMatcher": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "%c_cpp.taskDefinitions.problemMatcher.description%" - } - } + "C_Cpp.codeAnalysis.clangTidy.fallbackConfig": { + "type": "string", + "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription%", + "scope": "resource" }, - "osx": { - "type": "object", - "properties": { - "command": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "required": [ - "value", - "quoting" - ], - "properties": { - "value": { - "type": "string", - "description": "%c_cpp.taskDefinitions.args.value.description%" - }, - "quoting": { - "type": "string", - "enum": [ - "escape", - "strong", - "weak" - ], - "enumDescriptions": [ - "%c_cpp.taskDefinitions.args.quoting.escape.description%", - "%c_cpp.taskDefinitions.args.quoting.strong.description%", - "%c_cpp.taskDefinitions.args.quoting.weak.description%" - ], - "default": "strong", - "description": "%c_cpp.taskDefinitions.args.quoting.description%" - } - } - } - ] - }, - "args": { - "type": "array", - "description": "%c_cpp.taskDefinitions.args.description%", - "items": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "required": [ - "value", - "quoting" - ], - "properties": { - "value": { - "type": "string", - "description": "%c_cpp.taskDefinitions.args.value.description%" - }, - "quoting": { - "type": "string", - "enum": [ - "escape", - "strong", - "weak" - ], - "enumDescriptions": [ - "%c_cpp.taskDefinitions.args.quoting.escape.description%", - "%c_cpp.taskDefinitions.args.quoting.strong.description%", - "%c_cpp.taskDefinitions.args.quoting.weak.description%" - ], - "default": "strong", - "description": "%c_cpp.taskDefinitions.args.quoting.description%" - } - } - } - ] - } - }, - "options": { - "type": "object", - "description": "%c_cpp.taskDefinitions.options.description%", - "properties": { - "cwd": { - "type": "string", - "description": "%c_cpp.taskDefinitions.options.cwd.description%" - } - } - }, - "problemMatcher": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "%c_cpp.taskDefinitions.problemMatcher.description%" - } - } - } - } - } - ], - "views": { - "references-view": [ - { - "id": "CppReferencesView", - "name": "%c_cpp.contributes.views.cppReferencesView.title%", - "when": "cpptools.hasReferencesResults" - } - ], - "debug": [ - { - "id": "CppSshTargetsView", - "name": "%c_cpp.contributes.views.sshTargetsView.title%", - "when": "cpptools.enableSshTargetsView" - } - ] - }, - "viewsWelcome": [ - { - "view": "debug", - "contents": "%c_cpp.contributes.viewsWelcome.contents%", - "when": "debugStartLanguage == cpp || debugStartLanguage == c || debugStartLanguage == cuda-cpp" - } - ], - "problemMatchers": [ - { - "name": "gcc", - "source": "gcc", - "owner": "cpptools", - "fileLocation": [ - "autoDetect", - "${cwd}" - ], - "pattern": { - "regexp": "^(.*?):(\\d+):(\\d*):?\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$", - "file": 1, - "line": 2, - "column": 3, - "severity": 4, - "message": 5 - } - }, - { - "name": "iar", - "source": "iar", - "owner": "cpptools", - "fileLocation": "absolute", - "pattern": { - "regexp": "^\"(.*?)\",(\\d+)\\s+(?:[Ff]atal\\s+)?([Ww]arning|[Ee]rror)\\[(\\w+\\d+)\\]:\\s+(.*)$", - "file": 1, - "line": 2, - "severity": 3, - "code": 4, - "message": 5 - } - }, - { - "name": "armcc5", - "source": "armcc5", - "owner": "cpptools", - "fileLocation": [ - "autoDetect", - "${cwd}" - ], - "pattern": { - "regexp": "^\"(.*)?\",\\s+line\\s+(\\d+):\\s+([Ee]rror|[Ww]arning):\\s+#(.*?):\\s+(.*)$", - "file": 1, - "line": 2, - "severity": 3, - "code": 4, - "message": 5 - } - } - ], - "configuration": [ - { - "title": "%c_cpp.subheaders.intelliSense.title%", - "properties": { - "C_Cpp.inlayHints.autoDeclarationTypes.enabled": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.inlayHints.autoDeclarationTypes.enabled.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.inlayHints.autoDeclarationTypes.showOnLeft": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.inlayHints.autoDeclarationTypes.showOnLeft.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.inlayHints.parameterNames.enabled": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.inlayHints.parameterNames.enabled.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.inlayHints.parameterNames.suppressWhenArgumentContainsName": { - "type": "boolean", - "default": true, - "markdownDescription": "%c_cpp.configuration.inlayHints.parameterNames.suppressWhenArgumentContainsName.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.inlayHints.parameterNames.hideLeadingUnderscores": { - "type": "boolean", - "default": true, - "markdownDescription": "%c_cpp.configuration.inlayHints.parameterNames.hideLeadingUnderscores.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.inlayHints.referenceOperator.enabled": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.inlayHints.referenceOperator.enabled.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.inlayHints.referenceOperator.showSpace": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.inlayHints.referenceOperator.showSpace.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.intelliSenseUpdateDelay": { - "type": "number", - "default": 1000, - "description": "%c_cpp.configuration.intelliSenseUpdateDelay.description%", - "scope": "application", - "minimum": 500, - "maximum": 3000 - }, - "C_Cpp.codeFolding": { - "type": "string", - "enum": [ - "enabled", - "disabled" - ], - "default": "enabled", - "description": "%c_cpp.configuration.codeFolding.description%", - "scope": "window" - }, - "C_Cpp.autocompleteAddParentheses": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.autocompleteAddParentheses.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.suggestSnippets": { - "type": "boolean", - "default": true, - "markdownDescription": "%c_cpp.configuration.suggestSnippets.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.enhancedColorization": { - "type": "string", - "enum": [ - "enabled", - "disabled" - ], - "default": "enabled", - "markdownDescription": "%c_cpp.configuration.enhancedColorization.markdownDescription%", - "scope": "window" - }, - "C_Cpp.legacyCompilerArgsBehavior": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.legacyCompilerArgsBehavior.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.autocomplete": { - "type": "string", - "enum": [ - "default", - "disabled" - ], - "default": "default", - "markdownDescription": "%c_cpp.configuration.autocomplete.markdownDescription%", - "enumDescriptions": [ - "%c_cpp.configuration.autocomplete.default.description%", - "%c_cpp.configuration.autocomplete.disabled.description%" - ], - "scope": "resource" - }, - "C_Cpp.hover": { - "type": "string", - "enum": [ - "default", - "disabled" - ], - "default": "default", - "description": "%c_cpp.configuration.hover.description%", - "scope": "resource" - }, - "C_Cpp.errorSquiggles": { - "type": "string", - "enum": [ - "enabled", - "disabled", - "enabledIfIncludesResolve" - ], - "default": "enabledIfIncludesResolve", - "description": "%c_cpp.configuration.errorSquiggles.description%", - "scope": "resource" - }, - "C_Cpp.dimInactiveRegions": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.dimInactiveRegions.description%", - "scope": "resource" - }, - "C_Cpp.inactiveRegionOpacity": { - "type": "number", - "default": 0.55, - "markdownDescription": "%c_cpp.configuration.inactiveRegionOpacity.markdownDescription%", - "scope": "resource", - "minimum": 0.1, - "maximum": 1 - }, - "C_Cpp.inactiveRegionForegroundColor": { - "type": "string", - "description": "%c_cpp.configuration.inactiveRegionForegroundColor.description%", - "scope": "resource" - }, - "C_Cpp.inactiveRegionBackgroundColor": { - "type": "string", - "description": "%c_cpp.configuration.inactiveRegionBackgroundColor.description%", - "scope": "resource" - }, - "C_Cpp.refactoring.includeHeader": { - "type": "string", - "enum": [ - "always", - "ifNeeded", - "never" - ], - "default": "always", - "markdownDescription": "%c_cpp.configuration.refactoring.includeHeader.markdownDescription%", - "enumDescriptions": [ - "%c_cpp.configuration.refactoring.includeHeader.always.description%", - "%c_cpp.configuration.refactoring.includeHeader.ifNeeded.description%", - "%c_cpp.configuration.refactoring.includeHeader.never.description%" - ], - "scope": "resource" - }, - "C_Cpp.renameRequiresIdentifier": { - "type": "boolean", - "default": true, - "markdownDescription": "%c_cpp.configuration.renameRequiresIdentifier.markdownDescription%", - "scope": "application" - }, - "C_Cpp.workspaceSymbols": { - "type": "string", - "enum": [ - "All", - "Just My Code" - ], - "default": "Just My Code", - "description": "%c_cpp.configuration.workspaceSymbols.description%", - "scope": "window" - }, - "C_Cpp.default.includePath": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true, - "markdownDescription": "%c_cpp.configuration.default.includePath.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.default.defines": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true, - "markdownDescription": "%c_cpp.configuration.default.defines.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.default.macFrameworkPath": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true, - "markdownDescription": "%c_cpp.configuration.default.macFrameworkPath.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.default.windowsSdkVersion": { - "type": "string", - "markdownDescription": "%c_cpp.configuration.default.windowsSdkVersion.markdownDescription%", - "pattern": "^((\\d{2}\\.\\d{1}\\.\\d{5}\\.\\d{1}$|^8\\.1)|())$", - "scope": "machine-overridable" - }, - "C_Cpp.default.compileCommands": { - "oneOf": [ - { - "type": "string", - "default": "" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true, - "default": [] - } - ], - "default": [ - "" - ], - "markdownDescription": "%c_cpp.configuration.default.compileCommands.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.default.forcedInclude": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true, - "markdownDescription": "%c_cpp.configuration.default.forcedInclude.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.default.intelliSenseMode": { - "type": "string", - "enum": [ - "", - "macos-clang-x86", - "macos-clang-x64", - "macos-clang-arm", - "macos-clang-arm64", - "macos-gcc-x86", - "macos-gcc-x64", - "macos-gcc-arm", - "macos-gcc-arm64", - "linux-clang-x86", - "linux-clang-x64", - "linux-clang-arm", - "linux-clang-arm64", - "linux-gcc-x86", - "linux-gcc-x64", - "linux-gcc-arm", - "linux-gcc-arm64", - "windows-clang-x86", - "windows-clang-x64", - "windows-clang-arm", - "windows-clang-arm64", - "windows-gcc-x86", - "windows-gcc-x64", - "windows-gcc-arm", - "windows-gcc-arm64", - "windows-msvc-x86", - "windows-msvc-x64", - "windows-msvc-arm", - "windows-msvc-arm64", - "clang-x86", - "clang-x64", - "clang-arm", - "clang-arm64", - "gcc-x86", - "gcc-x64", - "gcc-arm", - "gcc-arm64", - "msvc-x86", - "msvc-x64", - "msvc-arm", - "msvc-arm64" - ], - "markdownDescription": "%c_cpp.configuration.default.intelliSenseMode.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.default.compilerPath": { + "C_Cpp.codeAnalysis.clangTidy.headerFilter": { "type": [ "string", "null" ], "default": null, - "markdownDescription": "%c_cpp.configuration.default.compilerPath.markdownDescription%", - "scope": "machine-overridable" + "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription%", + "scope": "resource" }, - "C_Cpp.default.compilerArgs": { + "C_Cpp.codeAnalysis.clangTidy.args": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, - "markdownDescription": "%c_cpp.configuration.default.compilerArgs.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.default.cStandard": { - "type": "string", - "enum": [ - "", - "c89", - "c99", - "c11", - "c17", - "c23", - "gnu89", - "gnu99", - "gnu11", - "gnu17", - "gnu23" - ], - "markdownDescription": "%c_cpp.configuration.default.cStandard.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.default.cppStandard": { - "type": "string", - "enum": [ - "", - "c++98", - "c++03", - "c++11", - "c++14", - "c++17", - "c++20", - "c++23", - "c++26", - "gnu++98", - "gnu++03", - "gnu++11", - "gnu++14", - "gnu++17", - "gnu++20", - "gnu++23", - "gnu++26" - ], - "markdownDescription": "%c_cpp.configuration.default.cppStandard.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.default.configurationProvider": { - "type": "string", - "markdownDescription": "%c_cpp.configuration.default.configurationProvider.markdownDescription%", + "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.args.markdownDescription%", "scope": "resource" }, - "C_Cpp.default.mergeConfigurations": { + "C_Cpp.codeAnalysis.clangTidy.useBuildPath": { "type": "boolean", "default": false, - "markdownDescription": "%c_cpp.configuration.default.mergeConfigurations.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.default.browse.path": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true, - "default": null, - "markdownDescription": "%c_cpp.configuration.default.browse.path.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.default.browse.databaseFilename": { - "type": "string", - "markdownDescription": "%c_cpp.configuration.default.browse.databaseFilename.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.default.browse.limitSymbolsToIncludedHeaders": { - "type": "boolean", - "default": true, - "markdownDescription": "%c_cpp.configuration.default.browse.limitSymbolsToIncludedHeaders.markdownDescription%", + "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.useBuildPath.markdownDescription%", "scope": "resource" }, - "C_Cpp.default.systemIncludePath": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true, - "markdownDescription": "%c_cpp.configuration.default.systemIncludePath.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.default.customConfigurationVariables": { - "type": [ - "object", - "null" - ], - "default": null, - "patternProperties": { - "(^.+$)": { - "type": "string" - } - }, - "markdownDescription": "%c_cpp.configuration.default.customConfigurationVariables.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.default.enableConfigurationSquiggles": { - "type": "boolean", - "default": true, - "markdownDescription": "%c_cpp.configuration.default.enableConfigurationSquiggles.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.default.dotConfig": { - "type": "string", - "markdownDescription": "%c_cpp.configuration.default.dotConfig.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.default.recursiveIncludes.reduce": { - "type": "string", - "enum": [ - "", - "always", - "never", - "default" - ], - "markdownDescription": "%c_cpp.configuration.default.recursiveIncludes.reduce.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.default.recursiveIncludes.priority": { - "type": "string", - "enum": [ - "", - "beforeSystemIncludes", - "afterSystemIncludes" - ], - "markdownDescription": "%c_cpp.configuration.default.recursiveIncludes.priority.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.default.recursiveIncludes.order": { - "type": "string", - "enum": [ - "", - "depthFirst", - "breadthFirst" - ], - "markdownDescription": "%c_cpp.configuration.default.recursiveIncludes.order.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.configurationWarnings": { - "type": "string", - "enum": [ - "enabled", - "disabled" - ], - "default": "enabled", - "description": "%c_cpp.configuration.configurationWarnings.description%", - "scope": "resource" - }, - "C_Cpp.workspaceParsingPriority": { - "type": "string", - "enum": [ - "highest", - "high", - "medium", - "low" - ], - "default": "highest", - "markdownDescription": "%c_cpp.configuration.workspaceParsingPriority.markdownDescription%", - "scope": "window" - }, - "C_Cpp.intelliSenseEngine": { - "type": "string", - "enum": [ - "default", - "Tag Parser", - "disabled" - ], - "default": "default", - "description": "%c_cpp.configuration.intelliSenseEngine.description%", - "enumDescriptions": [ - "%c_cpp.configuration.intelliSenseEngine.default.description%", - "%c_cpp.configuration.intelliSenseEngine.tagParser.description%", - "%c_cpp.configuration.intelliSenseEngine.disabled.description%" - ], - "scope": "resource" - }, - "C_Cpp.exclusionPolicy": { - "type": "string", - "enum": [ - "checkFolders", - "checkFilesAndFolders" - ], - "default": "checkFolders", - "markdownDescription": "%c_cpp.configuration.exclusionPolicy.markdownDescription%", - "enumDescriptions": [ - "%c_cpp.configuration.exclusionPolicy.checkFolders.description%", - "%c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description%" - ], - "scope": "resource" - }, - "C_Cpp.files.exclude": { - "type": "object", - "markdownDescription": "%c_cpp.configuration.filesExclude.markdownDescription%", - "default": { - "**/.vscode": true, - "**/.vs": true - }, - "additionalProperties": { - "anyOf": [ - { - "type": "boolean", - "markdownDescription": "%c_cpp.configuration.filesExcludeBoolean.markdownDescription%" - }, - { - "type": "object", - "properties": { - "when": { - "type": "string", - "pattern": "\\w*\\$\\(basename\\)\\w*", - "default": "$(basename).ext", - "markdownDescription": "%c_cpp.configuration.filesExcludeWhen.markdownDescription%" - } - } - } - ] - }, - "scope": "resource" - } - } - }, - { - "title": "%c_cpp.subheaders.formatting.title%", - "properties": { - "C_Cpp.vcFormat.indent.braces": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.vcFormat.indent.braces.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.vcFormat.indent.multiLineRelativeTo": { - "type": "string", - "enum": [ - "outermostParenthesis", - "innermostParenthesis", - "statementBegin" - ], - "enumDescriptions": [ - "%c_cpp.configuration.vcFormat.indent.multiLineRelativeTo.outermostParenthesis.description%", - "%c_cpp.configuration.vcFormat.indent.multiLineRelativeTo.innermostParenthesis.description%", - "%c_cpp.configuration.vcFormat.indent.multiLineRelativeTo.statementBegin.description%" - ], - "default": "innermostParenthesis", - "description": "%c_cpp.configuration.vcFormat.indent.multiLineRelativeTo.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.indent.withinParentheses": { - "type": "string", - "enum": [ - "alignToParenthesis", - "indent" - ], - "markdownEnumDescriptions": [ - "%c_cpp.configuration.vcFormat.indent.withinParentheses.alignToParenthesis.markdownDescription%", - "%c_cpp.configuration.vcFormat.indent.withinParentheses.indent.markdownDescription%" - ], - "default": "indent", - "markdownDescription": "%c_cpp.configuration.vcFormat.indent.withinParentheses.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.vcFormat.indent.preserveWithinParentheses": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.indent.preserveWithinParentheses.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.indent.caseLabels": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.vcFormat.indent.caseLabels.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.vcFormat.indent.caseContents": { - "type": "boolean", - "default": true, - "markdownDescription": "%c_cpp.configuration.vcFormat.indent.caseContents.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.vcFormat.indent.caseContentsWhenBlock": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.vcFormat.indent.caseContentsWhenBlock.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.vcFormat.indent.lambdaBracesWhenParameter": { - "type": "boolean", - "default": true, - "markdownDescription": "%c_cpp.configuration.vcFormat.indent.lambdaBracesWhenParameter.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.vcFormat.indent.gotoLabels": { - "type": "string", - "enum": [ - "oneLeft", - "leftmostColumn", - "none" - ], - "markdownEnumDescriptions": [ - "%c_cpp.configuration.vcFormat.indent.gotoLabels.oneLeft.markdownDescription%", - "%c_cpp.configuration.vcFormat.indent.gotoLabels.leftmostColumn.markdownDescription%", - "%c_cpp.configuration.vcFormat.indent.gotoLabels.none.markdownDescription%" - ], - "default": "oneLeft", - "description": "%c_cpp.configuration.vcFormat.indent.gotoLabels.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.indent.preprocessor": { - "type": "string", - "enum": [ - "oneLeft", - "leftmostColumn", - "none" - ], - "markdownEnumDescriptions": [ - "%c_cpp.configuration.vcFormat.indent.preprocessor.oneLeft.markdownDescription%", - "%c_cpp.configuration.vcFormat.indent.preprocessor.leftmostColumn.markdownDescription%", - "%c_cpp.configuration.vcFormat.indent.preprocessor.none.markdownDescription%" - ], - "default": "leftmostColumn", - "description": "%c_cpp.configuration.vcFormat.indent.preprocessor.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.indent.accessSpecifiers": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.vcFormat.indent.accessSpecifiers.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.vcFormat.indent.namespaceContents": { - "type": "boolean", - "default": true, - "markdownDescription": "%c_cpp.configuration.vcFormat.indent.namespaceContents.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.vcFormat.indent.preserveComments": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.indent.preserveComments.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.newLine.beforeOpenBrace.namespace": { - "type": "string", - "enum": [ - "newLine", - "sameLine", - "ignore" - ], - "enumDescriptions": [ - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.newLine.description%", - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.sameLine.description%", - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.ignore.description%" - ], - "default": "ignore", - "description": "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.namespace.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.newLine.beforeOpenBrace.type": { - "type": "string", - "enum": [ - "newLine", - "sameLine", - "ignore" - ], - "enumDescriptions": [ - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.newLine.description%", - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.sameLine.description%", - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.ignore.description%" - ], - "default": "ignore", - "description": "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.type.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.newLine.beforeOpenBrace.function": { - "type": "string", - "enum": [ - "newLine", - "sameLine", - "ignore" - ], - "enumDescriptions": [ - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.newLine.description%", - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.sameLine.description%", - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.ignore.description%" - ], - "default": "ignore", - "description": "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.function.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.newLine.beforeOpenBrace.block": { - "type": "string", - "enum": [ - "newLine", - "sameLine", - "ignore" - ], - "enumDescriptions": [ - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.newLine.description%", - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.sameLine.description%", - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.ignore.description%" - ], - "default": "ignore", - "description": "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.block.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.newLine.beforeOpenBrace.lambda": { - "type": "string", - "enum": [ - "newLine", - "sameLine", - "ignore" - ], - "enumDescriptions": [ - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.newLine.description%", - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.sameLine.description%", - "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.ignore.description%" - ], - "default": "ignore", - "description": "%c_cpp.configuration.vcFormat.newLine.beforeOpenBrace.lambda.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.newLine.scopeBracesOnSeparateLines": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.newLine.scopeBracesOnSeparateLines.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.newLine.closeBraceSameLine.emptyType": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.newLine.closeBraceSameLine.emptyType.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.newLine.closeBraceSameLine.emptyFunction": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.newLine.closeBraceSameLine.emptyFunction.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.newLine.beforeCatch": { - "type": "boolean", - "default": true, - "markdownDescription": "%c_cpp.configuration.vcFormat.newLine.beforeCatch.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.vcFormat.newLine.beforeElse": { - "type": "boolean", - "default": true, - "markdownDescription": "%c_cpp.configuration.vcFormat.newLine.beforeElse.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.vcFormat.newLine.beforeWhileInDoWhile": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.vcFormat.newLine.beforeWhileInDoWhile.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.beforeFunctionOpenParenthesis": { - "type": "string", - "enum": [ - "insert", - "remove", - "ignore" - ], - "enumDescriptions": [ - "%c_cpp.configuration.vcFormat.space.beforeFunctionOpenParenthesis.insert.description%", - "%c_cpp.configuration.vcFormat.space.beforeFunctionOpenParenthesis.remove.description%", - "%c_cpp.configuration.vcFormat.space.beforeFunctionOpenParenthesis.ignore.description%" - ], - "default": "remove", - "description": "%c_cpp.configuration.vcFormat.space.beforeFunctionOpenParenthesis.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.withinParameterListParentheses": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.withinParameterListParentheses.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.betweenEmptyParameterListParentheses": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.betweenEmptyParameterListParentheses.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.afterKeywordsInControlFlowStatements": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.vcFormat.space.afterKeywordsInControlFlowStatements.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.withinControlFlowStatementParentheses": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.withinControlFlowStatementParentheses.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.beforeLambdaOpenParenthesis": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.beforeLambdaOpenParenthesis.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.withinCastParentheses": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.withinCastParentheses.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.afterCastCloseParenthesis": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.afterCastCloseParenthesis.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.withinExpressionParentheses": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.withinExpressionParentheses.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.beforeBlockOpenBrace": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.vcFormat.space.beforeBlockOpenBrace.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.betweenEmptyBraces": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.betweenEmptyBraces.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.beforeInitializerListOpenBrace": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.beforeInitializerListOpenBrace.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.withinInitializerListBraces": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.vcFormat.space.withinInitializerListBraces.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.preserveInInitializerList": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.vcFormat.space.preserveInInitializerList.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.beforeOpenSquareBracket": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.beforeOpenSquareBracket.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.withinSquareBrackets": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.withinSquareBrackets.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.beforeEmptySquareBrackets": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.beforeEmptySquareBrackets.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.betweenEmptySquareBrackets": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.betweenEmptySquareBrackets.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.groupSquareBrackets": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.vcFormat.space.groupSquareBrackets.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.withinLambdaBrackets": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.withinLambdaBrackets.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.betweenEmptyLambdaBrackets": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.betweenEmptyLambdaBrackets.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.beforeComma": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.beforeComma.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.afterComma": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.vcFormat.space.afterComma.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.removeAroundMemberOperators": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.vcFormat.space.removeAroundMemberOperators.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.beforeInheritanceColon": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.vcFormat.space.beforeInheritanceColon.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.beforeConstructorColon": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.vcFormat.space.beforeConstructorColon.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.removeBeforeSemicolon": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.vcFormat.space.removeBeforeSemicolon.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.insertAfterSemicolon": { - "type": "boolean", - "default": false, - "description": "%c_cpp.configuration.vcFormat.space.insertAfterSemicolon.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.removeAroundUnaryOperator": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.vcFormat.space.removeAroundUnaryOperator.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.aroundBinaryOperator": { - "type": "string", - "enum": [ - "insert", - "remove", - "ignore" - ], - "enumDescriptions": [ - "%c_cpp.configuration.vcFormat.space.aroundOperators.insert.description%", - "%c_cpp.configuration.vcFormat.space.aroundOperators.remove.description%", - "%c_cpp.configuration.vcFormat.space.aroundOperators.ignore.description%" - ], - "default": "insert", - "description": "%c_cpp.configuration.vcFormat.space.aroundBinaryOperator.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.aroundAssignmentOperator": { - "type": "string", - "enum": [ - "insert", - "remove", - "ignore" - ], - "enumDescriptions": [ - "%c_cpp.configuration.vcFormat.space.aroundOperators.insert.description%", - "%c_cpp.configuration.vcFormat.space.aroundOperators.remove.description%", - "%c_cpp.configuration.vcFormat.space.aroundOperators.ignore.description%" - ], - "default": "insert", - "description": "%c_cpp.configuration.vcFormat.space.aroundAssignmentOperator.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.pointerReferenceAlignment": { - "type": "string", - "enum": [ - "left", - "center", - "right", - "ignore" - ], - "enumDescriptions": [ - "%c_cpp.configuration.vcFormat.space.pointerReferenceAlignment.left.description%", - "%c_cpp.configuration.vcFormat.space.pointerReferenceAlignment.center.description%", - "%c_cpp.configuration.vcFormat.space.pointerReferenceAlignment.right.description%", - "%c_cpp.configuration.vcFormat.space.pointerReferenceAlignment.ignore.description%" - ], - "default": "left", - "description": "%c_cpp.configuration.vcFormat.space.pointerReferenceAlignment.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.space.aroundTernaryOperator": { - "type": "string", - "enum": [ - "insert", - "remove", - "ignore" - ], - "enumDescriptions": [ - "%c_cpp.configuration.vcFormat.space.aroundOperators.insert.description%", - "%c_cpp.configuration.vcFormat.space.aroundOperators.remove.description%", - "%c_cpp.configuration.vcFormat.space.aroundOperators.ignore.description%" - ], - "default": "insert", - "description": "%c_cpp.configuration.vcFormat.space.aroundTernaryOperator.description%", - "scope": "resource" - }, - "C_Cpp.vcFormat.wrap.preserveBlocks": { - "type": "string", - "enum": [ - "oneLiners", - "allOneLineScopes", - "never" - ], - "markdownEnumDescriptions": [ - "%c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription%", - "%c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription%", - "%c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription%" - ], - "default": "oneLiners", - "description": "%c_cpp.configuration.vcFormat.wrap.preserveBlocks.description%", - "scope": "resource" - }, - "C_Cpp.clang_format_path": { - "type": "string", - "markdownDescription": "%c_cpp.configuration.clang_format_path.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.clang_format_style": { - "type": "string", - "default": "file", - "markdownDescription": "%c_cpp.configuration.clang_format_style.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.formatting": { - "type": "string", - "enum": [ - "clangFormat", - "vcFormat", - "default", - "disabled" - ], - "markdownEnumDescriptions": [ - "%c_cpp.configuration.formatting.clangFormat.markdownDescription%", - "%c_cpp.configuration.formatting.vcFormat.markdownDescription%", - "%c_cpp.configuration.formatting.Default.markdownDescription%", - "%c_cpp.configuration.formatting.Disabled.markdownDescription%" - ], - "default": "default", - "description": "%c_cpp.configuration.formatting.description%", - "scope": "resource" - }, - "C_Cpp.clang_format_fallbackStyle": { - "type": "string", - "default": "Visual Studio", - "markdownDescription": "%c_cpp.configuration.clang_format_fallbackStyle.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.clang_format_sortIncludes": { - "type": [ - "boolean", - "null" - ], - "enum": [ - true, - false, - null - ], - "default": null, - "markdownDescription": "%c_cpp.configuration.clang_format_sortIncludes.markdownDescription%", - "scope": "resource" - } - } - }, - { - "title": "%c_cpp.subheaders.codeDocumentation.title%", - "properties": { - "C_Cpp.doxygen.generateOnType": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.doxygen.generateOnType.description%", - "scope": "resource" - }, - "C_Cpp.doxygen.generateOnCodeAction": { - "type": "boolean", - "default": true, - "description": "%c_cpp.configuration.doxygen.generateOnCodeAction.description%", - "scope": "resource" - }, - "C_Cpp.doxygen.generatedStyle": { - "type": "string", - "enum": [ - "///", - "/**", - "/*!", - "//!" - ], - "default": "///", - "description": "%c_cpp.configuration.doxygen.generatedStyle.description%", - "scope": "resource" - }, - "C_Cpp.doxygen.sectionTags": { - "type": "array", - "default": [ - "attention", - "important", - "tparam", - "param", - "result", - "returns", - "retval", - "exception", - "deprecated", - "warning", - "note" - ], - "items": { - "type": "string", - "enum": [ - "attention", - "author", - "authors", - "bug", - "copyright", - "date", - "deprecated", - "details", - "exception", - "important", - "invariant", - "note", - "param", - "pre", - "post", - "remark", - "remarks", - "result", - "returns", - "retval", - "sa", - "see", - "since", - "tparam", - "test", - "todo", - "version", - "warning" - ] - }, - "description": "%c_cpp.configuration.doxygen.sectionTags.description%", - "scope": "resource" - }, - "C_Cpp.commentContinuationPatterns": { - "type": "array", - "default": [ - "/**" - ], - "items": { - "anyOf": [ - { - "type": "string", - "markdownDescription": "%c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription%" - }, - { - "type": "object", - "properties": { - "begin": { - "type": "string", - "description": "%c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description%" - }, - "continue": { - "type": "string", - "description": "%c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description%" - } - } - } - ] - }, - "uniqueItems": true, - "description": "%c_cpp.configuration.commentContinuationPatterns.description%", - "scope": "window" - }, - "C_Cpp.markdownInComments": { - "type": "string", - "enum": [ - "subsetEnabled", - "enabled", - "disabled" - ], - "enumDescriptions": [ - "%c_cpp.configuration.markdownInComments.subsetEnabled.description%", - "%c_cpp.configuration.markdownInComments.enabled.description%", - "%c_cpp.configuration.markdownInComments.disabled.description%" - ], - "default": "subsetEnabled", - "description": "%c_cpp.configuration.markdownInComments.description%", - "scope": "resource" - }, - "C_Cpp.simplifyStructuredComments": { - "type": "boolean", - "default": true, - "markdownDescription": "%c_cpp.configuration.simplifyStructuredComments.markdownDescription%", - "scope": "application" - } - } - }, - { - "title": "%c_cpp.subheaders.codeAnalysis.title%", - "properties": { - "C_Cpp.codeAnalysis.maxConcurrentThreads": { - "type": [ - "integer", - "null" - ], - "markdownDescription": "%c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription%", - "default": null, - "minimum": 1, - "maximum": 32, - "scope": "machine" - }, - "C_Cpp.codeAnalysis.maxMemory": { - "type": [ - "integer", - "null" - ], - "markdownDescription": "%c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription%", - "default": null, - "minimum": 256, - "maximum": 65536, - "scope": "machine" - }, - "C_Cpp.codeAnalysis.updateDelay": { - "type": "number", - "default": 2000, - "markdownDescription": "%c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription%", - "scope": "application", - "minimum": 0, - "maximum": 6000 - }, - "C_Cpp.codeAnalysis.exclude": { - "type": "object", - "markdownDescription": "%c_cpp.configuration.codeAnalysis.exclude.markdownDescription%", - "default": {}, - "additionalProperties": { - "anyOf": [ - { - "type": "boolean", - "markdownDescription": "%c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription%" - }, - { - "type": "object", - "properties": { - "when": { - "type": "string", - "pattern": "\\w*\\$\\(basename\\)\\w*", - "default": "$(basename).ext", - "markdownDescription": "%c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription%" - } - } - } - ] - }, - "scope": "resource" - }, - "C_Cpp.codeAnalysis.clangTidy.codeAction.formatFixes": { - "type": "boolean", - "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription%", - "default": true, - "scope": "resource" - }, - "C_Cpp.codeAnalysis.clangTidy.codeAction.showClear": { - "type": "string", - "description": "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description%", - "enum": [ - "None", - "AllOnly", - "AllAndAllType", - "AllAndAllTypeAndThis" - ], - "enumDescriptions": [ - "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.None.description%", - "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description%", - "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description%", - "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description%" - ], - "default": "AllAndAllTypeAndThis", - "scope": "application" - }, - "C_Cpp.codeAnalysis.clangTidy.codeAction.showDisable": { - "type": "boolean", - "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription%", - "default": true, - "scope": "application" - }, - "C_Cpp.codeAnalysis.clangTidy.codeAction.showDocumentation": { - "type": "boolean", - "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription%", - "default": true, - "scope": "application" - }, - "C_Cpp.codeAnalysis.runAutomatically": { - "type": "boolean", - "markdownDescription": "%c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription%", - "default": true, - "scope": "resource" - }, - "C_Cpp.codeAnalysis.clangTidy.enabled": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.codeAnalysis.clangTidy.path": { - "type": "string", - "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription%", - "scope": "machine-overridable" - }, - "C_Cpp.codeAnalysis.clangTidy.config": { - "type": "string", - "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.codeAnalysis.clangTidy.fallbackConfig": { - "type": "string", - "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.codeAnalysis.clangTidy.headerFilter": { - "type": [ - "string", - "null" - ], - "default": null, - "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.codeAnalysis.clangTidy.args": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true, - "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.args.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.codeAnalysis.clangTidy.useBuildPath": { - "type": "boolean", - "default": false, - "markdownDescription": "%c_cpp.configuration.codeAnalysis.clangTidy.useBuildPath.markdownDescription%", - "scope": "resource" - }, - "C_Cpp.codeAnalysis.clangTidy.checks.enabled": { + "C_Cpp.codeAnalysis.clangTidy.checks.enabled": { "type": "array", "items": { "type": "string", @@ -5771,648 +5474,246 @@ "description": "%c_cpp.debuggers.deploySteps.ssh.description%", "default": "", "enum": [ - "ssh" - ] - }, - "host": { - "anyOf": [ - { - "type": "string", - "description": "%c_cpp.debuggers.host.description%", - "default": "hello@microsoft.com" - }, - { - "type": "object", - "description": "%c_cpp.debuggers.host.description%", - "default": {}, - "required": [ - "hostName" - ], - "properties": { - "user": { - "type": "string", - "description": "%c_cpp.debuggers.host.user.description%", - "default": "" - }, - "hostName": { - "type": "string", - "description": "%c_cpp.debuggers.host.hostName.description%", - "default": "" - }, - "port": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "pattern": "^\\d+$|^\\${.+}$" - } - ], - "description": "%c_cpp.debuggers.host.port.description%", - "default": 22 - }, - "jumpHosts": { - "type": "array", - "description": "%c_cpp.debuggers.host.jumpHost.description%", - "items": { - "type": "object", - "default": {}, - "required": [ - "hostName" - ], - "properties": { - "user": { - "type": "string", - "description": "%c_cpp.debuggers.host.user.description%", - "default": "" - }, - "hostName": { - "type": "string", - "description": "%c_cpp.debuggers.host.hostName.description%", - "default": "" - }, - "port": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "pattern": "^\\d+$|^\\${.+}$" - } - ], - "description": "%c_cpp.debuggers.host.port.description%", - "default": 22 - } - } - } - }, - "localForwards": { - "type": "array", - "description": "%c_cpp.debuggers.host.localForward.description%", - "items": { - "type": "object", - "default": {}, - "properties": { - "bindAddress": { - "type": "string", - "description": "%c_cpp.debuggers.host.localForward.bindAddress.description%", - "default": "" - }, - "port": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "pattern": "^\\d+$|^\\${.+}$" - } - ], - "description": "%c_cpp.debuggers.host.localForward.port.description%" - }, - "host": { - "type": "string", - "description": "%c_cpp.debuggers.host.localForward.host.description%", - "default": "" - }, - "hostPort": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "pattern": "^\\d+$|^\\${.+}$" - } - ], - "description": "%c_cpp.debuggers.host.localForward.hostPort.description%" - }, - "localSocket": { - "type": "string", - "description": "%c_cpp.debuggers.host.localForward.localSocket.description%", - "default": "" - }, - "remoteSocket": { - "type": "string", - "description": "%c_cpp.debuggers.host.localForward.remoteSocket.description%", - "default": "" - } - } - } - } - } - } - ] - }, - "command": { - "type": "string", - "description": "%c_cpp.debuggers.deploySteps.ssh.command.description%", - "default": "" - }, - "sshPath": { - "type": "string", - "description": "%c_cpp.debuggers.deploySteps.ssh.sshPath.description%", - "default": "" - }, - "continueOn": { - "type": "string", - "description": "%c_cpp.debuggers.deploySteps.continueOn.description%", - "default": "" - }, - "debug": { - "type": "boolean", - "description": "%c_cpp.debuggers.deploySteps.debug%" - } - } - }, - { - "type": "object", - "description": "%c_cpp.debuggers.deploySteps.shell.description%", - "default": {}, - "required": [ - "type", - "command" - ], - "properties": { - "type": { - "type": "string", - "description": "%c_cpp.debuggers.deploySteps.shell.description%", - "default": "", - "enum": [ - "shell" - ] - }, - "command": { - "type": "string", - "description": "%c_cpp.debuggers.deploySteps.shell.command.description%", - "default": "" - }, - "continueOn": { - "type": "string", - "description": "%c_cpp.debuggers.deploySteps.continueOn.description%", - "default": "" - }, - "debug": { - "type": "boolean", - "description": "%c_cpp.debuggers.deploySteps.debug%" - } - } - }, - { - "type": "object", - "description": "%c_cpp.debuggers.vsCodeCommand.description%", - "default": {}, - "required": [ - "type", - "command" - ], - "properties": { - "type": { - "type": "string", - "description": "%c_cpp.debuggers.vsCodeCommand.description%", - "default": "", - "enum": [ - "command" + "ssh" ] }, - "command": { - "type": "string", - "description": "%c_cpp.debuggers.vsCodeCommand.command.description%", - "default": "" - }, - "args": { - "type": "array", - "description": "%c_cpp.debuggers.vsCodeCommand.args.description%", - "items": { - "type": "string" - } - } - } - } - ] - }, - "default": [] - } - } - } - } - }, - { - "type": "cppvsdbg", - "label": "C++ (Windows)", - "when": "workspacePlatform == windows", - "languages": [ - "c", - "cpp", - "cuda-cpp", - "rust" - ], - "_aiKeyComment": "Ignore 'Property aiKey is not allowed'. See https://github.com/microsoft/vscode/issues/76493", - "aiKey": "0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255", - "variables": { - "pickProcess": "extension.pickNativeProcess" - }, - "configurationAttributes": { - "launch": { - "type": "object", - "required": [ - "program", - "cwd" - ], - "properties": { - "program": { - "type": "string", - "description": "%c_cpp.debuggers.program.description%", - "default": "${workspaceRoot}/program.exe" - }, - "args": { - "type": "array", - "description": "%c_cpp.debuggers.args.description%", - "items": { - "type": "string" - }, - "default": [] - }, - "cwd": { - "type": "string", - "description": "%c_cpp.debuggers.cwd.description%", - "default": "${workspaceRoot}" - }, - "environment": { - "type": "array", - "description": "%c_cpp.debuggers.environment.description%", - "items": { - "type": "object", - "default": {}, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - } - }, - "default": [] - }, - "envFile": { - "type": "string", - "description": "%c_cpp.debuggers.envFile.description%", - "default": "${workspaceFolder}/.env" - }, - "symbolSearchPath": { - "type": "string", - "description": "%c_cpp.debuggers.symbolSearchPath.description%", - "default": "" - }, - "stopAtEntry": { - "type": "boolean", - "markdownDescription": "%c_cpp.debuggers.stopAtEntry.markdownDescription%", - "default": false - }, - "dumpPath": { - "type": "string", - "description": "%c_cpp.debuggers.dumpPath.description%", - "default": "" - }, - "visualizerFile": { - "type": "string", - "description": "%c_cpp.debuggers.cppvsdbg.visualizerFile.description%", - "default": "" - }, - "externalConsole": { - "type": "boolean", - "description": "%c_cpp.debuggers.cppvsdbg.externalConsole.description%", - "default": false - }, - "console": { - "type": "string", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal", - "newExternalWindow" - ], - "enumDescriptions": [ - "%c_cpp.debuggers.cppvsdbg.console.internalConsole.description%", - "%c_cpp.debuggers.cppvsdbg.console.integratedTerminal.description%", - "%c_cpp.debuggers.cppvsdbg.console.externalTerminal.description%", - "%c_cpp.debuggers.cppvsdbg.console.newExternalWindow.description%" - ], - "description": "%c_cpp.debuggers.cppvsdbg.console.description%", - "default": "internalConsole" - }, - "sourceFileMap": { - "type": "object", - "markdownDescription": "%c_cpp.debuggers.sourceFileMap.markdownDescription%", - "default": { - "": "" - } - }, - "enableDebugHeap": { - "type": "boolean", - "description": "%c_cpp.debuggers.enableDebugHeap.description%", - "default": false - }, - "logging": { - "type": "object", - "description": "%c_cpp.debuggers.logging.description%", - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "%c_cpp.debuggers.logging.exceptions.description%", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "%c_cpp.debuggers.logging.moduleLoad.description%", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "%c_cpp.debuggers.logging.programOutput.description%", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "%c_cpp.debuggers.logging.engineLogging.description%", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "%c_cpp.debuggers.cppvsdbg.logging.threadExit.description%", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "%c_cpp.debuggers.cppvsdbg.logging.processExit.description%", - "default": true - } - } - }, - "requireExactSource": { - "type": "boolean", - "description": "%c_cpp.debuggers.requireExactSource.description%", - "default": true - }, - "symbolOptions": { - "description": "%c_cpp.debuggers.symbolOptions.description%", - "default": { - "searchPaths": [], - "searchMicrosoftSymbolServer": false - }, - "type": "object", - "properties": { - "searchPaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "%c_cpp.debuggers.VSSymbolOptions.searchPaths.description%", - "default": [] - }, - "searchMicrosoftSymbolServer": { - "type": "boolean", - "description": "%c_cpp.debuggers.VSSymbolOptions.searchMicrosoftSymbolServer.description%", - "default": false - }, - "cachePath": { - "type": "string", - "description": "%c_cpp.debuggers.VSSymbolOptions.cachePath.description%", - "default": "%TEMP%\\SymbolCache" - }, - "moduleFilter": { - "description": "%c_cpp.debuggers.VSSymbolOptions.moduleFilter.description%", - "default": { - "mode": "loadAllButExcluded", - "excludedModules": [] - }, - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "type": "string", - "enum": [ - "loadAllButExcluded", - "loadOnlyIncluded" - ], - "enumDescriptions": [ - "%c_cpp.debuggers.VSSymbolOptionsModuleFilter.mode.loadAllButExcluded.enumDescriptions%", - "%c_cpp.debuggers.VSSymbolOptionsModuleFilter.mode.loadOnlyIncluded.enumDescriptions%" - ], - "description": "%c_cpp.debuggers.VSSymbolOptionsModuleFilter.mode.description%", - "default": "loadAllButExcluded" - }, - "excludedModules": { - "type": "array", - "items": { - "type": "string" + "host": { + "anyOf": [ + { + "type": "string", + "description": "%c_cpp.debuggers.host.description%", + "default": "hello@microsoft.com" + }, + { + "type": "object", + "description": "%c_cpp.debuggers.host.description%", + "default": {}, + "required": [ + "hostName" + ], + "properties": { + "user": { + "type": "string", + "description": "%c_cpp.debuggers.host.user.description%", + "default": "" + }, + "hostName": { + "type": "string", + "description": "%c_cpp.debuggers.host.hostName.description%", + "default": "" + }, + "port": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string", + "pattern": "^\\d+$|^\\${.+}$" + } + ], + "description": "%c_cpp.debuggers.host.port.description%", + "default": 22 + }, + "jumpHosts": { + "type": "array", + "description": "%c_cpp.debuggers.host.jumpHost.description%", + "items": { + "type": "object", + "default": {}, + "required": [ + "hostName" + ], + "properties": { + "user": { + "type": "string", + "description": "%c_cpp.debuggers.host.user.description%", + "default": "" + }, + "hostName": { + "type": "string", + "description": "%c_cpp.debuggers.host.hostName.description%", + "default": "" + }, + "port": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string", + "pattern": "^\\d+$|^\\${.+}$" + } + ], + "description": "%c_cpp.debuggers.host.port.description%", + "default": 22 + } + } + } + }, + "localForwards": { + "type": "array", + "description": "%c_cpp.debuggers.host.localForward.description%", + "items": { + "type": "object", + "default": {}, + "properties": { + "bindAddress": { + "type": "string", + "description": "%c_cpp.debuggers.host.localForward.bindAddress.description%", + "default": "" + }, + "port": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string", + "pattern": "^\\d+$|^\\${.+}$" + } + ], + "description": "%c_cpp.debuggers.host.localForward.port.description%" + }, + "host": { + "type": "string", + "description": "%c_cpp.debuggers.host.localForward.host.description%", + "default": "" + }, + "hostPort": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string", + "pattern": "^\\d+$|^\\${.+}$" + } + ], + "description": "%c_cpp.debuggers.host.localForward.hostPort.description%" + }, + "localSocket": { + "type": "string", + "description": "%c_cpp.debuggers.host.localForward.localSocket.description%", + "default": "" + }, + "remoteSocket": { + "type": "string", + "description": "%c_cpp.debuggers.host.localForward.remoteSocket.description%", + "default": "" + } + } + } + } + } + } + ] }, - "description": "%c_cpp.debuggers.VSSymbolOptionsModuleFilter.excludedModules.description%", - "default": [] - }, - "includedModules": { - "type": "array", - "items": { - "type": "string" + "command": { + "type": "string", + "description": "%c_cpp.debuggers.deploySteps.ssh.command.description%", + "default": "" }, - "description": "%c_cpp.debuggers.VSSymbolOptionsModuleFilter.includedModules.description%", - "default": [ - "MyExampleModule.dll" - ] - }, - "includeSymbolsNextToModules": { - "type": "boolean", - "description": "%c_cpp.debuggers.VSSymbolOptionsModuleFilter.includeSymbolsNextToModules.description%", - "default": true + "sshPath": { + "type": "string", + "description": "%c_cpp.debuggers.deploySteps.ssh.sshPath.description%", + "default": "" + }, + "continueOn": { + "type": "string", + "description": "%c_cpp.debuggers.deploySteps.continueOn.description%", + "default": "" + }, + "debug": { + "type": "boolean", + "description": "%c_cpp.debuggers.deploySteps.debug%" + } } - } - } - } - }, - "ignoreRunWithoutDebuggingWarnings": { - "type": "boolean", - "description": "%c_cpp.debuggers.ignoreRunWithoutDebuggingWarnings.description%", - "default": false - } - } - }, - "attach": { - "type": "object", - "default": {}, - "required": [], - "properties": { - "symbolSearchPath": { - "type": "string", - "description": "%c_cpp.debuggers.symbolSearchPath.description%", - "default": "" - }, - "program": { - "type": "string", - "markdownDescription": "%c_cpp.debuggers.program.attach.markdownDescription%" - }, - "processId": { - "markdownDescription": "%c_cpp.debuggers.processId.anyOf.markdownDescription%", - "anyOf": [ - { - "type": "string", - "default": "${command:pickProcess}" - }, - { - "type": "integer", - "default": 0 - } - ] - }, - "visualizerFile": { - "type": "string", - "description": "%c_cpp.debuggers.cppvsdbg.visualizerFile.description%", - "default": "" - }, - "sourceFileMap": { - "type": "object", - "markdownDescription": "%c_cpp.debuggers.sourceFileMap.markdownDescription%", - "default": { - "": "" - } - }, - "logging": { - "type": "object", - "description": "%c_cpp.debuggers.logging.description%", - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "%c_cpp.debuggers.logging.exceptions.description%", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "%c_cpp.debuggers.logging.moduleLoad.description%", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "%c_cpp.debuggers.logging.programOutput.description%", - "default": true - }, - "trace": { - "type": "boolean", - "description": "%c_cpp.debuggers.logging.trace.description%", - "default": false - } - } - }, - "requireExactSource": { - "type": "boolean", - "description": "%c_cpp.debuggers.requireExactSource.description%", - "default": true - }, - "symbolOptions": { - "description": "%c_cpp.debuggers.symbolOptions.description%", - "default": { - "searchPaths": [], - "searchMicrosoftSymbolServer": false - }, - "type": "object", - "properties": { - "searchPaths": { - "type": "array", - "items": { - "type": "string" }, - "description": "%c_cpp.debuggers.VSSymbolOptions.searchPaths.description%", - "default": [] - }, - "searchMicrosoftSymbolServer": { - "type": "boolean", - "description": "%c_cpp.debuggers.VSSymbolOptions.searchMicrosoftSymbolServer.description%", - "default": false - }, - "cachePath": { - "type": "string", - "description": "%c_cpp.debuggers.VSSymbolOptions.cachePath.description%", - "default": "%TEMP%\\SymbolCache" - }, - "moduleFilter": { - "description": "%c_cpp.debuggers.VSSymbolOptions.moduleFilter.description%", - "default": { - "mode": "loadAllButExcluded", - "excludedModules": [] + { + "type": "object", + "description": "%c_cpp.debuggers.deploySteps.shell.description%", + "default": {}, + "required": [ + "type", + "command" + ], + "properties": { + "type": { + "type": "string", + "description": "%c_cpp.debuggers.deploySteps.shell.description%", + "default": "", + "enum": [ + "shell" + ] + }, + "command": { + "type": "string", + "description": "%c_cpp.debuggers.deploySteps.shell.command.description%", + "default": "" + }, + "continueOn": { + "type": "string", + "description": "%c_cpp.debuggers.deploySteps.continueOn.description%", + "default": "" + }, + "debug": { + "type": "boolean", + "description": "%c_cpp.debuggers.deploySteps.debug%" + } + } }, - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "type": "string", - "enum": [ - "loadAllButExcluded", - "loadOnlyIncluded" - ], - "enumDescriptions": [ - "%c_cpp.debuggers.VSSymbolOptionsModuleFilter.mode.loadAllButExcluded.enumDescriptions%", - "%c_cpp.debuggers.VSSymbolOptionsModuleFilter.mode.loadOnlyIncluded.enumDescriptions%" - ], - "description": "%c_cpp.debuggers.VSSymbolOptionsModuleFilter.mode.description%", - "default": "loadAllButExcluded" - }, - "excludedModules": { - "type": "array", - "items": { - "type": "string" + { + "type": "object", + "description": "%c_cpp.debuggers.vsCodeCommand.description%", + "default": {}, + "required": [ + "type", + "command" + ], + "properties": { + "type": { + "type": "string", + "description": "%c_cpp.debuggers.vsCodeCommand.description%", + "default": "", + "enum": [ + "command" + ] }, - "description": "%c_cpp.debuggers.VSSymbolOptionsModuleFilter.excludedModules.description%", - "default": [] - }, - "includedModules": { - "type": "array", - "items": { - "type": "string" + "command": { + "type": "string", + "description": "%c_cpp.debuggers.vsCodeCommand.command.description%", + "default": "" }, - "description": "%c_cpp.debuggers.VSSymbolOptionsModuleFilter.includedModules.description%", - "default": [ - "MyExampleModule.dll" - ] - }, - "includeSymbolsNextToModules": { - "type": "boolean", - "description": "%c_cpp.debuggers.VSSymbolOptionsModuleFilter.includeSymbolsNextToModules.description%", - "default": true + "args": { + "type": "array", + "description": "%c_cpp.debuggers.vsCodeCommand.args.description%", + "items": { + "type": "string" + } + } } } - } - } + ] + }, + "default": [] } } } } - } - ], - "breakpoints": [ - { - "language": "ada" - }, - { - "language": "c" - }, - { - "language": "cpp" - }, - { - "language": "cuda-cpp" - }, - { - "language": "cuda" }, { - "language": "rust" + "type": "cppvsdbg", + "label": "C++ (Windows)", + "when": "workspacePlatform == windows", + "languages": [ + "c", + "cpp", + "cuda-cpp", + "rust" + ], + "description": "One or more problem matchers to use to detect compiler errors and warnings in task output." + } } ], "jsonValidation": [ diff --git a/Extension/release.hornet.js b/Extension/release.hornet.js new file mode 100644 index 000000000..15e787430 --- /dev/null +++ b/Extension/release.hornet.js @@ -0,0 +1,74 @@ +const fs = require('fs'); +const path = require('path'); +const { spawnSync } = require('child_process'); + +// These are VSIX target identifiers, not npm's host CPU/OS installation filters. +const targets = Object.freeze([ + 'win32-x64', 'win32-arm64', 'linux-x64', 'linux-arm64', 'linux-armhf', + 'darwin-x64', 'darwin-arm64', 'alpine-x64', 'alpine-arm64' +]); + +function plan(args, manifest = require('./package.json')) { + const options = { command: args[0], targets: ['universal'], preRelease: false, files: [], dryRun: false }; + for (let i = 1; i < args.length; i++) { + switch (args[i]) { + case '--all': options.targets = ['universal', ...targets]; break; + case '--target': { + const target = args[++i]; + if (target !== 'universal' && !targets.includes(target)) { throw new Error(`Unsupported target: ${target}`); } + options.targets = [target]; break; + } + case '--pre-release': options.preRelease = true; break; + case '--dry-run': options.dryRun = true; break; + case '--vsix': { + const file = args[++i]; + if (!file || !file.endsWith('.vsix')) { throw new Error('--vsix requires a VSIX file'); } + options.files.push(path.resolve(file)); break; + } + default: throw new Error(`Unknown option: ${args[i]}`); + } + } + if (!['package', 'marketplace', 'openvsx'].includes(options.command)) { throw new Error('Expected package, marketplace or openvsx'); } + if (options.command !== 'package' && !options.files.length) { throw new Error('Publish an already reviewed package using --vsix .'); } + options.outputs = options.targets.map(target => ({ target, + file: path.join('artifacts', `${manifest.name}-${manifest.version}-${target}${options.preRelease ? '-pre-release' : ''}.vsix`) + })); + return options; +} + +function run(cli, args) { + const result = spawnSync(process.execPath, [cli, ...args], { cwd: __dirname, stdio: 'inherit', shell: false, windowsHide: true }); + if (result.error) { throw result.error; } + if (result.status !== 0) { throw new Error(`Release tool exited with ${result.status}`); } +} + +function main(args) { + const options = plan(args); + if (options.dryRun) { console.log(JSON.stringify(options, null, 2)); return; } + const vsce = path.join(path.dirname(require.resolve('@vscode/vsce/package.json')), 'vsce'); + if (options.command === 'package') { + fs.mkdirSync(path.join(__dirname, 'artifacts'), { recursive: true }); + for (const output of options.outputs) { + run(vsce, ['package', '--no-dependencies', '--no-yarn', '--out', output.file, + ...(output.target === 'universal' ? [] : ['--target', output.target]), ...(options.preRelease ? ['--pre-release'] : [])]); + run(path.join(__dirname, 'verify.hornet.js'), [output.file]); + } + } else { + const tokenName = options.command === 'marketplace' ? 'VSCE_PAT' : 'OVSX_PAT'; + if (!process.env[tokenName]) { throw new Error(`Set ${tokenName} in the environment before publishing.`); } + for (const file of options.files) { if (!fs.statSync(file).isFile()) { throw new Error(`Not a package: ${file}`); } } + if (options.command === 'marketplace') { + run(vsce, ['publish', '--packagePath', ...options.files]); + } else { + const directory = path.dirname(require.resolve('ovsx/package.json')); + const manifest = require(path.join(directory, 'package.json')); + const executable = typeof manifest.bin === 'string' ? manifest.bin : manifest.bin.ovsx; + for (const file of options.files) { run(path.join(directory, executable), ['publish', file]); } + } + } +} + +module.exports = { targets, plan }; +if (require.main === module) { + try { main(process.argv.slice(2)); } catch (error) { console.error(error.message); process.exitCode = 1; } +} diff --git a/Extension/src/hornet/api/hornetCppApi.ts b/Extension/src/hornet/api/hornetCppApi.ts new file mode 100644 index 000000000..1b34aa9c6 --- /dev/null +++ b/Extension/src/hornet/api/hornetCppApi.ts @@ -0,0 +1,10 @@ +import type { CompileCommand } from '../compdb/compileCommandsParser'; + +export enum HornetApiVersion { v1 = 1 } +export interface HornetCppApi { + importCompilationDatabase(path: string, workspaceUri?: string): Promise; + importCompilationDatabases(paths: string[], workspaceUri?: string): Promise; + refreshIndex(workspaceUri?: string): Promise; + getCompileCommand(file: string): Promise; +} +export interface HornetCppExports { getApi(version: HornetApiVersion): HornetCppApi; } diff --git a/Extension/src/hornet/compdb/compileCommandsManager.ts b/Extension/src/hornet/compdb/compileCommandsManager.ts new file mode 100644 index 000000000..c27b8965b --- /dev/null +++ b/Extension/src/hornet/compdb/compileCommandsManager.ts @@ -0,0 +1,142 @@ +import * as vscode from 'vscode'; +import * as fs from 'node:fs/promises'; +import * as path from 'node:path'; +import { canonical, CompileCommand, mergeCompilationDatabases, parseCompilationDatabase } from './compileCommandsParser'; +import { discoverCompilationDatabase } from './databaseDiscovery'; + +export class CompileCommandsManager implements vscode.Disposable { + readonly directory: string; + private commands = new Map(); + private importedSources: string[] = []; + private watchers: vscode.Disposable[] = []; + private timer?: NodeJS.Timeout; + private queue: Promise = Promise.resolve(); + private disposed = false; + private readonly changed = new vscode.EventEmitter(); + readonly onDidChange = this.changed.event; + constructor(readonly root: vscode.WorkspaceFolder, private readonly log: (text: string) => void) { + this.directory = path.join(root.uri.fsPath, '.vscode', 'hornet', 'compile-db'); + } + get size() { return this.commands.size; } + get(file: string) { return this.commands.get(canonical(file)); } + hasUri(uri: string) { return this.get(vscode.Uri.parse(uri).fsPath) !== undefined; } + + async initialize(): Promise { + const sidecar = path.join(this.directory, 'sources.json'); + try { + const metadata = JSON.parse(await fs.readFile(sidecar, 'utf8')) as { sources: string[]; imports?: string[]; automaticSource?: string }; + if (!Array.isArray(metadata.sources) || !metadata.sources.every(source => typeof source === 'string' && path.isAbsolute(source))) { + throw new Error('Invalid sources.json'); + } + const legacyDefaults = ['compile_commands.json', path.join('build', 'compile_commands.json')].map(file => canonical(path.join(this.root.uri.fsPath, file))); + const imported = metadata.imports ?? metadata.sources.filter(source => source !== metadata.automaticSource && !legacyDefaults.includes(canonical(source))); + if (!Array.isArray(imported) || !imported.every(source => typeof source === 'string' && path.isAbsolute(source))) throw new Error('Invalid imported compilation database paths'); + this.importedSources = imported; + } catch (error) { + if ((error as NodeJS.ErrnoException).code !== 'ENOENT') { this.log(String(error)); } + } + await this.reload(); + if (this.disposed) { return; } + const discovery = vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(this.root, '**/{compile_commands.json,CMakePresets.json,CMakeUserPresets.json}')); + const detect = (uri: vscode.Uri) => { + const relative = path.relative(this.directory, uri.fsPath); + if (!relative.startsWith('..') && !path.isAbsolute(relative)) return; + this.scheduleReload(); + }; + discovery.onDidCreate(detect); + discovery.onDidChange(detect); + discovery.onDidDelete(detect); + this.watchers.push(discovery); + } + + private scheduleReload() { + if (this.disposed) { return; } + if (this.timer) { clearTimeout(this.timer); } + this.timer = setTimeout(() => { void this.reload().catch(error => this.log(String(error))); }, 350); + } + private serialize(action: () => Promise): Promise { + const operation = this.queue.then(async () => { if (!this.disposed) { await action(); } }); + this.queue = operation.catch(() => {}); + return operation; + } + async import(paths: string[]): Promise { + return this.serialize(async () => { + // Validate every input before replacing any previous database or source list. + const incoming = paths.map(source => path.resolve(source)); + if (incoming.some(source => canonical(source) === canonical(path.join(this.directory, 'compile_commands.json')))) { + throw new Error('Select an original compilation database, not Hornet’s merged output.'); + } + for (const source of incoming) { parseCompilationDatabase(await fs.readFile(source, 'utf8'), source); } + const next = [...this.importedSources.filter(source => !incoming.includes(source)), ...incoming]; + await this.refreshSources(next); + }); + } + async reload(notify = true): Promise { return this.serialize(() => this.refreshSources(this.importedSources, notify)); } + + private async refreshSources(imported: string[], notify = true): Promise { + const cmake = vscode.workspace.getConfiguration('cmake', this.root.uri); + const automaticSource = await discoverCompilationDatabase(this.root.uri.fsPath, { + preset: cmake.get('defaultConfigurePreset'), buildDirectory: cmake.get('buildDirectory'), log: this.log + }); + const next = automaticSource && !imported.some(source => canonical(source) === canonical(automaticSource)) ? [automaticSource, ...imported] : imported; + if (automaticSource) this.log(`Using build configuration: ${automaticSource}`); + await this.loadSources(next, notify, automaticSource, imported); + } + + private async loadSources(sources: string[], notify: boolean, automaticSource: string | undefined, imported: string[]): Promise { + const loaded: { path: string; commands: CompileCommand[] }[] = []; + for (const source of sources) { + try { loaded.push({ path: source, commands: parseCompilationDatabase(await fs.readFile(source, 'utf8'), source) }); } + catch (error) { + if ((error as NodeJS.ErrnoException).code !== 'ENOENT') { throw error; } + this.log(`Compilation database removed or unavailable: ${source}`); + } + } + const merged = mergeCompilationDatabases(loaded); + await this.ensureSafeDirectory(); + await this.writeJson('compile_commands.json', merged.commands); + await this.writeJson('sources.json', { version: 2, sources, automaticSource, imports: imported, provenance: merged.provenance }); + if (this.disposed) { return; } + this.importedSources = imported; + this.commands = new Map(merged.commands.map(command => [canonical(command.file), command])); + // External imported databases also need watching; retain discovery as the last watcher. + for (const watcher of this.sourceWatchers) { watcher.dispose(); } + this.sourceWatchers = sources.map(source => { + const watcher = vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(vscode.Uri.file(path.dirname(source)), path.basename(source))); + watcher.onDidChange(() => this.scheduleReload()); + watcher.onDidCreate(() => this.scheduleReload()); + watcher.onDidDelete(() => this.scheduleReload()); + return watcher; + }); + this.log(`Compilation database: ${this.commands.size} files from ${loaded.length} sources`); + if (notify) { this.changed.fire(); } + } + private sourceWatchers: vscode.Disposable[] = []; + + private async ensureSafeDirectory(): Promise { + const root = canonical(this.root.uri.fsPath); + let current = this.root.uri.fsPath; + for (const segment of ['.vscode', 'hornet', 'compile-db']) { + current = path.join(current, segment); + try { await fs.mkdir(current); } catch (error) { if ((error as NodeJS.ErrnoException).code !== 'EEXIST') { throw error; } } + const relative = path.relative(root, canonical(current)); + if (relative.startsWith('..') || path.isAbsolute(relative)) { throw new Error('Hornet configuration directory escapes the workspace through a symlink.'); } + } + } + private async writeJson(name: string, data: unknown) { + const destination = path.join(this.directory, name); + const temp = `${destination}.${process.pid}.tmp`; + // Exclusive creation prevents following a pre-existing symlink for the temporary output. + await fs.writeFile(temp, JSON.stringify(data, null, 2) + '\n', { flag: 'wx' }); + try { await fs.rename(temp, destination); } finally { await fs.unlink(temp).catch(() => {}); } + } + async export(destination: string): Promise { + await fs.writeFile(destination, JSON.stringify([...this.commands.values()], null, 2) + '\n'); + } + dispose() { + this.disposed = true; + if (this.timer) { clearTimeout(this.timer); } + [...this.watchers, ...this.sourceWatchers].forEach(watcher => watcher.dispose()); + this.changed.dispose(); + } +} diff --git a/Extension/src/hornet/compdb/compileCommandsParser.ts b/Extension/src/hornet/compdb/compileCommandsParser.ts new file mode 100644 index 000000000..b6182cd72 --- /dev/null +++ b/Extension/src/hornet/compdb/compileCommandsParser.ts @@ -0,0 +1,52 @@ +import * as path from 'node:path'; +import { realpathSync } from 'node:fs'; + +export interface CompileCommand { + directory: string; + file: string; + arguments?: string[]; + command?: string; + output?: string; +} + +export function canonical(file: string): string { + let result = path.resolve(file); + try { result = realpathSync.native(result); } catch { /* Generated sources may not exist yet. */ } + return process.platform === 'win32' ? result.toLowerCase() : result; +} + +export function parseCompilationDatabase(text: string, source: string): CompileCommand[] { + const data: unknown = JSON.parse(text.replace(/^\uFEFF/, '')); + if (!Array.isArray(data)) { throw new Error(`${source}: expected an array of compile commands`); } + return data.map((entry: unknown, index) => { + const error = () => new Error(`${source}: invalid compile command at entry ${index + 1}`); + if (!entry || typeof entry !== 'object') { throw error(); } + const row = entry as Record; + if (typeof row.directory !== 'string' || !row.directory.trim() || typeof row.file !== 'string' || !row.file.trim()) { throw error(); } + const hasArgs = Array.isArray(row.arguments) && row.arguments.length > 0 && row.arguments.every(a => typeof a === 'string') && !!row.arguments[0]; + const hasCommand = typeof row.command === 'string' && !!row.command.trim(); + if ((!hasArgs && !hasCommand) || (row.arguments !== undefined && !hasArgs)) { throw error(); } + const directory = path.resolve(path.dirname(source), row.directory); + return { + directory, + file: path.resolve(directory, row.file), + ...(hasArgs ? { arguments: row.arguments as string[] } : { command: row.command as string }), + ...(typeof row.output === 'string' ? { output: path.resolve(directory, row.output) } : {}) + }; + }); +} + +export function mergeCompilationDatabases(sources: { path: string; commands: CompileCommand[] }[]): { + commands: CompileCommand[]; provenance: Record; +} { + const merged = new Map(); + const provenance: Record = {}; + for (const source of sources) { + for (const command of source.commands) { + const key = canonical(command.file); + merged.set(key, command); + provenance[key] = source.path; + } + } + return { commands: [...merged.values()].sort((a, b) => a.file.localeCompare(b.file)), provenance }; +} diff --git a/Extension/src/hornet/compdb/databaseDiscovery.ts b/Extension/src/hornet/compdb/databaseDiscovery.ts new file mode 100644 index 000000000..11e9d1ac5 --- /dev/null +++ b/Extension/src/hornet/compdb/databaseDiscovery.ts @@ -0,0 +1,76 @@ +import * as fs from 'node:fs/promises'; +import * as path from 'node:path'; + +interface Preset { name: string; binaryDir?: string; inherits?: string | string[]; hidden?: boolean; file: string; } +export interface DiscoveryOptions { preset?: string; buildDirectory?: string; env?: NodeJS.ProcessEnv; log?: (message: string) => void; } + +/** Discover build metadata, not the source tree. Never execute CMake or compiler commands. */ +export async function discoverCompilationDatabase(root: string, options: DiscoveryOptions = {}): Promise { + const env = options.env ?? process.env; + const expand = (value: string, preset = '', file = root) => value + .replace(/\$\{(?:sourceDir|workspaceFolder)\}/g, root) + .replace(/\$\{sourceParentDir\}/g, path.dirname(root)).replace(/\$\{sourceDirName\}/g, path.basename(root)) + .replace(/\$\{presetName\}/g, preset).replace(/\$\{fileDir\}/g, file) + .replace(/\$(?:p?env)\{([^}]+)\}|\$\{env:([^}]+)\}/g, (_all, a: string, b: string) => env[a || b] ?? '$unresolved'); + const candidates: string[] = []; + const add = (directory?: string) => { + if (directory && !directory.includes('$')) candidates.push(path.resolve(root, directory, 'compile_commands.json')); + }; + const exists = async (file: string) => fs.stat(file).then(value => value.isFile(), () => false); + const presets = new Map(), visited = new Set(); + const read = async (file: string): Promise => { + file = path.resolve(file); + if (visited.has(file) || visited.size >= 16) return; + visited.add(file); + try { + if ((await fs.stat(file)).size > 2 * 1024 * 1024) return; + const value = JSON.parse((await fs.readFile(file, 'utf8')).replace(/^\uFEFF/, '')); + for (const include of Array.isArray(value.include) ? value.include : []) { + if (typeof include !== 'string') continue; + const target = expand(include, '', path.dirname(file)); + if (!target.includes('$')) await read(path.resolve(path.dirname(file), target)); + } + for (const preset of Array.isArray(value.configurePresets) ? value.configurePresets : []) { + if (typeof preset?.name === 'string') presets.set(preset.name, { ...preset, file }); + } + } catch (error) { + if ((error as NodeJS.ErrnoException).code !== 'ENOENT') options.log?.(`Cannot read CMake presets ${file}: ${String(error)}`); + } + }; + await read(path.join(root, 'CMakePresets.json')); + await read(path.join(root, 'CMakeUserPresets.json')); + const binary = (name: string, trail = new Set()): { value: string; file: string } | undefined => { + if (trail.has(name)) return; + const preset = presets.get(name); if (!preset) return; + trail.add(name); + if (typeof preset.binaryDir === 'string') return { value: preset.binaryDir, file: preset.file }; + for (const parent of typeof preset.inherits === 'string' ? [preset.inherits] : preset.inherits ?? []) { + const inherited = binary(parent, new Set(trail)); if (inherited) return inherited; + } + }; + const addPreset = (name: string) => { const found = binary(name); if (found) add(expand(found.value, name, path.dirname(found.file))); }; + // An explicitly selected configuration wins. Do not merge Debug and Release together. + if (options.preset) addPreset(options.preset); + if (options.buildDirectory) add(expand(options.buildDirectory, options.preset)); + add(root); add(path.join(root, 'build')); + for (const preset of presets.values()) if (!preset.hidden) addPreset(preset.name); + for (const candidate of [...new Set(candidates)]) if (await exists(candidate)) return candidate; + // Support ordinary multi-config builds when there are no CMake presets. + const queue: { directory: string; depth: number }[] = []; + for (const entry of await fs.readdir(root, { withFileTypes: true })) { + if (entry.isDirectory() && /^(build|out|output|cmake-build-.*)$/i.test(entry.name)) queue.push({ directory: path.join(root, entry.name), depth: 0 }); + } + let count = 0; + while (queue.length && count++ < 128) { + const { directory, depth } = queue.shift()!; + const candidate = path.join(directory, 'compile_commands.json'); + if (await exists(candidate)) return candidate; + if (depth >= 3) continue; + try { + for (const entry of (await fs.readdir(directory, { withFileTypes: true })).sort((a, b) => a.name.localeCompare(b.name))) { + if (entry.isDirectory() && !entry.name.startsWith('.') && !/^(CMakeFiles|_deps|node_modules)$/i.test(entry.name)) queue.push({ directory: path.join(directory, entry.name), depth: depth + 1 }); + } + } catch { /* Other build directories may still be readable. */ } + } + return undefined; +} diff --git a/Extension/src/hornet/compdb/fallbackCompilation.ts b/Extension/src/hornet/compdb/fallbackCompilation.ts new file mode 100644 index 000000000..37590d5f9 --- /dev/null +++ b/Extension/src/hornet/compdb/fallbackCompilation.ts @@ -0,0 +1,46 @@ +import * as fs from 'node:fs/promises'; +import * as path from 'node:path'; + +/** Bounded first-party discovery for browsing projects that have not been configured yet. */ +export async function prepareCompilerConfiguration(root: string, databaseDirectory: string): Promise<{ directory: string; fallbackFlags: string[]; inferred: number; sources: string[] }> { + const ignored = new Set(['.git', '.vscode', '.cache', 'node_modules', 'build', 'out', 'output', 'dist', 'vendor', 'third_party', 'external', '_deps']); + const includes = new Set([root]); + const sources: string[] = []; + const queue = [{ directory: root, depth: 0 }]; + let visited = 0; + // Explicit compile commands remain authoritative and are never rewritten. + let commands: unknown[] = []; + try { commands = JSON.parse(await fs.readFile(path.join(databaseDirectory, 'compile_commands.json'), 'utf8')); } + catch (error) { if ((error as NodeJS.ErrnoException).code !== 'ENOENT') { throw error; } } + if (!Array.isArray(commands)) { throw new Error('Expected a compilation database array.'); } + if (commands.length) { + const files = commands.flatMap(value => { + const command = value as { file?: string; directory?: string }; + return typeof command.file === 'string' ? [path.resolve(command.directory || root, command.file)] : []; + }); + return { directory: databaseDirectory, fallbackFlags: [], inferred: 0, sources: [...new Set(files)] }; + } + while (queue.length && visited++ < 500 && sources.length < 1000) { + const { directory, depth } = queue.shift()!; + try { + for (const entry of (await fs.readdir(directory, { withFileTypes: true })).sort((a, b) => a.name.localeCompare(b.name))) { + const full = path.join(directory, entry.name); + if (entry.isDirectory() && !entry.name.startsWith('.') && !ignored.has(entry.name.toLowerCase()) && !/^cmake-build-/i.test(entry.name) && depth < 6) { + if (/^(include|includes|inc)$/i.test(entry.name)) { includes.add(full); } + queue.push({ directory: full, depth: depth + 1 }); + } else if (entry.isFile() && /\.(c|cc|cpp|cxx|c\+\+)$/i.test(entry.name) && sources.length < 1000) { sources.push(full); } + } + } catch { /* An unreadable directory does not prevent browsing the rest. */ } + } + const fallbackFlags = [...includes].map(directory => `-I${directory}`); + if (!sources.length) { return { directory: databaseDirectory, fallbackFlags, inferred: 0, sources }; } + const directory = path.join(databaseDirectory, 'fallback'); + for (const target of [directory, path.join(directory, 'compile_commands.json')]) { + try { if ((await fs.lstat(target)).isSymbolicLink()) { throw new Error('Fallback database must not be a symbolic link.'); } } + catch (error) { if ((error as NodeJS.ErrnoException).code !== 'ENOENT') { throw error; } } + } + await fs.mkdir(directory, { recursive: true }); + await fs.writeFile(path.join(directory, 'compile_commands.json'), JSON.stringify(sources.map(file => ({ directory: root, file, + arguments: [path.extname(file) === '.c' ? 'clang' : 'clang++', ...fallbackFlags, '-c', file] })), null, 2)); + return { directory, fallbackFlags, inferred: sources.length, sources }; +} diff --git a/Extension/src/hornet/core/binaryManager.ts b/Extension/src/hornet/core/binaryManager.ts new file mode 100644 index 000000000..c6969396d --- /dev/null +++ b/Extension/src/hornet/core/binaryManager.ts @@ -0,0 +1,130 @@ +import * as fs from 'node:fs/promises'; +import * as path from 'node:path'; +import { constants } from 'node:fs'; + +export class BackendNotFoundError extends Error { + constructor(readonly executable: string, detail?: string) { + super(detail ? `Automatic clangd setup failed: ${detail}. Click Hornet to retry.` + : `Cannot find ${executable} on the workspace host. Click Hornet to retry automatic clangd setup.`); + this.name = 'BackendNotFoundError'; + } +} + +export interface BinaryDiscoveryOptions { + platform?: NodeJS.Platform; + env?: NodeJS.ProcessEnv; + storagePath?: string; + extraCandidates?: string[]; +} + +/** Only known tool locations are searched, never workspace executables. */ +export function clangdInstallRoots(platform: NodeJS.Platform, env: NodeJS.ProcessEnv, storagePath?: string): string[] { + const paths = platform === 'win32' ? path.win32 : path.posix; + const roots: string[] = []; + if (storagePath) { + roots.push(paths.join(storagePath, 'clangd')); + roots.push(paths.join(paths.dirname(storagePath), 'llvm-vs-code-extensions.vscode-clangd', 'install')); + } + const home = env.USERPROFILE ?? env.HOME; + const data = platform === 'win32' ? env.APPDATA : platform === 'darwin' && home ? paths.join(home, 'Library', 'Application Support') : env.XDG_CONFIG_HOME ?? (home && paths.join(home, '.config')); + if (data) { + for (const product of ['Code', 'Code - Insiders', 'VSCodium']) { + roots.push(paths.join(data, product, 'User', 'globalStorage', 'llvm-vs-code-extensions.vscode-clangd', 'install')); + } + } + if (home) { + for (const server of ['.vscode-server', '.vscode-server-insiders']) { + roots.push(paths.join(home, server, 'data', 'User', 'globalStorage', 'llvm-vs-code-extensions.vscode-clangd', 'install')); + } + } + return [...new Set(roots)]; +} + +export function clangdCandidates(configured: string, platform: NodeJS.Platform, env: NodeJS.ProcessEnv): string[] { + const paths = platform === 'win32' ? path.win32 : path.posix; + const executable = configured.trim() || 'clangd'; + if (paths.isAbsolute(executable)) { return [executable]; } + if (/[/\\]/.test(executable)) { throw new Error('hornet-cpp.clangd.path must be an absolute executable path or a name on PATH.'); } + const filename = platform === 'win32' && !paths.extname(executable) ? `${executable}.exe` : executable; + const candidates = (env.PATH ?? env.Path ?? '').split(paths.delimiter).map(dir => dir.trim().replace(/^"(.*)"$/, '$1')) + .filter(dir => dir && paths.isAbsolute(dir)).map(dir => paths.join(dir, filename)); + // Respect explicit custom executable names; auto-discover only the default clangd. + if (!['clangd', 'clangd.exe'].includes(executable)) { return candidates; } + if (platform === 'win32') { + const add = (base: string | undefined, ...segments: string[]) => { if (base && paths.isAbsolute(base)) { candidates.push(paths.join(base, ...segments, 'clangd.exe')); } }; + add(env.ProgramFiles ?? env.PROGRAMFILES, 'LLVM', 'bin'); + add(env['ProgramFiles(x86)'], 'LLVM', 'bin'); + add(env.LOCALAPPDATA, 'Programs', 'LLVM', 'bin'); + add(env.USERPROFILE, 'scoop', 'apps', 'llvm', 'current', 'bin'); + add(env.SCOOP, 'apps', 'llvm', 'current', 'bin'); + } else if (platform === 'darwin') { + candidates.push('/opt/homebrew/opt/llvm/bin/clangd', '/usr/local/opt/llvm/bin/clangd', '/opt/homebrew/bin/clangd', '/usr/local/bin/clangd', '/usr/bin/clangd'); + } else { + candidates.push('/usr/bin/clangd', '/usr/local/bin/clangd'); + } + return [...new Set(candidates)]; +} + +export class BinaryManager { + constructor(private readonly options: BinaryDiscoveryOptions = {}) {} + async ensure(configured: string, install: () => Promise): Promise { + try { return await this.resolve(configured); } + catch (error) { + if (!(error instanceof BackendNotFoundError) || !['', 'clangd', 'clangd.exe'].includes(configured.trim())) { throw error; } + try { return await install(); } + catch (failure) { throw new BackendNotFoundError(configured, failure instanceof Error ? failure.message : String(failure)); } + } + } + async resolve(configured: string): Promise { + const executable = configured.trim() || 'clangd'; + const platform = this.options.platform ?? process.platform; + const env = this.options.env ?? process.env; + const candidates = clangdCandidates(configured, platform, env); + const automatic = ['clangd', 'clangd.exe'].includes(executable); + if (automatic) { candidates.push(...(this.options.extraCandidates ?? [])); } + if (platform === 'linux' && automatic) { + try { + const versions = (await fs.readdir('/usr/lib')).filter(dir => /^llvm-\d+$/.test(dir)) + .sort((a, b) => Number(b.slice(5)) - Number(a.slice(5))); + candidates.push(...versions.map(dir => path.join('/usr/lib', dir, 'bin', 'clangd'))); + } catch { /* Versioned distro installations are optional. */ } + } + if (automatic) { + const filename = platform === 'win32' ? 'clangd.exe' : 'clangd'; + const visit = async (directory: string, depth: number): Promise => { + if (depth < 0) { return; } + try { + const entries = (await fs.readdir(directory, { withFileTypes: true })) + .sort((a, b) => b.name.localeCompare(a.name, undefined, { numeric: true })); + for (const entry of entries) { + const full = path.join(directory, entry.name); + if (entry.isFile() && entry.name === filename) { candidates.push(full); } + else if (entry.isDirectory() && !entry.name.startsWith('.')) { await visit(full, depth - 1); } + } + } catch { /* Optional editor-managed installation. */ } + }; + for (const root of clangdInstallRoots(platform, env, this.options.storagePath)) { await visit(root, 4); } + if (platform === 'win32') { + for (const base of [env.ProgramFiles, env['ProgramFiles(x86)']].filter((value): value is string => !!value)) { + const root = path.join(base, 'Microsoft Visual Studio'); + try { + for (const year of await fs.readdir(root)) { + if (!/^\d{4}$/.test(year)) { continue; } + for (const edition of ['Community', 'Professional', 'Enterprise', 'BuildTools']) { + candidates.push(path.join(root, year, edition, 'VC', 'Tools', 'Llvm', 'x64', 'bin', filename)); + candidates.push(path.join(root, year, edition, 'VC', 'Tools', 'Llvm', 'bin', filename)); + } + } + } catch { /* Visual Studio is optional. */ } + } + } + } + for (const candidate of candidates) { + try { + await fs.access(candidate, platform === 'win32' ? constants.F_OK : constants.X_OK); + if ((await fs.stat(candidate)).isFile()) { return await fs.realpath(candidate); } + } catch { /* Try next PATH entry. */ } + } + throw new BackendNotFoundError(executable); + } +} diff --git a/Extension/src/hornet/core/capabilityRouter.ts b/Extension/src/hornet/core/capabilityRouter.ts new file mode 100644 index 000000000..a952d0fd8 --- /dev/null +++ b/Extension/src/hornet/core/capabilityRouter.ts @@ -0,0 +1,28 @@ +import type { CancellationToken } from 'vscode'; +import { ModeManager } from './modeManager'; +import { capabilityForMethod } from '../engines/languageEngine'; + +export class CapabilityRouter { + constructor(private readonly modes: ModeManager, private readonly owns: (uri: string) => boolean = () => true) {} + async request(method: string, params: unknown, token?: CancellationToken): Promise { + if (token?.isCancellationRequested) { return null; } + const input = params as { textDocument?: { uri: string }; item?: { uri: string } }; + const uri = input?.textDocument?.uri ?? input?.item?.uri; + // Hierarchy items returned by this workspace's server may point into dependency headers. + const hierarchyItem = method === 'callHierarchy/incomingCalls' || method === 'callHierarchy/outgoingCalls'; + if (uri && !this.owns(uri) && !hierarchyItem) { return null; } + const engine = this.modes.getActiveEngine(); + const capability = capabilityForMethod[method]; + if (!engine || (capability && !engine.getCapabilities()[capability])) { return null; } + try { + const result = await engine.request(method, params, token); + return token?.isCancellationRequested || engine !== this.modes.getActiveEngine() ? null : result; + } catch (error) { + if (token?.isCancellationRequested || engine !== this.modes.getActiveEngine()) { return null; } + throw error; + } + } + async notify(method: string, params: unknown): Promise { + await this.modes.getActiveEngine()?.notify(method, params); + } +} diff --git a/Extension/src/hornet/core/clangdInstaller.ts b/Extension/src/hornet/core/clangdInstaller.ts new file mode 100644 index 000000000..47503442b --- /dev/null +++ b/Extension/src/hornet/core/clangdInstaller.ts @@ -0,0 +1,143 @@ +import * as fs from 'node:fs/promises'; +import { createReadStream, createWriteStream } from 'node:fs'; +import * as path from 'node:path'; +import * as https from 'node:https'; +import { createHash, randomUUID } from 'node:crypto'; +import { execFile } from 'node:child_process'; +import { promisify } from 'node:util'; +import { pipeline } from 'node:stream/promises'; +import { Transform } from 'node:stream'; +import { HttpsProxyAgent } from 'https-proxy-agent'; +import * as yauzl from 'yauzl'; + +// Official stable archives and SHA-256 digests from clangd/clangd release 22.1.6. +const version = '22.1.6'; +const archives = { + win32: { name: 'windows', sha256: 'ce54f16e0b4fd76d450eeda9664420b195360b73febcfe40e661108fa57f2ce1' }, + linux: { name: 'linux', sha256: 'a9c77443af2e447ed467e84771848d3a6ac1c56f84bcfcde717e66318de77cfa' }, + darwin: { name: 'mac', sha256: '631aef462556cbd74e0ebaae1778a38d1997d0ba3371652ca54f82652a179e7d' } +}; +export function clangdDownload(platform: NodeJS.Platform, arch: string, musl = false) { + if ((platform !== 'darwin' && arch !== 'x64') || (platform === 'darwin' && !['x64', 'arm64'].includes(arch)) + || !(platform in archives) || musl) { + throw new Error(`Automatic clangd download is unavailable for ${platform}/${arch}${musl ? ' (musl)' : ''}. Install clangd with the host package manager; Hornet will discover it on retry.`); + } + const archive = archives[platform as keyof typeof archives]; + return { url: `https://github.com/clangd/clangd/releases/download/${version}/clangd-${archive.name}-${version}.zip`, sha256: archive.sha256 }; +} + +export async function downloadClangdArchive(url: string, file: string, report: (message: string) => void, proxy?: string): Promise { + const controller = new AbortController(); + const timeout = setTimeout(() => controller.abort(), 180000); + const agent = proxy ? new HttpsProxyAgent(proxy) : undefined; + const response = (address: string, redirects = 0): Promise => new Promise((resolve, reject) => { + const target = new URL(address); + if (target.protocol !== 'https:' || !['github.com', 'release-assets.githubusercontent.com', 'objects.githubusercontent.com'].includes(target.hostname) || redirects > 5) { + reject(new Error('Unexpected clangd download redirect.')); return; + } + const request = https.get(target, { agent, signal: controller.signal, headers: { 'User-Agent': 'Hornet-Cpp' } }, result => { + if ([301, 302, 303, 307, 308].includes(result.statusCode ?? 0) && result.headers.location) { + result.resume(); resolve(response(new URL(result.headers.location, target).href, redirects + 1)); return; + } + if (result.statusCode !== 200) { result.resume(); reject(new Error(`clangd download failed: HTTP ${result.statusCode}`)); return; } + resolve(result); + }); + request.on('error', reject); + }); + try { + const source = await response(url); + let received = 0, lastReport = 0; + const progress = new Transform({ transform(chunk, _encoding, callback) { + received += chunk.length; + if (received > 256 * 1024 * 1024) { callback(new Error('clangd archive exceeds download limit.')); return; } + if (Date.now() - lastReport > 1000) { + report(`Downloading clangd: ${(received / 1024 / 1024).toFixed(1)} MB`); lastReport = Date.now(); + } + callback(null, chunk); + } }); + await pipeline(source, progress, createWriteStream(file, { flags: 'wx' }), { signal: controller.signal }); + } finally { clearTimeout(timeout); agent?.destroy(); } +} + +export async function verifyClangdArchive(file: string, expected: string): Promise { + const hash = createHash('sha256'); + for await (const chunk of createReadStream(file)) { hash.update(chunk); } + if (hash.digest('hex') !== expected) { throw new Error('clangd archive checksum mismatch. Please retry the download.'); } +} + +export function extractClangdArchive(file: string, destination: string): Promise { + return new Promise((resolve, reject) => { + yauzl.open(file, { lazyEntries: true, strictFileNames: true }, (error, zip) => { + if (error) { reject(error); return; } + const fail = (reason: unknown) => { zip.close(); reject(reason); }; + let total = 0; + zip.on('error', fail); + zip.on('end', resolve); + zip.on('entry', (entry: yauzl.Entry) => { + void (async () => { + const parts = entry.fileName.split('/'); + const root = path.resolve(destination); + const target = path.resolve(root, ...parts); + const mode = entry.externalFileAttributes >>> 16; + total += entry.uncompressedSize; + if (parts.some(part => part === '..' || part.includes(':') || part.includes('\\')) + || !target.startsWith(root + path.sep) || (mode & 0xf000) === 0xa000 || total > 1024 * 1024 * 1024) { + throw new Error('Unsafe clangd archive entry.'); + } + if (entry.fileName.endsWith('/')) { await fs.mkdir(target, { recursive: true }); } + else { + await fs.mkdir(path.dirname(target), { recursive: true }); + const stream = await new Promise((accept, decline) => zip.openReadStream(entry, (err, value) => err ? decline(err) : accept(value))); + await pipeline(stream, createWriteStream(target, { flags: 'wx', mode: mode & 0o111 ? 0o755 : 0o644 })); + } + zip.readEntry(); + })().catch(fail); + }); + zip.readEntry(); + }); + }); +} + +export interface ClangdInstallOptions { + storagePath: string; + report: (message: string) => void; + proxy?: string; +} +const installations = new Map>(); +export function installClangd(options: ClangdInstallOptions): Promise { + const root = path.resolve(options.storagePath, 'clangd'); + const current = installations.get(root); + if (current) { return current; } + const operation = (async () => { + const musl = process.platform === 'linux' && !((process.report.getReport() as { header: { glibcVersionRuntime?: string } }).header.glibcVersionRuntime); + const asset = clangdDownload(process.platform, process.arch, musl); + await fs.mkdir(root, { recursive: true }); + const temporary = await fs.mkdtemp(path.join(root, '.download-')); + try { + const archive = path.join(temporary, 'clangd.zip'); + await downloadClangdArchive(asset.url, archive, options.report, options.proxy); + options.report('Verifying and extracting clangd'); + await verifyClangdArchive(archive, asset.sha256); + const extracted = path.join(temporary, 'install'); + await extractClangdArchive(archive, extracted); + const relative = path.join(`clangd_${version}`, 'bin', process.platform === 'win32' ? 'clangd.exe' : 'clangd'); + const binary = path.join(extracted, relative); + if (process.platform !== 'win32') { await fs.chmod(binary, 0o755); } + const { stdout } = await promisify(execFile)(binary, ['--version'], { windowsHide: true, timeout: 15000 }); + if (!/clangd version\s+\d+/i.test(stdout)) { throw new Error('Downloaded clangd could not be validated.'); } + const installed = path.join(root, `${version}-${process.platform}-${process.arch}-${randomUUID()}`); + await fs.rename(extracted, installed); + options.report(`clangd ${version} installed`); + return path.join(installed, relative); + } finally { + // Only remove the temporary directory created for this download. + const target = path.resolve(temporary); + if (path.dirname(target) === root && path.basename(target).startsWith('.download-')) { + await fs.rm(target, { recursive: true, force: true }); + } + } + })(); + installations.set(root, operation); + void operation.finally(() => installations.delete(root)).catch(() => {}); + return operation; +} diff --git a/Extension/src/hornet/core/cpuScheduler.ts b/Extension/src/hornet/core/cpuScheduler.ts new file mode 100644 index 000000000..16a5af30a --- /dev/null +++ b/Extension/src/hornet/core/cpuScheduler.ts @@ -0,0 +1,6 @@ +import * as os from 'node:os'; + +export function threadCount(usage: string, count = os.cpus().length): number { + const ratios: Record = { Maximum: 1, High: 0.75, Medium: 0.5, Low: 0.25 }; + return Math.max(1, Math.floor(Math.max(1, count) * (ratios[usage] ?? 0.5))); +} diff --git a/Extension/src/hornet/core/indexProgress.ts b/Extension/src/hornet/core/indexProgress.ts new file mode 100644 index 000000000..86a067ea8 --- /dev/null +++ b/Extension/src/hornet/core/indexProgress.ts @@ -0,0 +1,11 @@ +import { IndexStatus } from '../engines/languageEngine'; + +/** clangd may report completed/total in the message without sending a percentage. */ +export function backgroundIndexStatus(value: { message?: string; percentage?: number }): IndexStatus { + const counts = value.message?.match(/\b(\d+)\s*\/\s*(\d+)\b/); + const completed = counts ? Number(counts[1]) : undefined; + const total = counts ? Number(counts[2]) : undefined; + const raw = total && completed !== undefined ? completed / total * 100 : value.percentage; + const percentage = raw !== undefined && Number.isFinite(raw) ? Math.max(0, Math.min(100, Math.floor(raw))) : undefined; + return { state: 'building', phase: 'indexing', message: value.message || 'Building project index', completed, total, percentage }; +} diff --git a/Extension/src/hornet/core/modeManager.ts b/Extension/src/hornet/core/modeManager.ts new file mode 100644 index 000000000..da4d2a020 --- /dev/null +++ b/Extension/src/hornet/core/modeManager.ts @@ -0,0 +1,46 @@ +import { LanguageEngine, ParseMode } from '../engines/languageEngine'; + +/** Serializes transitions, including shutdown, so that rapid setting changes cannot leak servers. */ +export class ModeManager { + private active?: LanguageEngine; + private queue: Promise = Promise.resolve(); + private disposed = false; + constructor(private readonly create: (mode: ParseMode) => LanguageEngine, + private readonly changed: (engine?: LanguageEngine, error?: unknown) => void = () => {}) {} + + getActiveEngine(): LanguageEngine | undefined { return this.active; } + + switchMode(mode: ParseMode): Promise { + if (this.disposed) { return Promise.reject(new Error('Workspace is closed')); } + const operation = this.queue.then(async () => { + if (this.disposed) { return; } + const previous = this.active; + this.active = undefined; + this.changed(); + await previous?.shutdown(); + const candidate = this.create(mode); + try { + await candidate.initialize(); + this.active = candidate; + this.changed(candidate); + } catch (error) { + await candidate.shutdown(); + // Restore the previous usable mode after a failed switch. + if (previous) { + try { await previous.initialize(); this.active = previous; } catch { await previous.shutdown(); } + } + this.changed(this.active, error); + throw error; + } + }); + this.queue = operation.catch(() => {}); + return operation; + } + + async shutdown(): Promise { + this.disposed = true; + await this.queue; + await this.active?.shutdown(); + this.active = undefined; + } +} diff --git a/Extension/src/hornet/core/processManager.ts b/Extension/src/hornet/core/processManager.ts new file mode 100644 index 000000000..6a2b88dea --- /dev/null +++ b/Extension/src/hornet/core/processManager.ts @@ -0,0 +1,47 @@ +import { spawn, ChildProcessWithoutNullStreams } from 'node:child_process'; + +/** Every process is launched without a shell and owned until it exits. */ +export class ProcessManager { + private readonly children = new Set(); + async spawn(binary: string, args: string[], cwd: string): Promise { + const child = spawn(binary, args, { cwd, shell: false, windowsHide: true, stdio: 'pipe', detached: process.platform !== 'win32' }); + this.children.add(child); + child.once('exit', () => this.children.delete(child)); + return new Promise((resolve, reject) => { + child.once('spawn', () => resolve(child)); + child.once('error', error => { this.children.delete(child); reject(error); }); + }); + } + async stop(child: ChildProcessWithoutNullStreams): Promise { + if (child.exitCode !== null || child.signalCode !== null) { return; } + const exited = new Promise(resolve => child.once('exit', () => resolve())); + if (process.platform === 'win32' && child.pid) { + const taskkill = spawn('taskkill.exe', ['/pid', String(child.pid), '/T', '/F'], { windowsHide: true, shell: false }); + taskkill.on('error', () => child.kill()); + taskkill.on('exit', code => { if (code) { child.kill(); } }); + } else if (child.pid) { + try { process.kill(-child.pid, 'SIGTERM'); } catch { child.kill(); } + } + await Promise.race([exited, new Promise(resolve => { + const timer = setTimeout(() => { + if (child.exitCode === null && child.signalCode === null) { + try { if (process.platform !== 'win32' && child.pid) { process.kill(-child.pid, 'SIGKILL'); } else { child.kill('SIGKILL'); } } catch { /* Already exited. */ } + } + resolve(); + }, 2000); + timer.unref(); + child.once('exit', () => { clearTimeout(timer); resolve(); }); + })]); + } + async run(binary: string, args: string[], cwd: string, log: (text: string) => void, timeout = 120000): Promise { + const child = await this.spawn(binary, args, cwd); + child.stdout.on('data', data => log(String(data))); + child.stderr.on('data', data => log(String(data))); + await new Promise((resolve, reject) => { + const timer = setTimeout(() => { void this.stop(child); reject(new Error(`${binary} timed out`)); }, timeout); + child.once('error', error => { clearTimeout(timer); reject(error); }); + child.once('exit', code => { clearTimeout(timer); code === 0 ? resolve() : reject(new Error(`${binary} exited with code ${code}`)); }); + }); + } + async dispose(): Promise { await Promise.all([...this.children].map(child => this.stop(child))); } +} diff --git a/Extension/src/hornet/core/serviceStatus.ts b/Extension/src/hornet/core/serviceStatus.ts new file mode 100644 index 000000000..0dec5d666 --- /dev/null +++ b/Extension/src/hornet/core/serviceStatus.ts @@ -0,0 +1,25 @@ +import { IndexStatus, ParseMode } from '../engines/languageEngine'; + +export const availableModes = [ParseMode.Compiler, ParseMode.Hybrid] as const; +export type ServiceState = 'starting' | 'ready' | 'needsSetup' | 'stopped'; + +export function resolveMode(configured: string): { mode: ParseMode; notice?: string } { + if (availableModes.some(mode => mode === configured)) { return { mode: configured as ParseMode }; } + return { mode: ParseMode.Compiler, notice: `Saved mode "${configured}" is unavailable. Using Compiler for this session.` }; +} + +export function serviceStatus(state: ServiceState, mode?: ParseMode, index?: IndexStatus): { text: string; command: string } { + if (state === 'needsSetup') { return { text: '$(warning) Hornet: Retry clangd', command: 'hornet-cpp.autoSetupClangd' }; } + if (state === 'stopped') { return { text: '$(warning) Hornet: Stopped', command: 'hornet-cpp.restartLanguageServices' }; } + if (index?.state === 'building') { + const stage = { discovering: 'Discovering sources', starting: 'Starting index', parsing: 'Parsing source', indexing: 'Indexing', finalizing: 'Finalizing index' }; + const count = index.completed !== undefined && index.total !== undefined ? ` ${index.completed}/${index.total}` : ''; + const percent = index.percentage === undefined ? '' : ` ${index.percentage}%`; + const elapsed = index.elapsedSeconds ? ` · ${index.elapsedSeconds}s` : ''; + return { text: `$(sync~spin) Hornet: ${stage[index.phase ?? 'indexing']}${percent}${count}${elapsed}`, command: 'hornet-cpp.openLogs' }; + } + if (state === 'starting') { return { text: '$(sync~spin) Hornet: Starting', command: 'hornet-cpp.switchMode' }; } + if (index?.state === 'failed') { return { text: '$(warning) Hornet: Index failed', command: 'hornet-cpp.buildProjectIndex' }; } + if (index?.state === 'ready') { return { text: '$(database) Hornet: Index ready', command: 'hornet-cpp.buildProjectIndex' }; } + return { text: `$(symbol-namespace) Hornet: ${mode === ParseMode.Hybrid ? 'Hybrid' : 'Compiler'}`, command: 'hornet-cpp.switchMode' }; +} diff --git a/Extension/src/hornet/core/workspaceContext.ts b/Extension/src/hornet/core/workspaceContext.ts new file mode 100644 index 000000000..d7d9a063e --- /dev/null +++ b/Extension/src/hornet/core/workspaceContext.ts @@ -0,0 +1,202 @@ +import * as vscode from 'vscode'; +import * as lsp from 'vscode-languageserver-protocol'; +import { CompileCommandsManager } from '../compdb/compileCommandsManager'; +import { CompilerEngine } from '../engines/compilerEngine'; +import { HybridEngine } from '../engines/hybridEngine'; +import { UnavailableEngine } from '../engines/unavailableEngine'; +import { IndexStatus, LanguageEngine, ParseMode } from '../engines/languageEngine'; +import { ModeManager } from './modeManager'; +import { ProcessManager } from './processManager'; +import { CapabilityRouter } from './capabilityRouter'; +import { registerLanguageProviders, toCode, toProtocol } from '../providers/languageProviders'; +import { BackendNotFoundError } from './binaryManager'; +import { resolveMode, ServiceState } from './serviceStatus'; + +export class WorkspaceContext { + readonly database: CompileCommandsManager; + readonly modes: ModeManager; + readonly router: CapabilityRouter; + private providers?: vscode.Disposable; + private readonly diagnostics = vscode.languages.createDiagnosticCollection('hornet-cpp'); + private readonly refresh = new vscode.EventEmitter(); + private readonly subscriptions: vscode.Disposable[] = []; + private disposed = false; + private restartTimer?: NodeJS.Timeout; + private commandExecutions = 0; + private readonly analysisErrors = new Map(); + error?: string; + state: ServiceState = 'starting'; + modeNotice?: string; + indexStatus: IndexStatus = { state: 'idle', message: 'Waiting for language service' }; + private readonly indexChanges = new vscode.EventEmitter(); + readonly onIndexChanged = this.indexChanges.event; + private manualIndexBuild?: Promise; + private restartPending = false; + + setFailure(error: unknown): void { + this.error = error instanceof Error ? error.message : String(error); + this.state = this.modes.getActiveEngine() ? 'ready' : error instanceof BackendNotFoundError ? 'needsSetup' : 'stopped'; + this.changed(); + } + + constructor(readonly root: vscode.WorkspaceFolder, readonly processes: ProcessManager, + readonly log: (message: string) => void, private readonly changed: () => void, + private readonly invalidate: (router: CapabilityRouter) => void, + private readonly resolveBinary?: (configured: string) => Promise) { + this.database = new CompileCommandsManager(root, log); + this.modes = new ModeManager(mode => this.createEngine(mode), (engine, error) => { + this.error = error ? (error instanceof Error ? error.message : String(error)) : undefined; + this.state = engine ? 'ready' : error ? (error instanceof BackendNotFoundError ? 'needsSetup' : 'stopped') : 'starting'; + this.updateProviders(engine); + this.changed(); + }); + this.router = new CapabilityRouter(this.modes, uri => this.owns(vscode.Uri.parse(uri))); + } + owns(uri: vscode.Uri) { return vscode.workspace.getWorkspaceFolder(uri)?.uri.toString() === this.root.uri.toString(); } + accepts(document: vscode.TextDocument) { return this.owns(document.uri) && ['c', 'cpp', 'cuda-cpp'].includes(document.languageId); } + callGraphNotice(): string | undefined { + const parseError = this.analysisErrors.values().next().value; + if (parseError) { return `部分文件存在解析错误,调用关系可能不完整:${parseError}`; } + return this.database.size ? undefined : '未找到编译数据库,当前使用自动发现的头文件目录和推断参数。宏与条件编译请以项目的 compile_commands.json 为准。'; + } + private createEngine(mode: ParseMode): LanguageEngine { + if (mode === ParseMode.Tag || mode === ParseMode.Flyweight) { return new UnavailableEngine(mode); } + const compiler = new CompilerEngine(this.processes, { + root: this.root, databaseDirectory: this.database.directory, log: this.log, + diagnostics: params => { void this.publishDiagnostics(params).catch(error => this.log(String(error))); }, + changed: () => { + const engine = this.modes.getActiveEngine(); + this.state = engine && Object.keys(engine.getCapabilities()).length ? 'ready' : 'stopped'; + this.refresh.fire(); this.updateProviders(engine); this.changed(); + }, + refresh: () => this.refresh.fire(), + canApplyEdit: () => this.commandExecutions > 0, + resolveBinary: this.resolveBinary, + indexChanged: status => { + if (this.disposed) { return; } + this.indexStatus = status; this.indexChanges.fire(status); this.changed(); + } + }); + return mode === ParseMode.Hybrid ? new HybridEngine(compiler, uri => this.database.hasUri(uri)) : compiler; + } + private updateProviders(engine?: LanguageEngine) { + if (this.disposed) { return; } + this.providers?.dispose(); + this.diagnostics.clear(); + this.analysisErrors.clear(); + this.invalidate(this.router); + if (!engine) { this.indexStatus = { state: 'idle', message: 'Waiting for language service' }; } + if (engine) { + const selector = ['c', 'cpp', 'cuda-cpp'].map(language => ({ scheme: 'file', language, pattern: new vscode.RelativePattern(this.root, '**/*') })); + this.providers = registerLanguageProviders(selector, this.router, engine.getCapabilities(), this.root.uri, this.refresh.event); + if (Object.keys(engine.getCapabilities()).length) { + const opened = vscode.workspace.textDocuments.filter(doc => this.accepts(doc)) + .map(document => engine.notify('textDocument/didOpen', toProtocol.asOpenTextDocumentParams(document))); + void Promise.all(opened).then(async () => { + if (!this.disposed && this.modes.getActiveEngine() === engine) { await engine.buildIndex?.(); } + }).catch(error => this.log(`Index build: ${String(error)}`)); + } + } + } + private async publishDiagnostics(params: lsp.PublishDiagnosticsParams) { + if (this.disposed) { return; } + const uri = vscode.Uri.parse(params.uri); + if (!this.owns(uri)) { return; } + const parseError = params.diagnostics.find(diagnostic => diagnostic.severity === lsp.DiagnosticSeverity.Error); + if (parseError) { this.analysisErrors.set(params.uri, parseError.message); } + else { this.analysisErrors.delete(params.uri); } + const engine = this.modes.getActiveEngine(); + if (!engine) { return; } + const ignore = vscode.workspace.getConfiguration('hornet-cpp', this.root.uri).get('clangd.ignoreDiagnostics', 'not_indexed'); + const covered = this.database.hasUri(params.uri); + if (ignore === 'all' || (ignore === 'not_indexed' && !covered) || (engine?.mode === ParseMode.Hybrid && !covered)) { this.diagnostics.delete(uri); return; } + const document = vscode.workspace.textDocuments.find(doc => doc.uri.toString() === params.uri); + if (params.version !== undefined && document && params.version < document.version) { return; } + const diagnostics = await toCode.asDiagnostics(params.diagnostics); + if (!this.disposed && engine === this.modes.getActiveEngine()) { this.diagnostics.set(uri, diagnostics); } + } + async initialize() { + await this.database.initialize(); + if (this.disposed) { return; } + this.subscriptions.push(this.database.onDidChange(() => this.scheduleRestart())); + const safely = (operation: Promise) => { void operation.catch(error => this.log(String(error))); }; + this.subscriptions.push( + vscode.workspace.onDidOpenTextDocument(document => { if (this.accepts(document)) { safely(this.router.notify('textDocument/didOpen', toProtocol.asOpenTextDocumentParams(document))); } }), + vscode.workspace.onDidChangeTextDocument(event => { if (this.accepts(event.document) && event.contentChanges.length) { safely(this.router.notify('textDocument/didChange', toProtocol.asChangeTextDocumentParams(event, event.document.uri, event.document.version))); } }), + vscode.workspace.onDidSaveTextDocument(document => { if (this.accepts(document)) { safely(this.router.notify('textDocument/didSave', toProtocol.asSaveTextDocumentParams(document))); } }), + vscode.workspace.onDidCloseTextDocument(document => { if (this.accepts(document)) { safely(this.router.notify('textDocument/didClose', toProtocol.asCloseTextDocumentParams(document))); this.diagnostics.delete(document.uri); } }), + vscode.workspace.onDidChangeConfiguration(event => { if (event.affectsConfiguration('hornet-cpp', this.root.uri) || event.affectsConfiguration('cmake', this.root.uri)) { this.scheduleRestart(); } }) + ); + const watcher = vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(this.root, '**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}')); + const changed = (uri: vscode.Uri, type: lsp.FileChangeType) => { + if (!this.owns(uri)) { return; } + safely(this.router.notify('workspace/didChangeWatchedFiles', { changes: [{ uri: uri.toString(), type }] })); + // Inferred databases must rediscover added/removed translation units. + if (!this.database.size && type !== lsp.FileChangeType.Changed) { this.scheduleRestart(); } + }; + watcher.onDidCreate(uri => changed(uri, lsp.FileChangeType.Created)); + watcher.onDidChange(uri => changed(uri, lsp.FileChangeType.Changed)); + watcher.onDidDelete(uri => changed(uri, lsp.FileChangeType.Deleted)); + this.subscriptions.push(watcher); + await this.restart(); + } + private scheduleRestart() { + if (this.disposed) { return; } + if (this.manualIndexBuild) { this.restartPending = true; return; } + if (this.restartTimer) { clearTimeout(this.restartTimer); } + this.restartTimer = setTimeout(() => { void this.restart().catch(error => { this.setFailure(error); this.log(this.error!); }); }, 500); + } + async restart() { + if (this.restartTimer) { clearTimeout(this.restartTimer); this.restartTimer = undefined; } + await this.database.reload(false); + const configured = vscode.workspace.getConfiguration('hornet-cpp', this.root.uri).get('mode', ParseMode.Hybrid); + const selected = resolveMode(configured); + this.modeNotice = selected.notice; + if (selected.notice) { this.log(selected.notice); } + await this.modes.switchMode(selected.mode); + } + async executeCommand(document: vscode.Uri, command: vscode.Command) { + if (!vscode.workspace.isTrusted) { throw new Error('Workspace trust is required.'); } + const engine = this.modes.getActiveEngine(); + if (engine?.mode === ParseMode.Hybrid && !this.database.get(document.fsPath)) { throw new Error('This file has no compile command.'); } + if (!engine?.getCapabilities().executeCommandProvider?.commands.includes(command.command)) { throw new Error('The backend did not advertise this command.'); } + this.commandExecutions++; + try { return await this.router.request('workspace/executeCommand', { command: command.command, arguments: command.arguments }); } + finally { this.commandExecutions--; } + } + buildProjectIndex(): Promise { + if (this.manualIndexBuild) { return this.manualIndexBuild; } + const build = (async () => { + // This operation explicitly restarts below; do not enqueue a second restart on completion. + await this.database.reload(false); + if (this.disposed) { throw new Error('Workspace was closed.'); } + await this.restart(); + const engine = this.modes.getActiveEngine(); + if (!engine?.buildIndex) { throw new Error(this.error || 'Language service is unavailable.'); } + await engine.buildIndex(); + })(); + this.manualIndexBuild = build; + void build.finally(() => { + if (this.manualIndexBuild === build) { + this.manualIndexBuild = undefined; + if (this.restartPending) { this.restartPending = false; this.scheduleRestart(); } + } + }).catch(() => {}); + return build; + } + async syncFile(uri: vscode.Uri) { + await this.router.notify('workspace/didChangeWatchedFiles', { changes: [{ uri: uri.toString(), type: lsp.FileChangeType.Changed }] }); + } + async dispose() { + this.disposed = true; + if (this.restartTimer) { clearTimeout(this.restartTimer); } + this.subscriptions.forEach(subscription => subscription.dispose()); + this.database.dispose(); + this.providers?.dispose(); + this.invalidate(this.router); + await this.modes.shutdown(); + this.diagnostics.dispose(); + this.refresh.dispose(); + this.indexChanges.dispose(); + } +} diff --git a/Extension/src/hornet/engines/compilerEngine.ts b/Extension/src/hornet/engines/compilerEngine.ts new file mode 100644 index 000000000..25e970f64 --- /dev/null +++ b/Extension/src/hornet/engines/compilerEngine.ts @@ -0,0 +1,449 @@ +import * as vscode from 'vscode'; +import * as fs from 'node:fs/promises'; +import { realpathSync } from 'node:fs'; +import { fileURLToPath, pathToFileURL } from 'node:url'; +import { ChildProcessWithoutNullStreams } from 'node:child_process'; +import { createMessageConnection, StreamMessageReader, StreamMessageWriter, MessageConnection } from 'vscode-jsonrpc/node'; +import * as lsp from 'vscode-languageserver-protocol'; +import { IndexStatus, LanguageEngine, ParseMode } from './languageEngine'; +import { ProcessManager } from '../core/processManager'; +import { BinaryManager } from '../core/binaryManager'; +import { threadCount } from '../core/cpuScheduler'; +import { prepareCompilerConfiguration } from '../compdb/fallbackCompilation'; +import { canonical } from '../compdb/compileCommandsParser'; +import { createConverter } from 'vscode-languageclient/lib/common/protocolConverter'; +import { backgroundIndexStatus } from '../core/indexProgress'; +export interface CompilerOptions { + root: vscode.WorkspaceFolder; + databaseDirectory: string; + log: (message: string) => void; + diagnostics: (params: lsp.PublishDiagnosticsParams) => void; + changed: () => void; + refresh: () => void; + canApplyEdit: () => boolean; + resolveBinary?: (configured: string) => Promise; + indexChanged?: (status: IndexStatus) => void; +} +export class CompilerEngine implements LanguageEngine { + readonly mode = ParseMode.Compiler; + private connection?: MessageConnection; + private process?: ChildProcessWithoutNullStreams; + private capabilities: lsp.ServerCapabilities = {}; + private stopping = false; + private crashes = 0; + private recovery?: Promise; + private ready = false; + private readonly editorDocuments = new Map(); + private readonly graphDocuments = new Map>(); + private readonly graphDocumentUris = new Map(); + private fallbackSources: string[] = []; + private fallbackPrepared?: Promise; + private indexSources: string[] = []; + private indexBuild?: Promise; + private indexActivity = 0; + private indexStarted = 0; + private indexPresentation?: IndexStatus; + private reportIndex(status: IndexStatus): void { + if (status.state === 'building') { + this.indexStarted ||= Date.now(); + status = { ...status, elapsedSeconds: Math.floor((Date.now() - this.indexStarted) / 1000) }; + } else { this.indexStarted = 0; } + if (JSON.stringify(status) === JSON.stringify(this.indexPresentation)) { return; } + this.indexPresentation = status; + this.options.log(`[Index] ${status.message}${status.percentage === undefined ? '' : ` (${status.percentage}%)`}`); + this.options.indexChanged?.(status); + } + private documentKey(uri: string): string { return uri.startsWith('file:') ? canonical(fileURLToPath(uri)) : uri; } + private documentUri(uri: string): string { + if (!uri.startsWith('file:')) { return uri; } + try { return pathToFileURL(realpathSync.native(fileURLToPath(uri))).toString(); } catch { return uri; } + } + private async ensureGraphDocument(uri: string): Promise { + uri = this.documentUri(uri); + const key = this.documentKey(uri); + if (this.editorDocuments.has(key)) { return; } + const pending = this.graphDocuments.get(key); + if (pending) { return pending; } + if (!uri.startsWith('file:')) { return; } + if (this.graphDocuments.size >= 250) { throw new Error('调用关系涉及的文件超过 250 个,请选择更小的调用链。'); } + const connection = this.connection; + const opening = (async () => { + const filename = fileURLToPath(uri); + const text = await fs.readFile(filename, 'utf8'); + if (!connection || connection !== this.connection || this.editorDocuments.has(key)) { return; } + await connection.sendNotification('textDocument/didOpen', { textDocument: { uri, languageId: /\.c$/.test(filename) ? 'c' : 'cpp', version: 0, text } }); + // Wait for the AST. Background-index references alone can omit caller containers such as main(). + await connection.sendRequest('textDocument/documentSymbol', { textDocument: { uri } }); + })(); + this.graphDocuments.set(key, opening); + this.graphDocumentUris.set(key, uri); + try { await opening; } catch (error) { this.graphDocuments.delete(key); this.graphDocumentUris.delete(key); throw error; } + } + private indexing?: { done: Promise; finish: () => void }; + private beginIndexing(): void { + if (this.indexing) { return; } + let finish!: () => void; + const done = new Promise(resolve => { finish = resolve; }); + this.indexing = { done, finish }; + } + private endIndexing(): void { this.indexing?.finish(); this.indexing = undefined; } + constructor(private readonly processes: ProcessManager, private readonly options: CompilerOptions) { + } + getCapabilities() { + return this.capabilities; + } + async initialize(): Promise { + if (!vscode.workspace.isTrusted) { + throw new Error('Trust this workspace before starting Hornet Compiler.'); + } + this.stopping = false; + this.ready = false; + this.editorDocuments.clear(); this.graphDocuments.clear(); this.graphDocumentUris.clear(); + this.fallbackPrepared = undefined; + this.indexBuild = undefined; + const config = vscode.workspace.getConfiguration('hornet-cpp', this.options.root.uri); + const configured = config.get('clangd.path', 'clangd'); + const binary = await (this.options.resolveBinary?.(configured) ?? new BinaryManager().resolve(configured)); + const extra = config.get('clangd.arguments', []); + if (extra.some(arg => /^--?(query-driver|compile-commands-dir|enable-config|background-index|j)(=|$)/.test(arg))) { + throw new Error('Use Hornet settings for query-driver, compile database and CPU usage; clangd config execution is disabled.'); + } + const allowlist = config.get('clangd.queryDriver', []); + this.reportIndex({ state: 'building', phase: 'discovering', message: 'Discovering C/C++ sources and compile commands' }); + const compilation = await prepareCompilerConfiguration(realpathSync.native(this.options.root.uri.fsPath), realpathSync.native(this.options.databaseDirectory)); + this.indexSources = compilation.sources; + this.reportIndex({ state: 'building', phase: 'starting', message: `Starting clangd for ${this.indexSources.length} source files`, total: this.indexSources.length }); + this.fallbackSources = compilation.inferred ? compilation.sources : []; + if (compilation.inferred) { this.options.log(`No compilation database: inferred browsing commands for ${compilation.inferred} source files. Build flags and macros may still be incomplete.`); } + const args = [ + '--background-index', '--enable-config=0', + `--compile-commands-dir=${compilation.directory}`, + `-j=${threadCount(config.get('cpuUsage', 'Medium'))}`, ...extra + ]; + if (allowlist.length) { + args.push(`--query-driver=${allowlist.join(',')}`); + } + this.options.log(`Starting ${binary}`); + const child = await this.processes.spawn(binary, args, this.options.root.uri.fsPath); + this.process = child; + child.stderr.on('data', data => this.options.log(String(data).trimEnd())); + const connection = createMessageConnection(new StreamMessageReader(child.stdout), new StreamMessageWriter(child.stdin)); + this.connection = connection; + connection.onError(error => this.options.log(`Protocol error : ${String(error[0])}`)); + connection.onNotification('textDocument/publishDiagnostics', (params: lsp.PublishDiagnosticsParams) => { + if (this.connection === connection && !this.stopping) { this.options.diagnostics(params); } + }); + connection.onNotification('window/logMessage', (params: lsp.LogMessageParams) => this.options.log(params.message)); + connection.onNotification('window/showMessage', (params: lsp.ShowMessageParams) => this.options.log(params.message)); + connection.onRequest('workspace/configuration', (params: lsp.ConfigurationParams) => params.items.map(() => null)); + connection.onRequest('workspace/workspaceFolders', () => [{ uri: this.documentUri(this.options.root.uri.toString()), name: this.options.root.name }]); + connection.onRequest('window/workDoneProgress/create', (params: { token: string | number }) => { + if (this.connection === connection && params.token === 'backgroundIndexProgress') { this.beginIndexing(); } + return null; + }); + connection.onNotification('$/progress', (params: { token: string | number; value: { kind: string; message?: string; percentage?: number } }) => { + if (this.connection !== connection || this.stopping || params.token !== 'backgroundIndexProgress') { return; } + this.indexActivity = Date.now(); + if (params.value.kind === 'end') { + this.endIndexing(); + if (!this.indexBuild && !this.stopping) { + this.reportIndex({ state: 'ready', message: `Index ready: ${this.indexSources.length} source files`, percentage: 100 }); + } else if (this.indexBuild) { + this.reportIndex({ state: 'building', phase: 'finalizing', message: 'Background indexing finished; waiting for pending work' }); + } + } + else { + this.beginIndexing(); + this.reportIndex(backgroundIndexStatus(params.value)); + } + }); + connection.onRequest('workspace/applyEdit', async (params: lsp.ApplyWorkspaceEditParams) => { + if (!vscode.workspace.isTrusted || !this.options.canApplyEdit()) { return { applied: false, failureReason: 'No active Hornet code action.' }; } + const edit = await createConverter(undefined, false, false).asWorkspaceEdit(params.edit); + return { applied: await vscode.workspace.applyEdit(edit) }; + }); + connection.onRequest('workspace/semanticTokens/refresh', () => { + this.options.refresh(); + return null; + }); + connection.onRequest('workspace/inlayHint/refresh', () => { + this.options.refresh(); + return null; + }); + connection.onClose(() => { + if (this.connection !== connection || this.stopping) { + return; + } + this.capabilities = {}; + this.endIndexing(); + const wasReady = this.ready; + this.ready = false; + this.options.changed(); + if (wasReady) { this.recovery = this.recover().catch(error => this.options.log(String(error))); } + }); + connection.listen(); + const initialization: lsp.InitializeParams = { + processId: process.pid, + rootUri: this.documentUri(this.options.root.uri.toString()), + workspaceFolders: [{ uri: this.documentUri(this.options.root.uri.toString()), name: this.options.root.name }], + clientInfo: { name: 'Hornet C/C++', version: '0.1.9' }, + initializationOptions: { fallbackFlags: compilation.fallbackFlags }, + capabilities: { + window: { workDoneProgress: true }, + general: { positionEncodings: ['utf-16'] }, + workspace: { configuration: true, workspaceFolders: true, applyEdit: true, workspaceEdit: { documentChanges: true } }, + textDocument: { + synchronization: { didSave: true }, + completion: { + completionItem: { + snippetSupport: true, + documentationFormat: ['markdown', 'plaintext'], + resolveSupport: { properties: ['documentation', 'detail', 'additionalTextEdits'] } + } + }, + hover: { contentFormat: ['markdown', 'plaintext'] }, + signatureHelp: { signatureInformation: { documentationFormat: ['markdown', 'plaintext'], parameterInformation: { labelOffsetSupport: true } } }, + definition: { linkSupport: true }, + declaration: { linkSupport: true }, + typeDefinition: { linkSupport: true }, + implementation: { linkSupport: true }, + documentSymbol: { hierarchicalDocumentSymbolSupport: true }, + rename: { prepareSupport: true }, + codeAction: { + codeActionLiteralSupport: { codeActionKind: { valueSet: ['', 'quickfix', 'refactor', 'source'] } }, + resolveSupport: { properties: ['edit'] } + }, + foldingRange: { lineFoldingOnly: true }, + callHierarchy: {}, + typeHierarchy: {}, + inlayHint: {}, + semanticTokens: { + requests: { full: true }, + tokenTypes: [ + 'namespace', 'type', 'class', 'enum', 'interface', 'struct', 'typeParameter', 'parameter', + 'variable', 'property', 'enumMember', 'event', 'function', 'method', 'macro', 'keyword', + 'modifier', 'comment', 'string', 'number', 'regexp', 'operator', 'decorator' + ], + tokenModifiers: [ + 'declaration', 'definition', 'readonly', 'static', 'deprecated', 'abstract', 'async', 'modification', 'documentation', 'defaultLibrary' + ], + formats: ['relative'] + } + } + } + }; + let timer: NodeJS.Timeout | undefined; + try { + const result = await Promise.race([ + connection.sendRequest('initialize', initialization), + new Promise((_, reject) => { timer = setTimeout(() => reject(new Error('clangd initialization timed out')), 20000); }) + ]); + this.capabilities = result.capabilities; + await connection.sendNotification('initialized', {}); + this.ready = true; + this.options.log('Compiler ready'); + } + finally { + if (timer) { + clearTimeout(timer); + } + } + } + private async recover(): Promise { + if (this.stopping) { + return; + } + if (++this.crashes > 2) { + this.options.log('Compiler stopped after three crashes. Restart language services to retry.'); + void vscode.window.showErrorMessage('Hornet Compiler stopped after three crashes. See Hornet logs.'); + return; + } + this.options.log(`Compiler crashed; automatic restart ${this.crashes} / 2`); + const child = this.process; + this.connection?.dispose(); + this.connection = undefined; + if (child) { + await this.processes.stop(child); + } + if (!this.stopping) { + try { await this.initialize(); } + catch (error) { + this.options.log(`Automatic restart failed: ${String(error)}`); + this.ready = false; + this.capabilities = {}; + this.disposeConnection(); + if (this.process) { await this.processes.stop(this.process); } + } + this.options.changed(); + } + } + private disposeConnection(): void { + this.endIndexing(); + this.connection?.dispose(); + this.connection = undefined; + } + async shutdown(): Promise { + this.stopping = true; + this.indexStarted = 0; this.indexPresentation = undefined; + this.endIndexing(); + this.ready = false; + await this.recovery; + const connection = this.connection; + this.connection = undefined; + this.capabilities = {}; + if (connection) { + let timer: NodeJS.Timeout | undefined; + try { + await Promise.race([connection.sendRequest('shutdown'), new Promise(resolve => { timer = setTimeout(resolve, 1500); })]); + await connection.sendNotification('exit'); + } + catch { /* Crashed backends may have already closed the transport. */ + } + finally { + if (timer) { + clearTimeout(timer); + } + connection.dispose(); + } + } + if (this.process) { + await this.processes.stop(this.process); + this.process = undefined; + } + } + async restart() { + await this.shutdown(); + this.crashes = 0; + await this.initialize(); + } + buildIndex(): Promise { + if (this.indexBuild) { return this.indexBuild; } + const connection = this.connection; + const active = () => connection && connection === this.connection && this.ready && !this.stopping; + const build = (async () => { + if (!active()) { throw new Error('Language service is not ready to build the index.'); } + this.reportIndex({ state: 'building', phase: 'parsing', message: `Loading compilation database (${this.indexSources.length} source files)`, total: this.indexSources.length }); + // Loading one translation unit makes clangd load the compilation database and queue ALL + // its entries. The background index writes reusable .idx shards, including unopened files. + const seed = this.indexSources.find(file => { + try { return realpathSync.native(file); } catch { return false; } + }); + if (seed) { + this.reportIndex({ state: 'building', phase: 'parsing', message: `Parsing ${seed}`, total: this.indexSources.length }); + await this.ensureGraphDocument(pathToFileURL(seed).toString()); + await connection!.sendRequest('textDocument/documentSymbol', { textDocument: { uri: this.documentUri(pathToFileURL(seed).toString()) } }); + this.indexActivity = Date.now(); + if (!this.indexing) { this.reportIndex({ state: 'building', phase: 'finalizing', message: 'Checking background work and cached index' }); } + const deadline = Date.now() + 10 * 60 * 1000; + // Progress creation is asynchronous. Require a quiet interval after the AST barrier + // (also handles reopening a completely cached project with no progress work). + while (this.indexing || Date.now() - this.indexActivity < 1500) { + if (!active()) { throw new Error('Index build interrupted by a language-service restart.'); } + if (Date.now() > deadline) { throw new Error('Index is still building after 10 minutes. Check Hornet logs and retry.'); } + if (this.indexPresentation?.state === 'building') { this.reportIndex(this.indexPresentation); } + await new Promise(resolve => setTimeout(resolve, 100)); + } + } else if (this.indexSources.length) { throw new Error('No compilation-database source file exists on this workspace host.'); } + if (!active()) { throw new Error('Index build interrupted by a language-service restart.'); } + const message = seed ? `Index ready: ${this.indexSources.length} source files (cached for next startup)` : 'No C/C++ source files found to index'; + this.options.log(message); + this.reportIndex({ state: 'ready', message, percentage: 100 }); + })(); + this.indexBuild = build; + void build.catch(error => { + if (active()) { this.reportIndex({ state: 'failed', message: String(error) }); } + }).finally(() => { if (this.indexBuild === build) { this.indexBuild = undefined; } }); + return build; + } + async request(method: string, params: unknown, token?: vscode.CancellationToken): Promise { + if (!this.connection || !Object.keys(this.capabilities).length || token?.isCancellationRequested) { + return null; + } + const connection = this.connection; + const input = params as { textDocument?: { uri: string } }; + if (input?.textDocument) { params = { ...input, textDocument: { ...input.textDocument, uri: this.documentUri(input.textDocument.uri) } }; } + if (method === 'callHierarchy/incomingCalls' || method === 'callHierarchy/outgoingCalls') { + const item = (params as { item: lsp.CallHierarchyItem }).item; + if (this.fallbackSources.length && !this.fallbackPrepared) { + this.fallbackPrepared = (async () => { + if (this.fallbackSources.length > 250) { throw new Error('未配置编译数据库且源文件超过 250 个,请先导入 compile_commands.json 以建立完整调用索引。'); } + for (let index = 0; index < this.fallbackSources.length; index += 4) { + if (connection !== this.connection || this.stopping) { return; } + await Promise.all(this.fallbackSources.slice(index, index + 4).map(file => this.ensureGraphDocument(pathToFileURL(file).toString()))); + } + })(); + void this.fallbackPrepared.catch(() => { this.fallbackPrepared = undefined; }); + } + await this.fallbackPrepared; + await this.ensureGraphDocument(item.uri); + const key = this.documentKey(item.uri); + const sourceUri = this.editorDocuments.get(key) ?? this.graphDocumentUris.get(key) ?? item.uri; + params = { ...(params as object), item: { ...item, uri: sourceUri } }; + // Call-hierarchy requests can read the index without waiting for pending editor changes. + await connection.sendRequest('textDocument/documentSymbol', { textDocument: { uri: sourceUri } }); + if (this.indexing) { + let timer: NodeJS.Timeout | undefined; + try { + await Promise.race([this.indexing.done, new Promise((_, reject) => { + timer = setTimeout(() => reject(new Error('项目索引仍在构建,调用关系尚不完整。请稍后刷新调用图。')), 30000); + })]); + } finally { if (timer) { clearTimeout(timer); } } + } + if (this.connection !== connection || token?.isCancellationRequested) { return null; } + if (method === 'callHierarchy/incomingCalls') { + // Resolve callers from semantic references, then let clangd classify the actual calls. + // This also avoids treating address-taking references as calls. + const references = await connection.sendRequest('textDocument/references', { + textDocument: { uri: sourceUri }, position: item.selectionRange.start, context: { includeDeclaration: false } + }); + const files = [...new Set((references ?? []).map(reference => reference.uri))]; + for (let index = 0; index < files.length; index += 4) { + if (this.connection !== connection || token?.isCancellationRequested) { return null; } + await Promise.all(files.slice(index, index + 4).map(uri => this.ensureGraphDocument(uri))); + } + } + } + const result = await (token ? connection.sendRequest(method, params, token) : connection.sendRequest(method, params)); + if ((method === 'callHierarchy/incomingCalls' || method === 'callHierarchy/outgoingCalls') && Array.isArray(result)) { + // clangd may retain an indexed edge after an unsaved edit but return no call sites for it. + return result.filter((call: lsp.CallHierarchyIncomingCall | lsp.CallHierarchyOutgoingCall) => call.fromRanges.length > 0) as T; + } + return result; + } + async notify(method: string, params: unknown): Promise { + let document = (params as { textDocument?: { uri: string; version?: number; text?: string } })?.textDocument; + if (document) { document = { ...document, uri: this.documentUri(document.uri) }; params = { ...(params as object), textDocument: document }; } + const key = document && this.documentKey(document.uri); + if (document && method === 'textDocument/didOpen') { + await this.graphDocuments.get(key!); + this.editorDocuments.set(key!, document.uri); + if (this.graphDocuments.delete(key!)) { + const graphUri = this.graphDocumentUris.get(key!)!; + this.graphDocumentUris.delete(key!); + if (graphUri !== document.uri) { + await this.connection?.sendNotification('textDocument/didClose', { textDocument: { uri: graphUri } }); + await this.connection?.sendNotification(method, params); + } else { + await this.connection?.sendNotification('textDocument/didChange', { textDocument: { uri: document.uri, version: document.version }, contentChanges: [{ text: document.text }] }); + } + return; + } + } + if (document && method === 'textDocument/didClose') { this.editorDocuments.delete(key!); } + if (method === 'workspace/didChangeWatchedFiles') { + for (const change of (params as lsp.DidChangeWatchedFilesParams).changes) { + const changedKey = this.documentKey(change.uri); + const pending = this.graphDocuments.get(changedKey); + if (pending && !this.editorDocuments.has(changedKey)) { + await pending.catch(() => {}); + this.graphDocuments.delete(changedKey); + const graphUri = this.graphDocumentUris.get(changedKey) ?? change.uri; + this.graphDocumentUris.delete(changedKey); + await this.connection?.sendNotification('textDocument/didClose', { textDocument: { uri: graphUri } }); + this.fallbackPrepared = undefined; + } + } + } + await this.connection?.sendNotification(method, params); + } +} diff --git a/Extension/src/hornet/engines/hybridEngine.ts b/Extension/src/hornet/engines/hybridEngine.ts new file mode 100644 index 000000000..720847587 --- /dev/null +++ b/Extension/src/hornet/engines/hybridEngine.ts @@ -0,0 +1,62 @@ +import type { CancellationToken } from 'vscode'; +import { LanguageEngine, ParseMode } from './languageEngine'; +import { fileURLToPath } from 'node:url'; +import { canonical } from '../compdb/compileCommandsParser'; + +const preciseMethods = new Set(['textDocument/prepareRename', 'textDocument/rename', + 'textDocument/codeAction', 'codeAction/resolve', 'workspace/executeCommand']); + +function requestUri(params: unknown): string | undefined { + const p = params as { textDocument?: { uri: string }; item?: { uri: string } }; + return p?.textDocument?.uri ?? p?.item?.uri; +} + +export function deduplicate(items: T[]): T[] { + const seen = new Set(); + return items.filter(item => { + type Location = { uri?: string; range?: { start: { line: number; character: number } } }; + const value = item as Location & { name?: string; location?: Location }; + const location = value.location ?? value; + let uri = location.uri; + if (uri?.startsWith('file:')) { try { uri = canonical(fileURLToPath(uri)); } catch { /* Keep non-file/malformed URI identity. */ } } + const key = uri && location.range ? JSON.stringify([uri, location.range.start.line, location.range.start.character, value.name]) : JSON.stringify(item); + if (seen.has(key)) { return false; } + seen.add(key); + return true; + }); +} + +/** V1 runs Compiler alone. A future index engine can be injected without changing providers. */ +export class HybridEngine implements LanguageEngine { + readonly mode = ParseMode.Hybrid; + constructor(private readonly compiler: LanguageEngine, + private readonly hasCompileCommand: (uri: string) => boolean, + private readonly fallback?: LanguageEngine) {} + async initialize() { await this.compiler.initialize(); await this.fallback?.initialize(); } + async shutdown() { await Promise.all([this.compiler.shutdown(), this.fallback?.shutdown()]); } + async restart() { await this.shutdown(); await this.initialize(); } + async buildIndex() { await this.compiler.buildIndex?.(); } + getCapabilities() { return { ...this.fallback?.getCapabilities(), ...this.compiler.getCapabilities() }; } + async notify(method: string, params: unknown) { + await Promise.all([this.compiler.notify(method, params), this.fallback?.notify(method, params)]); + } + async request(method: string, params: unknown, token?: CancellationToken): Promise { + const uri = requestUri(params); + const covered = uri !== undefined && this.hasCompileCommand(uri); + if (preciseMethods.has(method) && uri !== undefined && !covered) { return null; } + if (method === 'workspace/symbol' && this.fallback) { + const results = await Promise.all([ + this.compiler.request(method, params, token), this.fallback.request(method, params, token) + ]); + return deduplicate(results.flatMap(r => r ?? [])) as T; + } + const first = !covered && this.fallback ? this.fallback : this.compiler; + const second = first === this.compiler ? this.fallback : this.compiler; + const result = await first.request(method, params, token); + if (token?.isCancellationRequested || preciseMethods.has(method)) { return result; } + if (result === null || (Array.isArray(result) && result.length === 0)) { + return second ? second.request(method, params, token) : result; + } + return result; + } +} diff --git a/Extension/src/hornet/engines/languageEngine.ts b/Extension/src/hornet/engines/languageEngine.ts new file mode 100644 index 000000000..13cff291c --- /dev/null +++ b/Extension/src/hornet/engines/languageEngine.ts @@ -0,0 +1,50 @@ +import type { CancellationToken } from 'vscode'; +import type { ServerCapabilities } from 'vscode-languageserver-protocol'; + +export enum ParseMode { + Flyweight = 'flyweight', + Tag = 'tag', + Compiler = 'compiler', + Hybrid = 'hybrid' +} + +export interface IndexStatus { + state: 'idle' | 'building' | 'ready' | 'failed'; + message: string; + percentage?: number; + phase?: 'discovering' | 'starting' | 'parsing' | 'indexing' | 'finalizing'; + completed?: number; + total?: number; + elapsedSeconds?: number; +} + +/** Protocol values, rather than backend classes, cross the frontend boundary. */ +export interface LanguageEngine { + readonly mode: ParseMode; + initialize(): Promise; + shutdown(): Promise; + restart(): Promise; + buildIndex?(): Promise; + getCapabilities(): ServerCapabilities; + request(method: string, params: unknown, token?: CancellationToken): Promise; + notify(method: string, params: unknown): Promise; +} + +export const capabilityForMethod: Record = { + 'textDocument/completion': 'completionProvider', 'completionItem/resolve': 'completionProvider', + 'textDocument/hover': 'hoverProvider', 'textDocument/signatureHelp': 'signatureHelpProvider', + 'textDocument/definition': 'definitionProvider', 'textDocument/declaration': 'declarationProvider', + 'textDocument/typeDefinition': 'typeDefinitionProvider', 'textDocument/implementation': 'implementationProvider', + 'textDocument/references': 'referencesProvider', 'textDocument/prepareRename': 'renameProvider', + 'textDocument/rename': 'renameProvider', 'textDocument/codeAction': 'codeActionProvider', + 'codeAction/resolve': 'codeActionProvider', 'workspace/executeCommand': 'executeCommandProvider', + 'textDocument/documentSymbol': 'documentSymbolProvider', 'workspace/symbol': 'workspaceSymbolProvider', + 'textDocument/foldingRange': 'foldingRangeProvider', 'textDocument/formatting': 'documentFormattingProvider', + 'textDocument/rangeFormatting': 'documentRangeFormattingProvider', + 'textDocument/semanticTokens/full': 'semanticTokensProvider', + 'textDocument/inlayHint': 'inlayHintProvider', 'inlayHint/resolve': 'inlayHintProvider', + 'textDocument/prepareCallHierarchy': 'callHierarchyProvider', + 'callHierarchy/incomingCalls': 'callHierarchyProvider', 'callHierarchy/outgoingCalls': 'callHierarchyProvider', + 'textDocument/prepareTypeHierarchy': 'typeHierarchyProvider', + 'typeHierarchy/supertypes': 'typeHierarchyProvider', 'typeHierarchy/subtypes': 'typeHierarchyProvider' +}; diff --git a/Extension/src/hornet/engines/unavailableEngine.ts b/Extension/src/hornet/engines/unavailableEngine.ts new file mode 100644 index 000000000..86ce48c2b --- /dev/null +++ b/Extension/src/hornet/engines/unavailableEngine.ts @@ -0,0 +1,12 @@ +import { LanguageEngine, ParseMode } from './languageEngine'; + +/** Reserved modes fail explicitly; they never impersonate a working index. */ +export class UnavailableEngine implements LanguageEngine { + constructor(readonly mode: ParseMode.Tag | ParseMode.Flyweight) {} + async initialize(): Promise { throw new Error(`${this.mode} is planned for a later release. Select Compiler or Hybrid.`); } + async shutdown(): Promise {} + async restart(): Promise { await this.initialize(); } + getCapabilities() { return {}; } + async request(): Promise { return null; } + async notify(): Promise {} +} diff --git a/Extension/src/hornet/extension.ts b/Extension/src/hornet/extension.ts new file mode 100644 index 000000000..bef05d175 --- /dev/null +++ b/Extension/src/hornet/extension.ts @@ -0,0 +1,271 @@ +import * as vscode from 'vscode'; +import * as path from 'node:path'; +import * as lsp from 'vscode-languageserver-protocol'; +import { ProcessManager } from './core/processManager'; +import { WorkspaceContext } from './core/workspaceContext'; +import { ParseMode } from './engines/languageEngine'; +import { HierarchyNode, HierarchyView } from './views/hierarchyView'; +import { HornetApiVersion, HornetCppApi, HornetCppExports } from './api/hornetCppApi'; +import { textPosition } from './providers/languageProviders'; +import { registerBuildTasks } from './tasks/buildTaskProvider'; +import { BackendNotFoundError, BinaryManager } from './core/binaryManager'; +import { availableModes, serviceStatus } from './core/serviceStatus'; +import { CallGraphPanel } from './views/callGraphPanel'; +import { installClangd } from './core/clangdInstaller'; + +const workspaces = new Map(); +let processes: ProcessManager; +let stopping = false; + +export async function activate(context: vscode.ExtensionContext): Promise { + stopping = false; + processes = new ProcessManager(); + context.subscriptions.push(registerBuildTasks()); + const output = vscode.window.createOutputChannel('Hornet C/C++'); + output.appendLine(`Hornet C/C++ ${context.extension.packageJSON.version} (${context.extensionPath})`); + const status = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left, 10); + status.command = 'hornet-cpp.switchMode'; + const modeStatus = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left, 11); + modeStatus.name = 'Hornet Parsing Mode'; + status.name = 'Hornet Index'; + const callGraph = new HierarchyView('call'); + const callGraphPanel = new CallGraphPanel(context.extensionUri); + const typeHierarchy = new HierarchyView('type'); + context.subscriptions.push(output, status, modeStatus, callGraph, callGraphPanel, typeHierarchy, + vscode.window.registerWebviewViewProvider(CallGraphPanel.viewId, callGraphPanel, { webviewOptions: { retainContextWhenHidden: true } }), + vscode.window.createTreeView('hornet-cpp.callGraph', { treeDataProvider: callGraph }), + vscode.window.createTreeView('hornet-cpp.typeHierarchy', { treeDataProvider: typeHierarchy })); + + const current = (uri = vscode.window.activeTextEditor?.document.uri) => { + const folder = uri && vscode.workspace.getWorkspaceFolder(uri); + return folder ? workspaces.get(folder.uri.toString()) : undefined; + }; + const updateStatus = () => { + const workspace = current() ?? [...workspaces.values()].find(value => value.indexStatus.state === 'building') ?? [...workspaces.values()][0]; + if (!workspace) { status.hide(); modeStatus.hide(); return; } + const engine = workspace.modes.getActiveEngine(); + const mode = engine?.mode ?? vscode.workspace.getConfiguration('hornet-cpp', workspace.root.uri).get('mode', ParseMode.Hybrid); + modeStatus.text = `$(symbol-namespace) Hornet: ${mode === ParseMode.Hybrid ? 'Hybrid' : mode === ParseMode.Tag ? 'Tag' : mode === ParseMode.Flyweight ? 'Flyweight' : 'Compiler'} $(chevron-down)`; + modeStatus.command = { title: 'Switch Hornet Mode', command: 'hornet-cpp.switchMode', arguments: [workspace.root.uri] }; + modeStatus.tooltip = `${workspace.root.name}\nSwitch parsing mode`; + modeStatus.show(); + const document = vscode.window.activeTextEditor?.document; + const covered = document && workspace.database.get(document.uri.fsPath); + const presentation = serviceStatus(workspace.state, engine?.mode, workspace.indexStatus); + status.text = presentation.text; + status.command = { title: 'Hornet C/C++', command: presentation.command, arguments: [workspace.root.uri] }; + status.tooltip = [workspace.root.name, workspace.error ?? (covered ? 'Compile command available' : 'No compile command: analysis may be incomplete; diagnostics are filtered by default.'), + workspace.modeNotice, workspace.indexStatus.message, `${workspace.database.size} compile commands`].filter(Boolean).join('\n'); + status.show(); + }; + context.subscriptions.push(vscode.window.onDidChangeActiveTextEditor(updateStatus)); + let setupNoticeShown = false; + const report = (error: unknown) => { + const message = error instanceof Error ? error.message : String(error); + output.appendLine(`[${new Date().toISOString()}] [ERROR] ${message}`); + if (error instanceof BackendNotFoundError) { + if (setupNoticeShown) { return; } + setupNoticeShown = true; + void vscode.window.showWarningMessage(message, 'Retry automatic setup', 'Open Logs').then(async action => { + if (action === 'Retry automatic setup') { await vscode.commands.executeCommand('hornet-cpp.autoSetupClangd'); } + if (action === 'Open Logs') { output.show(); } + }); + return; + } + void vscode.window.showErrorMessage(`Hornet C/C++: ${message}`); + }; + const initialize = async (folder: vscode.WorkspaceFolder) => { + if (!vscode.workspace.isTrusted || stopping || workspaces.has(folder.uri.toString())) { return; } + const workspace = new WorkspaceContext(folder, processes, + text => output.appendLine(`[${new Date().toISOString()}] [${folder.name}] [Compiler] ${text}`), updateStatus, + router => { callGraph.clear(router); callGraphPanel.clear(router); typeHierarchy.clear(router); }, + configured => { + const existing = vscode.workspace.getConfiguration('clangd', folder.uri).get('path'); + const manager = new BinaryManager({ storagePath: context.globalStorageUri.fsPath, + extraCandidates: existing && path.isAbsolute(existing) ? [existing] : [] }); + return manager.ensure(configured, async () => vscode.window.withProgress({ location: vscode.ProgressLocation.Notification, + title: 'Hornet: Setting up clangd automatically' }, progress => installClangd({ + storagePath: context.globalStorageUri.fsPath, + proxy: vscode.workspace.getConfiguration('http').get('proxy') || process.env.HTTPS_PROXY || process.env.https_proxy || process.env.HTTP_PROXY || process.env.http_proxy, + report: message => { progress.report({ message }); output.appendLine(message); } + }))); + }); + workspaces.set(folder.uri.toString(), workspace); + try { await workspace.initialize(); } + catch (error) { workspace.setFailure(error); report(error); } + updateStatus(); + }; + const chooseWorkspace = async (uri?: vscode.Uri): Promise => { + const active = current(uri); + if (active) { return active; } + if (workspaces.size === 1) { return [...workspaces.values()][0]; } + const selected = await vscode.window.showQuickPick([...workspaces.values()].map(workspace => ({ label: workspace.root.name, description: workspace.root.uri.fsPath, workspace })), { title: 'Hornet C/C++: Select workspace' }); + if (!selected) { throw new Error('Open or select a trusted workspace folder.'); } + return selected.workspace; + }; + const register = (name: string, action: (...args: any[]) => unknown) => { + context.subscriptions.push(vscode.commands.registerCommand(`hornet-cpp.${name}`, async (...args: unknown[]) => { + try { return await action(...args); } catch (error) { report(error); return undefined; } + })); + }; + register('openLogs', () => output.show()); + register('autoSetupClangd', async (root?: vscode.Uri) => { + setupNoticeShown = false; + await (await chooseWorkspace(root)).restart(); + updateStatus(); + }); + register('configureClangd', async (root?: vscode.Uri) => { + const workspace = await chooseWorkspace(root); + const selected = await vscode.window.showOpenDialog({ + title: 'Select clangd on the workspace host', openLabel: 'Use clangd', + canSelectMany: false, canSelectFolders: false, defaultUri: workspace.root.uri, + ...(process.platform === 'win32' ? { filters: { Executable: ['exe'] } } : {}) + }); + if (!selected?.length) { return; } + const binary = await new BinaryManager().resolve(selected[0].fsPath); + await vscode.workspace.getConfiguration('hornet-cpp', workspace.root.uri).update('clangd.path', binary, vscode.ConfigurationTarget.WorkspaceFolder); + await workspace.restart(); + setupNoticeShown = false; + updateStatus(); + }); + register('switchMode', async (root?: vscode.Uri) => { + const workspace = await chooseWorkspace(root); + const mode = await vscode.window.showQuickPick([ + ...availableModes.map(value => ({ label: value === ParseMode.Compiler ? 'Compiler' : 'Hybrid', description: value === ParseMode.Hybrid ? 'Compiler analysis with compilation-database routing' : 'clangd semantic analysis', mode: value as ParseMode })), + { label: 'Tag', description: '尚未实现,暂不可切换', mode: ParseMode.Tag }, + { label: 'Flyweight', description: '尚未实现,暂不可切换', mode: ParseMode.Flyweight } + ], { title: 'Hornet C/C++ Parsing Mode' }); + if (!mode) { return; } + if (!availableModes.some(value => value === mode.mode)) { + void vscode.window.showInformationMessage(`Hornet: ${mode.label} 模式尚未实现,当前解析模式保持不变。`); + return; + } + await workspace.modes.switchMode(mode.mode); + workspace.modeNotice = undefined; + await vscode.workspace.getConfiguration('hornet-cpp', workspace.root.uri).update('mode', mode.mode, vscode.ConfigurationTarget.WorkspaceFolder); + }); + const importDatabases = async () => { + const workspace = await chooseWorkspace(); + const files = await vscode.window.showOpenDialog({ canSelectMany: true, filters: { 'Compilation database': ['json'] }, title: 'Import compilation databases (last source wins)' }); + if (files?.length) { await workspace.database.import(files.map(file => file.fsPath)); await workspace.restart(); } + }; + register('importCompilationDatabase', importDatabases); + register('mergeCompilationDatabases', importDatabases); + register('exportCompilationDatabase', async () => { + const workspace = await chooseWorkspace(); + const destination = await vscode.window.showSaveDialog({ defaultUri: vscode.Uri.file(path.join(workspace.root.uri.fsPath, 'compile_commands.export.json')), filters: { JSON: ['json'] } }); + if (destination) { await workspace.database.export(destination.fsPath); } + }); + register('generateCompilationDatabase', async () => { + const workspace = await chooseWorkspace(); + if (!vscode.workspace.isTrusted) { throw new Error('Trust this workspace before running build tools.'); } + const method = await vscode.window.showQuickPick(['CMake', 'Bear'], { title: 'Generate compilation database' }); + if (!method) { return; } + await vscode.window.withProgress({ location: vscode.ProgressLocation.Notification, title: `Hornet: ${method} compilation database` }, async () => { + let source: string; + if (method === 'CMake') { + const build = path.join(workspace.root.uri.fsPath, 'build'); + await processes.run('cmake', ['-S', workspace.root.uri.fsPath, '-B', build, '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON'], workspace.root.uri.fsPath, workspace.log); + source = path.join(build, 'compile_commands.json'); + } else { + const input = await vscode.window.showInputBox({ title: 'Bear build command as a JSON argument array', value: '["make", "-j2"]', prompt: 'This build command will execute in the trusted workspace, without a shell.' }); + if (!input) { return; } + const args: unknown = JSON.parse(input); + if (!Array.isArray(args) || !args.length || !args.every(arg => typeof arg === 'string')) { throw new Error('Expected a nonempty JSON array of command arguments.'); } + source = path.join(workspace.root.uri.fsPath, 'compile_commands.json'); + await processes.run('bear', ['--output', source, '--', ...args], workspace.root.uri.fsPath, workspace.log); + } + await workspace.database.import([source]); + await workspace.restart(); + }); + }); + register('showCompileCommand', async (uri?: vscode.Uri) => { + const target = uri ?? vscode.window.activeTextEditor?.document.uri; + if (!target) { return; } + const workspace = await chooseWorkspace(target); + const command = workspace.database.get(target.fsPath); + const document = await vscode.workspace.openTextDocument({ language: command ? 'json' : 'plaintext', content: command ? JSON.stringify(command, null, 2) : `No compile command for ${target.fsPath}.\nAnalysis may be incomplete.` }); + await vscode.window.showTextDocument(document, { preview: true }); + }); + register('restartLanguageServices', async (root?: vscode.Uri) => { await (await chooseWorkspace(root)).restart(); }); + const buildProjectIndex = async (root?: vscode.Uri) => { + const workspace = await chooseWorkspace(root); + await vscode.window.withProgress({ location: vscode.ProgressLocation.Notification, title: `Hornet: Building index (${workspace.root.name})` }, async progress => { + let reported = 0; + const subscription = workspace.onIndexChanged(index => { + const percentage = Math.max(reported, index.percentage ?? reported); + progress.report({ message: index.message, increment: percentage - reported }); + reported = percentage; + }); + try { await workspace.buildProjectIndex(); } + finally { subscription.dispose(); } + }); + void vscode.window.showInformationMessage(`Hornet: ${workspace.indexStatus.message}`); + }; + register('buildProjectIndex', buildProjectIndex); + register('syncProjectIndex', buildProjectIndex); + register('syncFileIndex', async (uri?: vscode.Uri) => { const target = uri ?? vscode.window.activeTextEditor?.document.uri; if (target) { await (await chooseWorkspace(target)).syncFile(target); } }); + register('syncFolderIndex', async (uri?: vscode.Uri) => { + const workspace = await chooseWorkspace(uri); + const folder = uri ?? workspace.root.uri; + const exclude = vscode.workspace.getConfiguration('hornet-cpp', workspace.root.uri).get('excludePaths', ['**/.git/**', '**/build/**', '**/output/**', '**/.mm/**']); + await vscode.window.withProgress({ location: vscode.ProgressLocation.Notification, title: 'Hornet: syncing folder', cancellable: true }, async (_progress, token) => { + const files = await vscode.workspace.findFiles(new vscode.RelativePattern(folder, '**/*.{c,cc,cpp,cxx,h,hpp,cu,cuh}'), `{${exclude.join(',')}}`, 10001, token); + if (files.length > 10000) { throw new Error('Folder contains over 10,000 source files. Select a smaller folder or sync the project.'); } + for (const file of files) { if (token.isCancellationRequested) { break; } await workspace.syncFile(file); } + }); + }); + const showHierarchy = async (view: HierarchyView) => { + const editor = vscode.window.activeTextEditor; + if (!editor) { return; } + const workspace = await chooseWorkspace(editor.document.uri); + const items = await workspace.router.request<(lsp.CallHierarchyItem | lsp.TypeHierarchyItem)[]>(view.kind === 'call' ? 'textDocument/prepareCallHierarchy' : 'textDocument/prepareTypeHierarchy', textPosition(editor.document, editor.selection.active)); + view.setRoots(items ?? [], workspace.router); + await vscode.commands.executeCommand(`hornet-cpp.${view.kind === 'call' ? 'callGraph' : 'typeHierarchy'}.focus`); + }; + register('showCallGraph', async () => { + const editor = vscode.window.activeTextEditor; + if (!editor || !['c', 'cpp', 'cuda-cpp'].includes(editor.document.languageId)) { return; } + const workspace = await chooseWorkspace(editor.document.uri); + if (workspace.state !== 'ready') { throw new Error('语言服务尚未就绪,请先配置或重启 clangd。'); } + const items = await workspace.router.request('textDocument/prepareCallHierarchy', textPosition(editor.document, editor.selection.active)); + callGraph.setRoots(items ?? [], workspace.router); + await callGraphPanel.show(items ?? [], workspace.router, () => workspace.callGraphNotice()); + }); + register('showTypeHierarchy', () => showHierarchy(typeHierarchy)); + register('refreshHierarchy', () => { callGraph.refresh(); typeHierarchy.refresh(); }); + register('setHierarchyRoot', (node: HierarchyNode) => { (node.kind === 'type' ? typeHierarchy : callGraph).setRoot(node); }); + register('pinCallGraph', () => { void vscode.window.showInformationMessage(`Call graph root ${callGraph.togglePin() ? 'pinned' : 'unpinned'}.`); }); + register('copySymbol', (node: HierarchyNode) => vscode.env.clipboard.writeText(node.item.name)); + register('findNodeReferences', async (node: HierarchyNode) => { + const locations = await node.router.request('textDocument/references', { textDocument: { uri: node.item.uri }, position: node.item.selectionRange.start, context: { includeDeclaration: true } }); + await vscode.commands.executeCommand('editor.action.showReferences', vscode.Uri.parse(node.item.uri), new vscode.Position(node.item.selectionRange.start.line, node.item.selectionRange.start.character), + (locations ?? []).map(location => new vscode.Location(vscode.Uri.parse(location.uri), new vscode.Range(location.range.start.line, location.range.start.character, location.range.end.line, location.range.end.character)))); + }); + register('symbolSearch', () => vscode.commands.executeCommand('workbench.action.showAllSymbols')); + register('executeServerCommand', async (root: vscode.Uri, document: vscode.Uri, command: vscode.Command) => { return workspaces.get(root.toString())?.executeCommand(document, command); }); + + context.subscriptions.push(vscode.workspace.onDidChangeWorkspaceFolders(event => { + for (const folder of event.removed) { const workspace = workspaces.get(folder.uri.toString()); workspaces.delete(folder.uri.toString()); void workspace?.dispose().catch(report); } + for (const folder of event.added) { void initialize(folder); } + updateStatus(); + })); + await Promise.all((vscode.workspace.workspaceFolders ?? []).map(initialize)); + const conflicts = ['ms-vscode.cpptools', 'llvm-vs-code-extensions.vscode-clangd'].filter(id => vscode.extensions.getExtension(id)?.isActive); + if (conflicts.length) { output.appendLine(`[INFO] Other C/C++ extensions are active (${conflicts.join(', ')}). If completions or diagnostics are duplicated, check their language-service settings.`); } + const apiWorkspace = async (uri?: string) => uri ? workspaces.get(uri) ?? Promise.reject(new Error(`Unknown workspace: ${uri}`)) : chooseWorkspace(); + const api: HornetCppApi = { + async importCompilationDatabase(file, uri) { await api.importCompilationDatabases([file], uri); }, + async importCompilationDatabases(files, uri) { const workspace = await apiWorkspace(uri); await workspace.database.import(files); await workspace.restart(); }, + async refreshIndex(uri) { await (await apiWorkspace(uri)).buildProjectIndex(); }, + async getCompileCommand(file) { return current(vscode.Uri.file(file))?.database.get(file); } + }; + return { getApi(version) { if (version !== HornetApiVersion.v1) { throw new Error(`Unsupported Hornet API version: ${version}`); } return api; } }; +} + +export async function deactivate(): Promise { + stopping = true; + await Promise.all([...workspaces.values()].map(workspace => workspace.dispose())); + workspaces.clear(); + await processes?.dispose(); +} diff --git a/Extension/src/hornet/providers/languageProviders.ts b/Extension/src/hornet/providers/languageProviders.ts new file mode 100644 index 000000000..c8250cdd1 --- /dev/null +++ b/Extension/src/hornet/providers/languageProviders.ts @@ -0,0 +1,180 @@ +import * as vscode from 'vscode'; +import * as lsp from 'vscode-languageserver-protocol'; +import * as protocolConverter from 'vscode-languageclient/lib/common/protocolConverter'; +import * as codeConverter from 'vscode-languageclient/lib/common/codeConverter'; +import { CapabilityRouter } from '../core/capabilityRouter'; + +export const toCode = protocolConverter.createConverter(undefined, false, false); +export const toProtocol = codeConverter.createConverter(); +export const textPosition = (document: vscode.TextDocument, position: vscode.Position) => ({ textDocument: { uri: document.uri.toString() }, position: { line: position.line, character: position.character } }); + +export function registerLanguageProviders(selector: vscode.DocumentSelector, router: CapabilityRouter, + capabilities: lsp.ServerCapabilities, root: vscode.Uri, refresh: vscode.Event): vscode.Disposable { + const disposables: vscode.Disposable[] = []; + const request = (method: string, params: unknown, token?: vscode.CancellationToken) => router.request(method, params, token); + const config = () => vscode.workspace.getConfiguration('hornet-cpp', root); + const uri = (document: vscode.TextDocument) => ({ textDocument: { uri: document.uri.toString() } }); + + if (capabilities.completionProvider) { + disposables.push(vscode.languages.registerCompletionItemProvider(selector, { + async provideCompletionItems(document, position, token, context) { + const result = await request('textDocument/completion', { + ...textPosition(document, position), context: { triggerKind: context.triggerKind + 1, triggerCharacter: context.triggerCharacter } + }, token); + return toCode.asCompletionResult(result); + }, + async resolveCompletionItem(item, token) { + if (!capabilities.completionProvider?.resolveProvider) { return item; } + const result = await request('completionItem/resolve', await toProtocol.asCompletionItem(item), token); + return result ? toCode.asCompletionItem(result) : item; + } + }, ...(capabilities.completionProvider.triggerCharacters ?? ['.', '>']))); + } + if (capabilities.hoverProvider) { + disposables.push(vscode.languages.registerHoverProvider(selector, { + async provideHover(d, p, t) { return toCode.asHover(await request('textDocument/hover', textPosition(d, p), t)); } + })); + } + if (capabilities.signatureHelpProvider) { + disposables.push(vscode.languages.registerSignatureHelpProvider(selector, { + async provideSignatureHelp(d, p, t) { return toCode.asSignatureHelp(await request('textDocument/signatureHelp', textPosition(d, p), t)); } + }, ...(capabilities.signatureHelpProvider.triggerCharacters ?? ['(', ',']))); + } + const definition = async (method: string, d: vscode.TextDocument, p: vscode.Position, t: vscode.CancellationToken) => + toCode.asDefinitionResult(await request(method, textPosition(d, p), t)); + if (capabilities.definitionProvider) { disposables.push(vscode.languages.registerDefinitionProvider(selector, { provideDefinition: (d, p, t) => definition('textDocument/definition', d, p, t) })); } + if (capabilities.declarationProvider) { disposables.push(vscode.languages.registerDeclarationProvider(selector, { provideDeclaration: (d, p, t) => definition('textDocument/declaration', d, p, t) })); } + if (capabilities.typeDefinitionProvider) { disposables.push(vscode.languages.registerTypeDefinitionProvider(selector, { provideTypeDefinition: (d, p, t) => definition('textDocument/typeDefinition', d, p, t) })); } + if (capabilities.implementationProvider) { disposables.push(vscode.languages.registerImplementationProvider(selector, { provideImplementation: (d, p, t) => definition('textDocument/implementation', d, p, t) })); } + if (capabilities.referencesProvider) { + disposables.push(vscode.languages.registerReferenceProvider(selector, { + async provideReferences(d, p, context, t) { return toCode.asReferences(await request('textDocument/references', { ...textPosition(d, p), context }, t)); } + })); + } + if (capabilities.renameProvider) { + disposables.push(vscode.languages.registerRenameProvider(selector, { + async prepareRename(d, p, t) { + if (typeof capabilities.renameProvider !== 'object' || !capabilities.renameProvider.prepareProvider) { + return d.getWordRangeAtPosition(p); + } + const result = await request('textDocument/prepareRename', textPosition(d, p), t); + if (!result) { throw new Error('Rename is unavailable here. Hybrid requires a compile command for this file.'); } + if ('range' in result) { return { range: toCode.asRange(result.range), placeholder: result.placeholder }; } + if ('defaultBehavior' in result) { return d.getWordRangeAtPosition(p); } + return toCode.asRange(result); + }, + async provideRenameEdits(d, p, newName, t) { return toCode.asWorkspaceEdit(await request('textDocument/rename', { ...textPosition(d, p), newName }, t)); } + })); + } + if (capabilities.documentSymbolProvider) { + disposables.push(vscode.languages.registerDocumentSymbolProvider(selector, { + async provideDocumentSymbols(d, t) { + const result = await request('textDocument/documentSymbol', uri(d), t); + if (!result?.length) { return []; } + return 'location' in result[0] ? toCode.asSymbolInformations(result as lsp.SymbolInformation[]) : toCode.asDocumentSymbols(result as lsp.DocumentSymbol[]); + } + })); + } + if (capabilities.workspaceSymbolProvider) { + disposables.push(vscode.languages.registerWorkspaceSymbolProvider({ + async provideWorkspaceSymbols(query, token) { return toCode.asSymbolInformations(await request('workspace/symbol', { query }, token)); } + })); + } + if (capabilities.foldingRangeProvider) { + disposables.push(vscode.languages.registerFoldingRangeProvider(selector, { + async provideFoldingRanges(d, _context, t) { return toCode.asFoldingRanges(await request('textDocument/foldingRange', uri(d), t)); } + })); + } + if (capabilities.documentFormattingProvider) { + disposables.push(vscode.languages.registerDocumentFormattingEditProvider(selector, { + async provideDocumentFormattingEdits(d, options, t) { return toCode.asTextEdits(await request('textDocument/formatting', { ...uri(d), options }, t)); } + })); + } + if (capabilities.documentRangeFormattingProvider) { + disposables.push(vscode.languages.registerDocumentRangeFormattingEditProvider(selector, { + async provideDocumentRangeFormattingEdits(d, range, options, t) { return toCode.asTextEdits(await request('textDocument/rangeFormatting', { ...uri(d), range: toProtocol.asRange(range), options }, t)); } + })); + } + if (capabilities.codeActionProvider) { + const originalActions = new WeakMap(); + const wrapCommand = (command: vscode.Command, document: vscode.Uri): vscode.Command => ({ + title: command.title, command: 'hornet-cpp.executeServerCommand', arguments: [root, document, command] + }); + disposables.push(vscode.languages.registerCodeActionsProvider(selector, { + async provideCodeActions(d, range, context, t) { + const result = await request<(lsp.Command | lsp.CodeAction)[]>('textDocument/codeAction', { ...uri(d), range: toProtocol.asRange(range), context: { + diagnostics: await toProtocol.asDiagnostics([...context.diagnostics]), only: context.only ? [context.only.value] : undefined + } }, t); + const converted = await toCode.asCodeActionResult(result ?? []); + return converted?.map((action, index) => { + if (action instanceof vscode.CodeAction) { originalActions.set(action, { action: result![index] as lsp.CodeAction, document: d.uri }); } + const command = action instanceof vscode.CodeAction ? action.command : action; + if (command) { + const wrapped = wrapCommand(command, d.uri); + if (action instanceof vscode.CodeAction) { action.command = wrapped; } else { return wrapped; } + } + return action; + }); + }, + async resolveCodeAction(action, token) { + const original = originalActions.get(action); + if (!original || typeof capabilities.codeActionProvider !== 'object' || !capabilities.codeActionProvider.resolveProvider) { return action; } + const result = await request('codeAction/resolve', original.action, token); + const resolved = result ? await toCode.asCodeAction(result) : action; + if (resolved.command) { resolved.command = wrapCommand(resolved.command, original.document); } + return resolved; + } + })); + } + if (capabilities.inlayHintProvider) { + disposables.push(vscode.languages.registerInlayHintsProvider(selector, { + onDidChangeInlayHints: refresh, + async provideInlayHints(d, range, t) { + if (!config().get('clangd.enableInlayHints', true)) { return []; } + return toCode.asInlayHints(await request('textDocument/inlayHint', { ...uri(d), range: toProtocol.asRange(range) }, t)); + } + })); + } + if (capabilities.semanticTokensProvider && 'legend' in capabilities.semanticTokensProvider) { + const legend = capabilities.semanticTokensProvider.legend; + disposables.push(vscode.languages.registerDocumentSemanticTokensProvider(selector, { + onDidChangeSemanticTokens: refresh, + async provideDocumentSemanticTokens(d, t) { + if (!config().get('syntaxColor.enable', true)) { return new vscode.SemanticTokens(new Uint32Array()); } + const result = await request('textDocument/semanticTokens/full', uri(d), t); + return result ? new vscode.SemanticTokens(new Uint32Array(result.data), result.resultId) : null; + } + }, new vscode.SemanticTokensLegend(legend.tokenTypes, legend.tokenModifiers))); + } + const callItems = new WeakMap(); + const callItem = (item: lsp.CallHierarchyItem) => { + const converted = new vscode.CallHierarchyItem(item.kind - 1, item.name, item.detail ?? '', vscode.Uri.parse(item.uri), toCode.asRange(item.range), toCode.asRange(item.selectionRange)); + callItems.set(converted, item); + return converted; + }; + if (capabilities.callHierarchyProvider) { + disposables.push(vscode.languages.registerCallHierarchyProvider(selector, { + async prepareCallHierarchy(d, p, t) { return (await request('textDocument/prepareCallHierarchy', textPosition(d, p), t))?.map(callItem); }, + async provideCallHierarchyIncomingCalls(item, t) { + return (await request('callHierarchy/incomingCalls', { item: callItems.get(item) }, t))?.map(call => new vscode.CallHierarchyIncomingCall(callItem(call.from), call.fromRanges.map(range => toCode.asRange(range)))); + }, + async provideCallHierarchyOutgoingCalls(item, t) { + return (await request('callHierarchy/outgoingCalls', { item: callItems.get(item) }, t))?.map(call => new vscode.CallHierarchyOutgoingCall(callItem(call.to), call.fromRanges.map(range => toCode.asRange(range)))); + } + })); + } + const typeItems = new WeakMap(); + const typeItem = (item: lsp.TypeHierarchyItem) => { + const converted = new vscode.TypeHierarchyItem(item.kind - 1, item.name, item.detail ?? '', vscode.Uri.parse(item.uri), toCode.asRange(item.range), toCode.asRange(item.selectionRange)); + typeItems.set(converted, item); + return converted; + }; + if (capabilities.typeHierarchyProvider) { + disposables.push(vscode.languages.registerTypeHierarchyProvider(selector, { + async prepareTypeHierarchy(d, p, t) { return (await request('textDocument/prepareTypeHierarchy', textPosition(d, p), t))?.map(typeItem); }, + async provideTypeHierarchySupertypes(item, t) { return (await request('typeHierarchy/supertypes', { item: typeItems.get(item) }, t))?.map(typeItem); }, + async provideTypeHierarchySubtypes(item, t) { return (await request('typeHierarchy/subtypes', { item: typeItems.get(item) }, t))?.map(typeItem); } + })); + } + return vscode.Disposable.from(...disposables); +} diff --git a/Extension/src/hornet/tasks/buildTaskProvider.ts b/Extension/src/hornet/tasks/buildTaskProvider.ts new file mode 100644 index 000000000..a2347bef7 --- /dev/null +++ b/Extension/src/hornet/tasks/buildTaskProvider.ts @@ -0,0 +1,33 @@ +import * as vscode from 'vscode'; +import { PlatformBuildConfiguration, QuotedArgument, resolveBuildConfiguration } from './taskConfiguration'; + +function argument(value: string | QuotedArgument): string | vscode.ShellQuotedString { + if (typeof value === 'string') { return value; } + const quoting = { escape: vscode.ShellQuoting.Escape, strong: vscode.ShellQuoting.Strong, weak: vscode.ShellQuoting.Weak }; + if (!value || typeof value.value !== 'string' || !(value.quoting in quoting)) { throw new Error('Invalid Hornet build argument.'); } + return { value: value.value, quoting: quoting[value.quoting] }; +} + +export function registerBuildTasks(): vscode.Disposable { + const provider: vscode.TaskProvider = { + provideTasks: () => [], + resolveTask(task) { + if (!vscode.workspace.isTrusted) { return undefined; } + const definition = task.definition as vscode.TaskDefinition & PlatformBuildConfiguration; + const configuration = resolveBuildConfiguration(definition, process.platform); + if (!configuration.command) { return undefined; } + const execution = new vscode.ShellExecution(argument(configuration.command), (configuration.args ?? []).map(argument), configuration.options); + const resolved = new vscode.Task(task.definition, task.scope ?? vscode.TaskScope.Workspace, task.name, + 'Hornet C/C++', execution, configuration.problemMatcher ?? task.problemMatchers); + resolved.group = task.group; + resolved.presentationOptions = task.presentationOptions; + resolved.runOptions = task.runOptions; + resolved.isBackground = task.isBackground; + resolved.detail = configuration.detail ?? task.detail; + return resolved; + } + }; + // cppbuild keeps existing tasks.json files usable without the Microsoft extension. + return vscode.Disposable.from(vscode.tasks.registerTaskProvider('hornet-cpp.build', provider), + vscode.tasks.registerTaskProvider('cppbuild', provider)); +} diff --git a/Extension/src/hornet/tasks/taskConfiguration.ts b/Extension/src/hornet/tasks/taskConfiguration.ts new file mode 100644 index 000000000..8549847c1 --- /dev/null +++ b/Extension/src/hornet/tasks/taskConfiguration.ts @@ -0,0 +1,19 @@ +export interface QuotedArgument { value: string; quoting: 'escape' | 'strong' | 'weak'; } +export interface BuildConfiguration { + command: string | QuotedArgument; + args?: (string | QuotedArgument)[]; + options?: { cwd?: string }; + problemMatcher?: string | string[]; + detail?: string; +} +export interface PlatformBuildConfiguration extends BuildConfiguration { + windows?: Partial; + linux?: Partial; + osx?: Partial; +} + +/** VS Code uses `osx` for macOS task overrides, while Node calls the host `darwin`. */ +export function resolveBuildConfiguration(configuration: PlatformBuildConfiguration, platform: NodeJS.Platform): BuildConfiguration { + const override = platform === 'win32' ? configuration.windows : platform === 'darwin' ? configuration.osx : platform === 'linux' ? configuration.linux : undefined; + return { ...configuration, ...override, options: { ...configuration.options, ...override?.options } }; +} diff --git a/Extension/src/hornet/views/callGraphModel.ts b/Extension/src/hornet/views/callGraphModel.ts new file mode 100644 index 000000000..42bd821ab --- /dev/null +++ b/Extension/src/hornet/views/callGraphModel.ts @@ -0,0 +1,222 @@ +import type { CallHierarchyItem, CallHierarchyIncomingCall, CallHierarchyOutgoingCall } from 'vscode-languageserver-protocol'; + +export type Direction = 'incoming' | 'outgoing'; +export interface GraphBranch { open: boolean; loaded: boolean; loading: boolean; count: number; error?: string; action?: 'expand' | 'collapse' | 'none'; } +export interface GraphNode { + id: string; name: string; detail: string; uri: string; line: number; layer: number; + incoming: GraphBranch; outgoing: GraphBranch; +} +export interface GraphEdge { from: string; to: string; } +export interface GraphSnapshot { generation: number; root?: string; nodes: GraphNode[]; edges: GraphEdge[]; message?: string; } +type Request = (method: string, params: unknown) => Promise; +const branch = (): GraphBranch => ({ open: false, loaded: false, loading: false, count: 0 }); + +/** Cache symbols separately from visible branches so collapsing never deletes shared functions. */ +export class CallGraphModel { + private generation = 0; + private root?: string; + private nodes = new Map(); + private items = new Map(); + private neighbors = new Map(); + private pending = new Map>(); + private queries = new Map>(); + private relations = new Map(); + private identities = new Map(); + private message?: string; + private chainRevision = 0; + constructor(private readonly request: Request, private readonly changed: () => void, private readonly maxNodes = 250) {} + + reset(item?: CallHierarchyItem, message?: string): void { + this.generation++; + this.chainRevision++; + this.nodes.clear(); this.items.clear(); this.neighbors.clear(); this.pending.clear(); this.queries.clear(); this.relations.clear(); this.identities.clear(); + this.message = message; + this.root = item ? this.add(item, 0) : undefined; + this.changed(); + } + private collect(skip?: string) { + const visible = new Set(); + const edges = new Map(); + const incoming = new Set(), outgoing = new Set(); + const visit = (id: string, direction: Direction, visited: Set): void => { + if (visited.has(id)) { return; } + visited.add(id); + visible.add(id); + const node = this.nodes.get(id)!; + if (node[direction].open && `${id}:${direction}` !== skip) { + for (const other of this.neighbors.get(`${id}:${direction}`) ?? []) { + const edge = direction === 'incoming' ? { from: other, to: id } : { from: id, to: other }; + edges.set(`${edge.from}:${edge.to}`, edge); + visit(other, direction, visited); + } + } + }; + if (this.root) { + visit(this.root, 'incoming', incoming); + visit(this.root, 'outgoing', outgoing); + } + return { visible, edges, incoming, outgoing }; + } + snapshot(): GraphSnapshot { + const scope = this.collect(); + const { visible, edges } = scope; + const present = (id: string, direction: Direction): GraphBranch => { + // The center is the scope boundary. Never expose sibling callees of an ancestor, + // or unrelated callers of a descendant, even after a manual expansion. + if (!scope[direction].has(id)) { return { open: false, loaded: true, loading: false, count: 0, action: 'none' }; } + const state = this.nodes.get(id)![direction]; + let action: GraphBranch['action'] = 'expand'; + if (!state.loading && !state.error) { + const key = `${id}:${direction}`; + if (state.loaded && state.count === 0) { action = 'none'; } + else if (state.open) { + const collapsed = this.collect(key); + action = collapsed.edges.size < edges.size || collapsed.visible.size < visible.size ? 'collapse' : 'none'; + } else if (state.loaded) { + const hidden = (this.relations.get(key) ?? []).some(item => { + const other = this.identities.get(this.identity(item)); + const edge = direction === 'incoming' ? `${other}:${id}` : `${id}:${other}`; + return !other || !edges.has(edge); + }); + action = hidden ? 'expand' : 'none'; + } + } + return { ...state, action }; + }; + return { generation: this.generation, root: this.root, nodes: [...visible].map(id => { + const node = this.nodes.get(id)!; + return { ...node, incoming: present(id, 'incoming'), outgoing: present(id, 'outgoing') }; + }), edges: [...edges.values()], message: this.message }; + } + item(id: string): CallHierarchyItem | undefined { return this.items.get(id); } + private identity(item: CallHierarchyItem): string { + if (typeof item.data === 'string') { return `clangd:${item.data}`; } + return JSON.stringify([item.uri, item.selectionRange.start.line, item.selectionRange.start.character, item.name]); + } + private add(item: CallHierarchyItem, layer: number): string | undefined { + const identity = this.identity(item); + const existing = this.identities.get(identity); + if (existing) { return existing; } + if (this.nodes.size >= this.maxNodes) { this.message = `已加载 ${this.maxNodes} 个函数。选择某个节点并“设为中心”以继续查看。`; return undefined; } + const id = `n${this.nodes.size}`; + this.identities.set(identity, id); this.items.set(id, item); + this.nodes.set(id, { id, name: item.name, detail: item.detail ?? '', uri: item.uri, + line: item.selectionRange.start.line + 1, layer, incoming: branch(), outgoing: branch() }); + return id; + } + collapse(id: string, direction: Direction): void { + this.chainRevision++; + const state = this.nodes.get(id)?.[direction]; + if (state) { state.open = false; this.changed(); } + } + private query(id: string, direction: Direction): Promise { + const key = `${id}:${direction}`; + const existing = this.queries.get(key); + if (existing) { return existing; } + const generation = this.generation; + const params = { item: this.items.get(id)! }; + const result = (async () => { + try { + const items = direction === 'incoming' + ? (await this.request('callHierarchy/incomingCalls', params) ?? []).map(call => call.from) + : (await this.request('callHierarchy/outgoingCalls', params) ?? []).map(call => call.to); + if (this.generation === generation) { this.relations.set(key, items); } + return items; + } catch (error) { + if (this.generation === generation) { this.queries.delete(key); } + throw error; + } + })(); + this.queries.set(key, result); + return result; + } + /** Follow callers only to the left and callees only to the right, stopping at cycles and the node limit. */ + async expandChains(): Promise { + const root = this.root; + if (!root) { return; } + await Promise.all([this.expandChain(root, 'incoming'), this.expandChain(root, 'outgoing')]); + } + /** A side button follows that direction through the entire chain, not just one hop. */ + async expandChain(start: string, direction: Direction): Promise { + const generation = this.generation, revision = this.chainRevision; + const current = () => generation === this.generation && revision === this.chainRevision; + const visited = new Set(); + let frontier = [start]; + while (frontier.length && current()) { + const next: string[] = []; + for (let index = 0; index < frontier.length; index += 4) { + if (!current()) { return; } + await Promise.all(frontier.slice(index, index + 4).map(async id => { + if (visited.has(id)) { return; } + visited.add(id); + await this.expand(id, direction); + if (!current() || !this.nodes.get(id)?.[direction].open) { return; } + for (const other of this.neighbors.get(`${id}:${direction}`) ?? []) { + if (!visited.has(other)) { next.push(other); } + } + })); + } + frontier = [...new Set(next)]; + } + } + /** Discover empty sides of visible nodes without expanding or consuming the node budget. */ + async probeVisible(): Promise { + const generation = this.generation; + const scope = this.collect(); + const jobs = [...scope.visible].flatMap(id => (['incoming', 'outgoing'] as const) + .filter(direction => scope[direction].has(id)).map(direction => ({ id, direction }))); + const worker = async () => { + while (jobs.length && this.generation === generation) { + const { id, direction } = jobs.shift()!; + const state = this.nodes.get(id)![direction]; + if (state.loaded || state.loading || state.error) { continue; } + state.loading = true; this.changed(); + try { + const items = await this.query(id, direction); + if (this.generation !== generation) { return; } + if (!state.open) { state.count = items.length; state.loaded = true; } + } catch (error) { + if (this.generation !== generation) { return; } + state.error = error instanceof Error ? error.message : String(error); + } finally { + if (this.generation === generation) { state.loading = false; this.changed(); } + } + } + }; + await Promise.all(Array.from({ length: 4 }, worker)); + } + async expand(id: string, direction?: Direction): Promise { + if (!direction) { await Promise.all([this.expand(id, 'incoming'), this.expand(id, 'outgoing')]); return; } + if (!this.collect()[direction].has(id)) { return; } + const node = this.nodes.get(id); + if (!node) { return; } + const state = node[direction]; + state.open = true; + const key = `${id}:${direction}`; + if (this.pending.has(key)) { this.changed(); return this.pending.get(key)!; } + if (state.loaded && this.neighbors.has(key)) { this.changed(); return; } + const generation = this.generation; + state.loading = true; state.error = undefined; this.changed(); + const operation = (async () => { + try { + const items = await this.query(id, direction); + if (this.generation !== generation) { return; } + const ids = new Set(); + let limited = false; + for (const item of items) { + const other = this.add(item, node.layer + (direction === 'incoming' ? -1 : 1)); + if (other) { ids.add(other); } else { limited = true; } + } + this.neighbors.set(key, [...ids]); + state.count = ids.size; state.loaded = !limited; + } catch (error) { + if (this.generation !== generation) { return; } + state.error = error instanceof Error ? error.message : String(error); + } finally { + if (this.generation === generation) { state.loading = false; this.pending.delete(key); this.changed(); } + } + })(); + this.pending.set(key, operation); + return operation; + } +} diff --git a/Extension/src/hornet/views/callGraphPanel.ts b/Extension/src/hornet/views/callGraphPanel.ts new file mode 100644 index 000000000..0460254b3 --- /dev/null +++ b/Extension/src/hornet/views/callGraphPanel.ts @@ -0,0 +1,103 @@ +import * as vscode from 'vscode'; +import { randomBytes } from 'node:crypto'; +import type { CallHierarchyItem } from 'vscode-languageserver-protocol'; +import { CapabilityRouter } from '../core/capabilityRouter'; +import { CallGraphModel } from './callGraphModel'; + +export class CallGraphPanel implements vscode.WebviewViewProvider, vscode.Disposable { + static readonly viewId = 'hornet-cpp.graphView'; + private panel?: vscode.WebviewView; + private viewSubscriptions: vscode.Disposable[] = []; + private router?: CapabilityRouter; + private notice?: () => string | undefined; + private cancellation = new vscode.CancellationTokenSource(); + private readonly model: CallGraphModel; + constructor(private readonly extensionUri: vscode.Uri) { + this.model = new CallGraphModel((method, params) => this.router?.request(method, params, this.cancellation.token) ?? Promise.resolve(null), () => this.update()); + } + resolveWebviewView(view: vscode.WebviewView): void { + this.viewSubscriptions.forEach(subscription => subscription.dispose()); + this.viewSubscriptions = []; + this.panel = view; + const assets = vscode.Uri.joinPath(this.extensionUri, 'assets', 'callGraph'); + const webview = view.webview; + webview.options = { enableScripts: true, localResourceRoots: [assets] }; + const nonce = randomBytes(24).toString('hex'); + const script = webview.asWebviewUri(vscode.Uri.joinPath(assets, 'graph.js')); + const layout = webview.asWebviewUri(vscode.Uri.joinPath(assets, 'layout.js')); + const css = webview.asWebviewUri(vscode.Uri.joinPath(assets, 'graph.css')); + webview.html = ` + + +函数调用关系图 +

函数调用关系图

左侧 +/− 查看调用者 · 右侧 +/− 查看被调用函数 · 箭头指向被调用函数

+
+
+
调用者中心函数被调用函数
+
正在加载函数调用关系…
+
+`; + this.viewSubscriptions.push(view.onDidDispose(() => { if (this.panel === view) { this.panel = undefined; } }), + view.onDidChangeVisibility(() => { if (view.visible) { this.update(); } }), + webview.onDidReceiveMessage(message => { void this.receive(message).catch(error => { + void this.panel?.webview.postMessage({ type: 'error', message: error instanceof Error ? error.message : String(error) }); + }); })); + this.update(); + } + async show(items: CallHierarchyItem[], router: CapabilityRouter, notice?: () => string | undefined): Promise { + let item: CallHierarchyItem | undefined = items[0]; + if (items.length > 1) { + item = (await vscode.window.showQuickPick(items.map(value => ({ label: value.name, description: value.detail, item: value })), { title: '选择要查看调用关系的函数' }))?.item; + if (!item) { return; } + } + this.cancel(); this.router = router; this.notice = notice; + this.model.reset(item, item ? undefined : '此位置没有可用的函数调用关系。请右键函数名重试,并确认语言服务已启动。'); + const generation = this.model.snapshot().generation; + await vscode.commands.executeCommand(`${CallGraphPanel.viewId}.focus`); + this.panel?.show(true); + const snapshot = this.model.snapshot(); + if (snapshot.generation !== generation) { return; } + const root = snapshot.root; + if (root) { await this.model.expand(root); await this.model.probeVisible(); } + } + private async receive(message: unknown): Promise { + if (!message || typeof message !== 'object') { return; } + const input = message as { type?: string; id?: string; generation?: number; direction?: string }; + if (input.type === 'ready') { this.update(); return; } + if (input.generation !== this.model.snapshot().generation) { return; } + const item = typeof input.id === 'string' ? this.model.item(input.id) : undefined; + if (item && (input.direction === 'incoming' || input.direction === 'outgoing')) { + if (input.type === 'expand') { await this.model.expand(input.id!, input.direction); await this.model.probeVisible(); } + if (input.type === 'collapse') { this.model.collapse(input.id!, input.direction); } + } + if (input.type === 'open' && item) { + const uri = vscode.Uri.parse(item.uri); + if (uri.scheme !== 'file') { return; } + const range = item.selectionRange; + await vscode.window.showTextDocument(uri, { viewColumn: vscode.ViewColumn.One, selection: new vscode.Range(range.start.line, range.start.character, range.end.line, range.end.character) }); + } + if (input.type === 'setRoot' && item && this.router) { await this.show([item], this.router, this.notice); } + if (input.type === 'refresh') { + const root = this.model.snapshot().root; + const rootItem = root && this.model.item(root); + if (rootItem && this.router) { await this.show([rootItem], this.router, this.notice); } + } + } + clear(router: CapabilityRouter): void { + if (router !== this.router) { return; } + this.cancel(); this.router = undefined; this.notice = undefined; + this.model.reset(undefined, '语言服务已更新。请重新右键函数并打开调用关系图。'); + } + private update(): void { + const graph = this.model.snapshot(); + graph.message = [graph.message, this.notice?.()].filter(Boolean).join(' '); + if (this.panel) { this.panel.title = 'Hornet Graph'; this.panel.description = graph.nodes.find(node => node.id === graph.root)?.name; } + void this.panel?.webview.postMessage({ type: 'graph', graph }); + } + private cancel(): void { this.cancellation.cancel(); this.cancellation.dispose(); this.cancellation = new vscode.CancellationTokenSource(); } + dispose(): void { + this.viewSubscriptions.forEach(subscription => subscription.dispose()); this.viewSubscriptions = []; + this.panel = undefined; this.router = undefined; + this.cancellation.cancel(); this.cancellation.dispose(); this.model.reset(); + } +} diff --git a/Extension/src/hornet/views/hierarchyView.ts b/Extension/src/hornet/views/hierarchyView.ts new file mode 100644 index 000000000..fa8c3ea50 --- /dev/null +++ b/Extension/src/hornet/views/hierarchyView.ts @@ -0,0 +1,90 @@ +import * as vscode from 'vscode'; +import * as lsp from 'vscode-languageserver-protocol'; +import { CapabilityRouter } from '../core/capabilityRouter'; +import { toCode } from '../providers/languageProviders'; + +type Item = lsp.CallHierarchyItem | lsp.TypeHierarchyItem; +type Direction = 'incoming' | 'outgoing' | 'bases' | 'derived'; +export interface HierarchyNode { + kind: 'call' | 'type'; + item: Item; + router: CapabilityRouter; + ancestors: Set; + direction?: Direction; + group?: boolean; + cycle?: boolean; + children?: HierarchyNode[]; +} +const key = (item: Item) => `${item.uri}:${item.selectionRange.start.line}:${item.selectionRange.start.character}:${item.name}`; + +/** Queries one edge at a time; a cycle terminates only its own branch. */ +export class HierarchyView implements vscode.TreeDataProvider, vscode.Disposable { + private roots: HierarchyNode[] = []; + private readonly changed = new vscode.EventEmitter(); + readonly onDidChangeTreeData = this.changed.event; + private cancellation = new vscode.CancellationTokenSource(); + private pinned = false; + private generation = 0; + constructor(readonly kind: 'call' | 'type') {} + setRoots(items: Item[], router: CapabilityRouter, force = false) { + if (this.pinned && !force) { return; } + this.cancelRequests(); + this.roots = items.map(item => ({ kind: this.kind, item, router, ancestors: new Set([key(item)]) })); + this.changed.fire(undefined); + } + setRoot(node: HierarchyNode) { this.setRoots([node.item], node.router, true); } + togglePin() { this.pinned = !this.pinned; this.changed.fire(undefined); return this.pinned; } + clear(router: CapabilityRouter) { + if (this.roots.some(node => node.router === router)) { this.cancelRequests(); this.roots = []; this.changed.fire(undefined); } + } + refresh() { + this.cancelRequests(); + this.roots = this.roots.map(node => ({ ...node, children: undefined })); + this.changed.fire(undefined); + } + private cancelRequests() { this.generation++; this.cancellation.cancel(); this.cancellation.dispose(); this.cancellation = new vscode.CancellationTokenSource(); } + getTreeItem(node: HierarchyNode): vscode.TreeItem { + const labels: Record = { incoming: 'Callers', outgoing: 'Callees', bases: 'Bases', derived: 'Derived' }; + const item = new vscode.TreeItem(node.group ? labels[node.direction!] : node.item.name, + node.cycle ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Collapsed); + item.contextValue = `${this.kind}HierarchyNode`; + if (!node.group) { + item.description = node.cycle ? 'recursive' : node.item.detail; + item.tooltip = `${node.item.name}\n${vscode.Uri.parse(node.item.uri).fsPath}:${node.item.selectionRange.start.line + 1}`; + item.iconPath = new vscode.ThemeIcon(this.kind === 'call' ? 'symbol-method' : 'symbol-class'); + item.command = { title: 'Open Symbol', command: 'vscode.open', arguments: [vscode.Uri.parse(node.item.uri), { selection: toCode.asRange(node.item.selectionRange) }] }; + } + return item; + } + async getChildren(node?: HierarchyNode): Promise { + if (!node) { return this.roots; } + if (node.cycle) { return []; } + if (node.children) { return node.children; } + if (!node.direction) { + const directions: Direction[] = this.kind === 'call' ? ['incoming', 'outgoing'] : ['bases', 'derived']; + return node.children = directions.map(direction => ({ ...node, group: true, direction, children: undefined })); + } + const generation = this.generation; + const token = this.cancellation.token; + let items: Item[]; + try { + if (node.direction === 'incoming') { + items = (await node.router.request('callHierarchy/incomingCalls', { item: node.item }, token) ?? []).map(call => call.from); + } else if (node.direction === 'outgoing') { + items = (await node.router.request('callHierarchy/outgoingCalls', { item: node.item }, token) ?? []).map(call => call.to); + } else { + items = await node.router.request(node.direction === 'bases' ? 'typeHierarchy/supertypes' : 'typeHierarchy/subtypes', { item: node.item }, token) ?? []; + } + } catch (error) { + if (token.isCancellationRequested) { return []; } + throw error; + } + if (generation !== this.generation || token.isCancellationRequested) { return []; } + const seen = new Set(); + return node.children = items.filter(item => { const id = key(item); if (seen.has(id)) { return false; } seen.add(id); return true; }).map(item => ({ + kind: this.kind, item, router: node.router, direction: node.direction, + ancestors: new Set([...node.ancestors, key(item)]), cycle: node.ancestors.has(key(item)) + })); + } + dispose() { this.cancellation.cancel(); this.cancellation.dispose(); this.changed.dispose(); } +} diff --git a/Extension/test/hornet/callGraph.browser.cjs b/Extension/test/hornet/callGraph.browser.cjs new file mode 100644 index 000000000..c99a01ff4 --- /dev/null +++ b/Extension/test/hornet/callGraph.browser.cjs @@ -0,0 +1,262 @@ +/* Optional real Chromium smoke test. Compile tests first; set HORNET_PLAYWRIGHT_MODULE + * to playwright-core and HORNET_BROWSER_PATH to a local Chromium executable. */ +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const path = require('node:path'); +const { pathToFileURL } = require('node:url'); +const { chromium } = require(process.env.HORNET_PLAYWRIGHT_MODULE || 'playwright-core'); +const { CancellationTokenSource } = require('vscode-jsonrpc'); +const extension = path.resolve(__dirname, '../..'); +const artifact = path.resolve(extension, 'artifacts/graph-browser'); +const item = name => ({ name, kind: 12, detail: 'demo.cpp', uri: 'file:///project/demo.cpp', + range: { start: { line: names.indexOf(name) * 10, character: 0 }, end: { line: names.indexOf(name) * 10 + 9, character: 0 } }, + selectionRange: { start: { line: names.indexOf(name) * 10, character: 4 }, end: { line: names.indexOf(name) * 10, character: 12 } } }); +const relations = [['main', 'processFrame'], ['onTimer', 'processFrame'], ['processFrame', 'readSensor'], + ['processFrame', 'updateState'], ['processFrame', 'logEvent'], ['readSensor', 'spiTransfer'], + ['readSensor', 'validateSample'], ['calibrate', 'readSensor'], ['updateState', 'updateState'], + ['logEvent', '']]; +const marsRelations = [['TEST_F', 'MarsRover_Execute'], ['main', 'MarsRover_Execute'], ['MarsRover_Execute', 'MarsRover_ExecuteOne'], + ['MarsRover_ExecuteOne', 'MarsRover_Move'], ['MarsRover_ExecuteOne', 'MarsRover_TurnLeft'], ['MarsRover_ExecuteOne', 'MarsRover_TurnRight'], + ['MarsRover_Move', 'MarsRover_IsInsideArea'], ['main', 'MarsRover_Init'], ['TEST', 'MarsRover_Init'], + ['MarsRover_Init', 'MarsRover_IsInsideArea'], ['MarsRover_Init', 'MarsRover_IsDirectionValid'], ['MarsRover_Init', 'MarsRover_IsBoundaryModeValid']]; +const dRelations = [['main', 'A'], ['A', 'B'], ['B', 'C'], ['C', 'D'], ['D', 'E'], ['E', 'F'], ['F', 'G'], ['D', 'I'], ['I', 'J'], + ['main', 'H'], ['A', 'unusedA'], ['B', 'unusedB'], ['C', 'unusedC']]; +const names = [...new Set([...relations.flat(), ...marsRelations.flat(), ...dRelations.flat(), 'K', 'L', 'M', 'N'])]; + +(async () => { + let browser, host, page, received, disposed, visibilityChanged, view, html, latest, ready = false; + const navigations = [], errors = [], requests = []; + const createView = () => ({ + title: '', visible: true, show() {}, + onDidDispose: callback => { disposed = callback; return { dispose() {} }; }, + onDidChangeVisibility: callback => { visibilityChanged = callback; return { dispose() {} }; }, + webview: { cspSource: "'self'", asWebviewUri: uri => `https://hornet.test/assets/${path.basename(uri.pathname)}`, + set html(value) { html = value; }, onDidReceiveMessage: callback => { received = callback; return { dispose() {} }; }, + postMessage: async value => { latest = value; if (ready) await page.evaluate(data => window.dispatchEvent(new MessageEvent('message', { data })), value); return true; } + } + }); + const mock = { + CancellationTokenSource, + Uri: { joinPath: (base, ...parts) => new URL(`${base.toString().replace(/\/$/, '')}/${parts.join('/')}`), parse: value => ({ scheme: new URL(value).protocol.slice(0, -1), toString: () => value }) }, + ViewColumn: { Beside: 2, One: 1 }, Range: class { constructor(...args) { this.values = args; } }, + commands: { executeCommand: async command => { + assert.equal(command, 'hornet-cpp.graphView.focus'); + if (!view) { view = createView(); host.resolveWebviewView(view); } + } }, + window: { + showTextDocument: async (uri, options) => navigations.push({ uri: uri.toString(), options }), + showQuickPick: async values => values[0], + createWebviewPanel: () => { throw new Error('The call graph must never open an editor panel'); } + } + }; + const loader = require('node:module'), original = loader._load; + try { + loader._load = (id, ...args) => id === 'vscode' ? mock : original(id, ...args); + const { CallGraphPanel } = require('../../out/hornet/src/hornet/views/callGraphPanel'); + loader._load = original; + host = new CallGraphPanel(pathToFileURL(extension)); + let activeRelations = relations; + const router = { request: async (method, params) => { + const incoming = method.endsWith('incomingCalls'); + requests.push(`${params.item.name}:${incoming ? 'incoming' : 'outgoing'}`); + return activeRelations.filter(edge => edge[incoming ? 1 : 0] === params.item.name).map(edge => + incoming ? { from: item(edge[0]), fromRanges: [] } : { to: item(edge[1]), fromRanges: [] }); + } }; + await host.show([item('processFrame')], router); + browser = await chromium.launch({ executablePath: process.env.HORNET_BROWSER_PATH, headless: true }); + page = await browser.newPage({ viewport: { width: 1440, height: 900 }, colorScheme: 'dark' }); + page.on('pageerror', error => errors.push(error.message)); + page.on('console', entry => { if (entry.type() === 'error') errors.push(entry.text()); }); + await page.route('https://hornet.test/**', route => { + const url = new URL(route.request().url()); + if (url.pathname === '/') return route.fulfill({ contentType: 'text/html', body: html }); + const file = path.basename(url.pathname); + return route.fulfill({ contentType: file.endsWith('.css') ? 'text/css' : 'text/javascript', body: fs.readFileSync(path.join(extension, 'assets/callGraph', file)) }); + }); + await page.exposeFunction('sendToHost', message => { + if (message.type === 'ready') ready = true; + received(message); + }); + await page.addInitScript(() => { let state; window.acquireVsCodeApi = () => ({ getState: () => state, setState: value => { state = value; }, postMessage: message => window.sendToHost(message) }); }); + await page.goto('https://hornet.test/'); + const count = n => page.waitForFunction(value => document.querySelectorAll('.node').length === value, n); + const node = name => page.locator('.node').filter({ has: page.getByText(name, { exact: true }) }); + const side = (name, direction) => node(name).locator(`[data-direction="${direction}"]`); + await count(6); + assert.equal(await node('spiTransfer').count(), 0, 'initial view contains only one hop'); + await side('readSensor', 'outgoing').click(); await count(8); + await side('logEvent', 'outgoing').click(); await count(9); + await side('updateState', 'outgoing').click(); + assert.equal(await page.locator('.expand').count(), 5); + assert.equal(await side('main', 'incoming').count(), 0, 'empty caller side has no control'); + assert.equal(await side('onTimer', 'incoming').count(), 0); + const left = await side('processFrame', 'incoming').boundingBox(), right = await side('processFrame', 'outgoing').boundingBox(); + assert.ok(left.x < right.x && Math.abs(left.y - right.y) < 1, 'controls sit on opposite sides of the rectangle'); + assert.equal(await side('readSensor', 'outgoing').getAttribute('aria-expanded'), 'true'); + assert.equal(await side('spiTransfer', 'incoming').count(), 0, 'already drawn caller is not a plus button'); + await side('processFrame', 'incoming').click(); await count(7); + assert.equal(await side('processFrame', 'incoming').textContent().then(text => text.startsWith('+')), true); + await side('processFrame', 'incoming').click(); await count(9); + assert.equal(requests.filter(value => value === 'processFrame:incoming').length, 1); + await side('readSensor', 'outgoing').click(); await count(7); + assert.equal(await side('readSensor', 'outgoing').getAttribute('aria-expanded'), 'false'); + await side('readSensor', 'outgoing').click(); await count(9); + await side('spiTransfer', 'outgoing').waitFor({ state: 'detached' }); + await side('validateSample', 'outgoing').waitFor({ state: 'detached' }); + assert.equal(await side('spiTransfer', 'incoming').count(), 0, 'leaf caller edge is already visible'); + assert.equal(await side('readSensor', 'incoming').count(), 0, 'unrelated callers of descendants cannot be expanded'); + await side('updateState', 'outgoing').click(); + await page.waitForFunction(() => ![...document.querySelectorAll('.edge')].some(edge => edge.dataset.from === edge.dataset.to)); + await side('updateState', 'outgoing').click(); + await page.waitForFunction(() => [...document.querySelectorAll('.edge')].some(edge => edge.dataset.from === edge.dataset.to)); + assert.ok((await page.locator('.edge').evaluateAll(edges => edges.map(edge => edge.getAttribute('d')))).some(d => d.includes('Q'))); + await page.selectOption('#edgeStyle', 'straight'); + assert.ok((await page.locator('.edge').evaluateAll(edges => edges.filter(edge => edge.dataset.from !== edge.dataset.to).map(edge => edge.getAttribute('d')))).every(d => !d.includes('Q'))); + await page.selectOption('#edgeStyle', 'rounded'); + await side('logEvent', 'outgoing').click(); await count(8); + await side('logEvent', 'outgoing').click(); await count(9); + assert.equal(await page.locator('img').count(), 0, 'function names are text, never HTML'); + await side('logEvent', 'outgoing').click(); await count(8); + const transform = await page.locator('#scene').getAttribute('transform'); + await page.click('#zoomIn'); + assert.notEqual(await page.locator('#scene').getAttribute('transform'), transform); + await page.click('#fit'); + await node('readSensor').locator('.name').dblclick(); + await page.waitForTimeout(100); + assert.equal(navigations.at(-1).uri, 'file:///project/demo.cpp'); + fs.mkdirSync(artifact, { recursive: true }); + await page.screenshot({ path: path.join(artifact, 'call-graph.png') }); + await page.click('#setRoot'); await count(5); + await side('processFrame', 'incoming').click(); await count(7); + assert.equal(await page.locator('.node.root .name').textContent(), 'readSensor'); + received({ type: 'open', id: latest.graph.root, generation: -1 }); + assert.equal(navigations.length, 1, 'stale webview navigation is rejected'); + host.clear(router); await count(0); + assert.match(await page.locator('#empty').textContent(), /语言服务已更新/); + await host.show([item('isolated')], router); await count(1); + assert.equal(await page.locator('.expand').count(), 0, 'isolated functions have neither side control'); + assert.equal(await page.locator('.edge').count(), 0); + activeRelations = marsRelations; + await host.show([item('MarsRover_IsInsideArea')], router); await count(3); + await side('MarsRover_Move', 'incoming').click(); await count(4); + await side('MarsRover_ExecuteOne', 'incoming').click(); await count(5); + await side('MarsRover_Execute', 'incoming').click(); await count(7); + await side('MarsRover_Init', 'incoming').click(); await count(8); + assert.equal(await side('MarsRover_Init', 'outgoing').count(), 0); + assert.equal(await side('MarsRover_ExecuteOne', 'outgoing').count(), 0); + assert.equal(await node('MarsRover_TurnLeft').count(), 0); + await side('MarsRover_Move', 'incoming').click(); await count(5); + await side('MarsRover_Move', 'incoming').click(); await count(8); + const directions = await page.locator('.edge').evaluateAll(edges => edges.filter(edge => !edge.classList.contains('recursive')).map(edge => { + const nodes = [...document.querySelectorAll('.node')]; + const from = nodes.find(node => node.dataset.id === edge.dataset.from).transform.baseVal.getItem(0).matrix; + const to = nodes.find(node => node.dataset.id === edge.dataset.to).transform.baseVal.getItem(0).matrix; + return from.e < to.e; + })); + assert.ok(directions.every(Boolean), 'expanded screenshot has no reversed normal calls'); + const beforeProbe = await page.locator('.node').evaluateAll(nodes => nodes.map(node => node.getAttribute('transform'))); + await page.evaluate(value => window.dispatchEvent(new MessageEvent('message', { data: value })), latest); + assert.deepEqual(await page.locator('.node').evaluateAll(nodes => nodes.map(node => node.getAttribute('transform'))), beforeProbe, 'status updates do not rearrange nodes'); + await page.screenshot({ path: path.join(artifact, 'mars-expanded-layout.png') }); + const retained = await page.locator('#scene').getAttribute('transform'); + view.visible = false; visibilityChanged(); + view.visible = true; visibilityChanged(); await count(8); + assert.equal(await page.locator('#scene').getAttribute('transform'), retained, 'switching bottom panel tabs retains the viewport'); + const queryCount = requests.length; + ready = false; disposed(); view = undefined; + await mock.commands.executeCommand('hornet-cpp.graphView.focus'); + await page.reload(); await count(8); + assert.equal(requests.length, queryCount, 'recreating a hidden view restores the existing graph without querying again'); + await page.setViewportSize({ width: 1824, height: 340 }); + await page.click('#fit'); + assert.ok(await page.locator('#canvas').evaluate(canvas => canvas.clientHeight) > 200, 'compact bottom panel leaves room for the graph'); + await page.screenshot({ path: path.join(artifact, 'bottom-panel-graph.png') }); + activeRelations = dRelations; + await host.show([item('D')], router); await count(4); + await page.screenshot({ path: path.join(artifact, 'd-initial-one-level.png') }); + assert.deepEqual(latest.graph.nodes.map(node => node.name).sort(), ['C', 'D', 'E', 'I']); + await side('C', 'incoming').click(); await count(5); + assert.equal(await node('A').count(), 0, 'one click adds only the next level'); + await side('B', 'incoming').click(); await count(6); + await side('A', 'incoming').click(); await count(7); + await side('E', 'outgoing').click(); await count(8); + await side('F', 'outgoing').click(); await count(9); + await side('I', 'outgoing').click(); await count(10); + const assertFitted = async () => { + const canvas = await page.locator('#canvas').boundingBox(); + for (const rectangle of await page.locator('.node > rect').all()) { + const box = await rectangle.boundingBox(); + assert.ok(box.x >= canvas.x && box.x + box.width <= canvas.x + canvas.width + 1 + && box.y >= canvas.y && box.y + box.height <= canvas.y + canvas.height + 1, 'reflow fits every function into the canvas'); + } + }; + await assertFitted(); + assert.equal(await page.locator('.node.root .name').textContent(), 'D'); + assert.equal(await side('D', 'incoming').getAttribute('aria-expanded'), 'true'); + assert.equal(await side('D', 'outgoing').getAttribute('aria-expanded'), 'true'); + assert.equal(await side('G', 'outgoing').count(), 0); + assert.equal(await side('J', 'outgoing').count(), 0); + await page.screenshot({ path: path.join(artifact, 'd-complete-chains.png') }); + await side('D', 'incoming').click(); await count(6); + await side('D', 'outgoing').click(); await count(1); + await side('D', 'incoming').click(); await count(5); + await side('D', 'outgoing').click(); await count(10); + for (const ancestor of ['main', 'A', 'B', 'C']) { + assert.equal(await side(ancestor, 'outgoing').count(), 0, 'no control can leak ancestor side branches'); + const id = latest.graph.nodes.find(node => node.name === ancestor).id; + received({ type: 'expand', id, direction: 'outgoing', generation: latest.graph.generation }); + } + await count(10); + assert.ok(!latest.graph.nodes.some(node => ['H', 'unusedA', 'unusedB', 'unusedC'].includes(node.name))); + activeRelations = [...dRelations, ['E', 'K'], ['K', 'L'], ['K', 'M'], ['M', 'N']]; + await host.show([item('D')], router); await count(4); + await side('C', 'incoming').click(); await count(5); + await side('B', 'incoming').click(); await count(6); + await side('A', 'incoming').click(); await count(7); + await side('E', 'outgoing').click(); await count(9); + await side('F', 'outgoing').click(); await count(10); + await side('I', 'outgoing').click(); await count(11); + await side('K', 'outgoing').click(); await count(13); + await side('M', 'outgoing').click(); await count(14); + await side('E', 'outgoing').click(); await count(8); + const beforeBranch = await page.locator('.node').evaluateAll(nodes => Object.fromEntries(nodes.map(node => [node.dataset.id, node.getAttribute('transform')]))); + await side('E', 'outgoing').click(); await count(14); + await assertFitted(); + assert.ok(await page.locator('.node').evaluateAll((nodes, before) => nodes.some(node => before[node.dataset.id] && before[node.dataset.id] !== node.getAttribute('transform')), beforeBranch), + 'expanding a descendant subtree moves its sibling boxes'); + await page.screenshot({ path: path.join(artifact, 'd-expanded-branch.png') }); + await page.setViewportSize({ width: 1440, height: 900 }); + activeRelations = marsRelations; + await host.show([item('MarsRover_ExecuteOne')], router); await count(5); + await page.screenshot({ path: path.join(artifact, 'execute-one-initial.png') }); + await side('MarsRover_Move', 'outgoing').click(); await count(6); + assert.equal(await page.locator('#arrow').getAttribute('markerUnits'), 'userSpaceOnUse', 'highlighting never changes arrow size'); + assert.equal(await page.locator('#arrow').getAttribute('refX'), '10', 'marker tip meets the path endpoint'); + const alignedPorts = await page.locator('.edge').evaluateAll(edges => edges.every(edge => { + const nodes = [...document.querySelectorAll('.node')]; + const from = nodes.find(node => node.dataset.id === edge.dataset.from).transform.baseVal.getItem(0).matrix; + const to = nodes.find(node => node.dataset.id === edge.dataset.to).transform.baseVal.getItem(0).matrix; + return Math.abs(edge.getPointAtLength(0).y - from.f - 37) < 0.01 + && Math.abs(edge.getPointAtLength(edge.getTotalLength()).y - to.f - 37) < 0.01; + })); + assert.ok(alignedPorts, 'expanded SVG arrows meet the vertical center of every node'); + await page.screenshot({ path: path.join(artifact, 'execute-one-expanded.png') }); + if (process.env.HORNET_GRAPH_SNAPSHOT) { + const snapshot = JSON.parse(fs.readFileSync(process.env.HORNET_GRAPH_SNAPSHOT, 'utf8')); + await page.evaluate(graph => window.dispatchEvent(new MessageEvent('message', { data: { type: 'graph', graph } })), snapshot); + await count(snapshot.nodes.length); + assert.equal(await side('MarsRover_GetForwardDelta', 'incoming').count(), 0); + assert.equal(await side('MarsRover_Move', 'incoming').getAttribute('aria-expanded'), 'true'); + assert.equal(await side('MarsRover_Move', 'outgoing').getAttribute('aria-expanded'), 'true'); + await page.screenshot({ path: path.join(artifact, 'mars-rover-call-graph.png') }); + } + assert.deepEqual(errors, []); + console.log('PASS: real Chromium rendering, left/right expansion/collapse, caching, cycles, both arrow styles, safe labels, zoom, navigation, reroot and invalidation.'); + console.log(`Screenshot: ${path.join(artifact, 'call-graph.png')}`); + } finally { + loader._load = original; + ready = false; + host?.dispose(); + await browser?.close(); + } +})().catch(error => { console.error(error); process.exitCode = 1; }); diff --git a/Extension/test/hornet/callGraph.test.ts b/Extension/test/hornet/callGraph.test.ts new file mode 100644 index 000000000..503cb39de --- /dev/null +++ b/Extension/test/hornet/callGraph.test.ts @@ -0,0 +1,270 @@ +import { test } from 'node:test'; +import * as assert from 'node:assert/strict'; +import type { CallHierarchyItem } from 'vscode-languageserver-protocol'; +import { CallGraphModel } from '../../src/hornet/views/callGraphModel'; + +const symbol = (name: string): CallHierarchyItem => ({ name, kind: 12, uri: `file:///project/${name}.cpp`, + range: { start: { line: 0, character: 0 }, end: { line: 5, character: 0 } }, + selectionRange: { start: { line: 0, character: 4 }, end: { line: 0, character: 8 } } }); +function fixture(edges: [string, string][]) { + const requests: string[] = []; + const model = new CallGraphModel(async (method: string, params: unknown) => { + const name = (params as { item: CallHierarchyItem }).item.name; + const incoming = method.endsWith('incomingCalls'); + requests.push(`${name}:${incoming ? 'incoming' : 'outgoing'}`); + return edges.filter(edge => edge[incoming ? 1 : 0] === name).map(edge => + incoming ? { from: symbol(edge[0]), fromRanges: [] } : { to: symbol(edge[1]), fromRanges: [] }) as T; + }, () => {}); + model.reset(symbol('root')); + return { model, requests, id: (name: string) => model.snapshot().nodes.find(node => node.name === name)!.id }; +} + +test('call graph expands both root directions without following unrelated callers of a child', async () => { + const { model, requests, id } = fixture([['caller', 'root'], ['root', 'callee'], ['other', 'callee'], ['callee', 'leaf']]); + await model.expand(id('root')); + assert.deepEqual(requests.sort(), ['root:incoming', 'root:outgoing']); + assert.deepEqual(model.snapshot().edges, [{ from: id('caller'), to: id('root') }, { from: id('root'), to: id('callee') }]); + await model.expand(id('callee'), 'outgoing'); + assert.ok(model.snapshot().nodes.some(node => node.name === 'leaf')); + assert.ok(!model.snapshot().nodes.some(node => node.name === 'other')); + await model.expand(id('callee'), 'incoming'); + assert.ok(!model.snapshot().nodes.some(node => node.name === 'other')); + const count = requests.length; + model.collapse(id('callee'), 'outgoing'); + assert.ok(!model.snapshot().nodes.some(node => node.name === 'leaf')); + assert.ok(!model.snapshot().nodes.some(node => node.name === 'other')); + await model.expand(id('callee'), 'outgoing'); + assert.equal(requests.length, count, 'reopening uses cached relationships'); +}); + +test('collapse removes descendants but preserves shared functions through other visible branches', async () => { + const { model, id } = fixture([['root', 'left'], ['root', 'right'], ['left', 'shared'], ['right', 'shared'], ['shared', 'leaf']]); + await model.expand(id('root')); + await model.expand(id('left'), 'outgoing'); + await model.expand(id('right'), 'outgoing'); + await model.expand(id('shared'), 'outgoing'); + model.collapse(id('left'), 'outgoing'); + assert.equal(model.snapshot().nodes.filter(node => node.name === 'shared').length, 1); + assert.ok(model.snapshot().nodes.some(node => node.name === 'leaf')); + model.collapse(id('right'), 'outgoing'); + assert.deepEqual(model.snapshot().nodes.map(node => node.name).sort(), ['left', 'right', 'root']); + model.collapse(id('root'), 'outgoing'); + assert.equal(model.snapshot().nodes.length, 1); +}); + +test('recursive calls and duplicate edges terminate and keep arrow direction', async () => { + const { model, id } = fixture([['root', 'root'], ['root', 'callee'], ['root', 'callee'], ['callee', 'root']]); + await model.expand(id('root')); + await model.expand(id('callee')); + assert.equal(model.snapshot().nodes.length, 2); + assert.equal(model.snapshot().edges.length, 3); + assert.ok(model.snapshot().edges.some(edge => edge.from === id('root') && edge.to === id('root'))); + model.collapse(id('root'), 'incoming'); + model.collapse(id('root'), 'outgoing'); + assert.equal(model.snapshot().nodes.length, 1); + assert.equal(model.snapshot().edges.length, 0); +}); + +test('concurrent clicks deduplicate queries; stale results cannot repopulate a new graph', async () => { + let finish!: (value: unknown) => void; + let requests = 0; + const model = new CallGraphModel(() => { requests++; return new Promise(resolve => { finish = resolve; }) as Promise; }, () => {}); + model.reset(symbol('root')); + const root = model.snapshot().root!; + const first = model.expand(root, 'incoming'); + const second = model.expand(root, 'incoming'); + assert.equal(requests, 1); + model.reset(symbol('new')); + finish([{ from: symbol('stale'), fromRanges: [] }]); + await Promise.all([first, second]); + assert.deepEqual(model.snapshot().nodes.map(node => node.name), ['new']); +}); + +test('one failed direction leaves the other usable and can be retried', async () => { + let failed = true; + const model = new CallGraphModel(async (method: string) => { + if (method.endsWith('incomingCalls')) { + if (failed) { throw new Error('backend failure'); } + return [{ from: symbol('caller'), fromRanges: [] }] as T; + } + return [{ to: symbol('callee'), fromRanges: [] }] as T; + }, () => {}); + model.reset(symbol('root')); + await model.expand(model.snapshot().root!); + assert.equal(model.snapshot().nodes[0].incoming.error, 'backend failure'); + assert.ok(model.snapshot().nodes.some(node => node.name === 'callee')); + failed = false; + await model.expand(model.snapshot().root!, 'incoming'); + assert.equal(model.snapshot().nodes[0].incoming.error, undefined); + assert.equal(model.snapshot().nodes.length, 3); +}); + +test('collapsing a loading branch prevents late results from reopening it', async () => { + let finish!: (value: unknown) => void; + const model = new CallGraphModel(() => new Promise(resolve => { finish = resolve; }) as Promise, () => {}); + model.reset(symbol('root')); + const root = model.snapshot().root!; + const loading = model.expand(root, 'outgoing'); + model.collapse(root, 'outgoing'); + finish([{ to: symbol('callee'), fromRanges: [] }]); + await loading; + assert.equal(model.snapshot().nodes.length, 1); + await model.expand(root, 'outgoing'); + assert.equal(model.snapshot().nodes.length, 2); +}); + +test('graph size is bounded without dangling edges', async () => { + const model = new CallGraphModel(async () => ['a', 'b', 'c'].map(name => ({ to: symbol(name), fromRanges: [] })) as T, () => {}, 2); + model.reset(symbol('root')); + await model.expand(model.snapshot().root!, 'outgoing'); + const graph = model.snapshot(); + assert.equal(graph.nodes.length, 2); + assert.equal(graph.edges.length, 1); + assert.match(graph.message!, /2/); + assert.ok(graph.edges.every(edge => graph.nodes.some(node => node.id === edge.to))); +}); + +test('probing discovers empty sides without expanding and reuses results on expansion', async () => { + const { model, requests, id } = fixture([['root', 'callee'], ['callee', 'leaf']]); + await model.expand(id('root')); + await model.probeVisible(); + const graph = model.snapshot(); + assert.equal(graph.nodes.length, 2); + assert.equal(graph.nodes.find(node => node.name === 'root')!.incoming.count, 0); + assert.deepEqual(graph.nodes.find(node => node.name === 'callee')!.outgoing, + { open: false, loaded: true, loading: false, count: 1, action: 'expand' }); + const count = requests.length; + await model.expand(id('callee'), 'outgoing'); + assert.equal(requests.length, count); + assert.equal(model.snapshot().nodes.length, 3); + await model.probeVisible(); + assert.deepEqual(model.snapshot().nodes.find(node => node.name === 'leaf')!.outgoing, + { open: false, loaded: true, loading: false, count: 0, action: 'none' }); +}); + +test('probes do not consume the node budget or recursively discover hidden nodes', async () => { + const requests: string[] = []; + const model = new CallGraphModel(async (_method: string, params: unknown) => { + requests.push((params as { item: CallHierarchyItem }).item.name); + return ['a', 'b', 'c'].map(name => ({ from: symbol(name), to: symbol(name), fromRanges: [] })) as T; + }, () => {}, 2); + model.reset(symbol('root')); + await model.probeVisible(); + assert.deepEqual(requests, ['root', 'root']); + assert.equal(model.snapshot().nodes.length, 1); + assert.equal(model.snapshot().message, undefined); + await model.expand(model.snapshot().root!, 'outgoing'); + assert.equal(model.snapshot().nodes.length, 2); + assert.equal(requests.length, 2); + assert.match(model.snapshot().message!, /2/); +}); + +test('failed availability probes remain retryable', async () => { + let failed = true; + const model = new CallGraphModel(async () => { + if (failed) { throw new Error('probe failed'); } + return [] as T; + }, () => {}); + model.reset(symbol('root')); + await model.probeVisible(); + assert.equal(model.snapshot().nodes[0].outgoing.loaded, false); + assert.equal(model.snapshot().nodes[0].outgoing.error, 'probe failed'); + failed = false; + await model.expand(model.snapshot().root!, 'outgoing'); + assert.equal(model.snapshot().nodes[0].outgoing.loaded, true); + assert.equal(model.snapshot().nodes[0].outgoing.count, 0); + assert.equal(model.snapshot().nodes[0].outgoing.error, undefined); +}); + +test('reset discards stale probes and their cached results', async () => { + const finishes: ((value: unknown) => void)[] = []; + const model = new CallGraphModel(() => new Promise(resolve => finishes.push(resolve)) as Promise, () => {}); + model.reset(symbol('root')); + const probing = model.probeVisible(); + model.reset(symbol('new')); + for (const finish of finishes) { finish([]); } + await probing; + assert.equal(model.snapshot().nodes[0].incoming.loaded, false); + const loading = model.expand(model.snapshot().root!, 'outgoing'); + assert.equal(finishes.length, 3); + finishes[2]([{ to: symbol('fresh'), fromRanges: [] }]); + await loading; + assert.deepEqual(model.snapshot().nodes.map(node => node.name), ['new', 'fresh']); +}); + +test('initial graph follows both complete chains without expanding unrelated sibling calls', async () => { + const { model, id } = fixture([['entry', 'caller'], ['caller', 'root'], ['caller', 'unrelated'], ['root', 'callee'], ['callee', 'leaf']]); + await model.expandChains(); + await model.probeVisible(); + assert.deepEqual(model.snapshot().nodes.map(node => node.name).sort(), ['callee', 'caller', 'entry', 'leaf', 'root']); + const node = (name: string) => model.snapshot().nodes.find(node => node.name === name)!; + assert.equal(node('root').incoming.action, 'collapse'); + assert.equal(node('root').outgoing.action, 'collapse'); + assert.equal(node('callee').incoming.action, 'none', 'already drawn root edge is not an expansion'); + assert.equal(node('caller').outgoing.action, 'none', 'unrelated callee branches of an ancestor cannot be expanded'); + assert.equal(node('leaf').incoming.action, 'none'); + assert.equal(node('leaf').outgoing.action, 'none'); + model.collapse(id('root'), 'outgoing'); + assert.equal(node('root').outgoing.action, 'expand'); + assert.ok(!model.snapshot().nodes.some(node => node.name === 'leaf')); + await model.expand(id('root'), 'outgoing'); + assert.ok(model.snapshot().nodes.some(node => node.name === 'leaf'), 'reopening restores the expanded descendant chain'); +}); + +test('shared edges and cycles do not produce no-op collapse buttons', async () => { + const { model, id } = fixture([['root', 'callee'], ['callee', 'root']]); + await model.expandChains(); + await model.probeVisible(); + assert.equal(model.snapshot().nodes.length, 2); + assert.equal(model.snapshot().edges.length, 2); + await model.expand(id('callee'), 'incoming'); + assert.equal(model.snapshot().nodes.find(node => node.name === 'callee')!.incoming.action, 'none'); +}); + +test('D side buttons follow complete caller and callee chains independently', async () => { + const edges: [string, string][] = [['main', 'A'], ['A', 'B'], ['B', 'C'], ['C', 'D'], + ['D', 'E'], ['E', 'F'], ['F', 'G'], ['D', 'I'], ['I', 'J']]; + const { model, id, requests } = fixture([...edges, ['main', 'H'], ['A', 'unusedA'], ['B', 'unusedB'], ['C', 'unusedC'], ['unrelatedCaller', 'F']]); + model.reset(symbol('D')); + await model.expandChain(id('D'), 'incoming'); + assert.deepEqual(model.snapshot().nodes.map(node => node.name).sort(), ['A', 'B', 'C', 'D', 'main']); + await model.expandChain(id('D'), 'outgoing'); + await model.probeVisible(); + const drawnEdges = () => model.snapshot().edges.map(edge => `${model.item(edge.from)!.name}->${model.item(edge.to)!.name}`).sort(); + assert.deepEqual(drawnEdges(), edges.map(edge => edge.join('->')).sort()); + for (const ancestor of ['main', 'A', 'B', 'C']) { + assert.equal(model.snapshot().nodes.find(node => node.name === ancestor)!.outgoing.action, 'none'); + await model.expandChain(id(ancestor), 'outgoing'); + await model.expand(id(ancestor), 'outgoing'); + assert.deepEqual(drawnEdges(), edges.map(edge => edge.join('->')).sort(), `${ancestor}'s other callees must remain excluded`); + assert.ok(!requests.includes(`${ancestor}:outgoing`), 'out-of-scope calls are never queried'); + } + await model.expandChain(id('F'), 'incoming'); + assert.ok(!requests.includes('F:incoming'), 'unrelated callers of descendants are never queried'); + model.collapse(id('D'), 'incoming'); + assert.deepEqual(model.snapshot().nodes.map(node => node.name).sort(), ['D', 'E', 'F', 'G', 'I', 'J']); + model.collapse(id('D'), 'outgoing'); + assert.deepEqual(model.snapshot().nodes.map(node => node.name), ['D']); + const queries = requests.length; + await model.expandChains(); + assert.deepEqual(drawnEdges(), edges.map(edge => edge.join('->')).sort()); + assert.equal(requests.length, queries, 'both chains reopen from the cache'); +}); + +test('a newly opened side discovers deeper calls and collapse cancels pending traversal', async () => { + const { model, id } = fixture([['root', 'new'], ['new', 'deep'], ['deep', 'leaf']]); + await model.expand(id('root'), 'outgoing'); + assert.equal(model.snapshot().nodes.length, 2); + await model.expandChain(id('new'), 'outgoing'); + assert.deepEqual(model.snapshot().nodes.map(node => node.name).sort(), ['deep', 'leaf', 'new', 'root']); + + let finish!: (value: unknown) => void; + const pending = new CallGraphModel(() => new Promise(resolve => { finish = resolve; }) as Promise, () => {}); + pending.reset(symbol('D')); + const root = pending.snapshot().root!; + const expanding = pending.expandChain(root, 'outgoing'); + pending.collapse(root, 'outgoing'); + finish([{ to: symbol('E'), fromRanges: [] }]); + await expanding; + assert.deepEqual(pending.snapshot().nodes.map(node => node.name), ['D']); +}); diff --git a/Extension/test/hornet/clangdDownload.cjs b/Extension/test/hornet/clangdDownload.cjs new file mode 100644 index 000000000..13f01ef84 --- /dev/null +++ b/Extension/test/hornet/clangdDownload.cjs @@ -0,0 +1,20 @@ +// Optional live download smoke test. Compile first, then run from Extension/. +const assert = require('node:assert/strict'); +const path = require('node:path'); +const { installClangd } = require('../../out/hornet/src/hornet/core/clangdInstaller'); +const { BinaryManager } = require('../../out/hornet/src/hornet/core/binaryManager'); +const storagePath = path.resolve('../.npm-cache/clangd-smoke'); +const options = { storagePath, report: console.log, proxy: process.env.HTTPS_PROXY || process.env.HTTP_PROXY }; +(async () => { + const first = installClangd(options); + assert.equal(installClangd(options), first, 'concurrent workspaces share the download'); + const binary = await first; + // Explicitly resolve the cache executable to check it remains valid after staging cleanup. + assert.equal(await new BinaryManager().resolve(binary), binary); + if (process.platform === 'win32') { + const manager = new BinaryManager({ storagePath, env: {} }); + assert.equal(await manager.ensure('clangd', async () => { throw new Error('Unexpected second download'); }), binary); + } + console.log('PASS: official download, checksum, extraction, executable validation and cache reuse'); + console.log(binary); +})().catch(error => { console.error(error); process.exitCode = 1; }); diff --git a/Extension/test/hornet/clangdInstaller.test.ts b/Extension/test/hornet/clangdInstaller.test.ts new file mode 100644 index 000000000..1fbbe36a5 --- /dev/null +++ b/Extension/test/hornet/clangdInstaller.test.ts @@ -0,0 +1,64 @@ +import { test } from 'node:test'; +import * as assert from 'node:assert/strict'; +import * as fs from 'node:fs/promises'; +import * as path from 'node:path'; +import * as os from 'node:os'; +import { createHash } from 'node:crypto'; +import { clangdDownload, extractClangdArchive, verifyClangdArchive } from '../../src/hornet/core/clangdInstaller'; + +// A minimal uncompressed ZIP entry, including its CRC and central directory. +function archive(name: string, content: string, mode = 0o100644): Buffer { + const filename = Buffer.from(name), data = Buffer.from(content); + let crc = 0xffffffff; + for (const byte of data) { + crc ^= byte; + for (let bit = 0; bit < 8; bit++) { crc = (crc >>> 1) ^ (crc & 1 ? 0xedb88320 : 0); } + } + crc = (crc ^ 0xffffffff) >>> 0; + const local = Buffer.alloc(30), central = Buffer.alloc(46), end = Buffer.alloc(22); + local.writeUInt32LE(0x04034b50); local.writeUInt16LE(20, 4); local.writeUInt32LE(crc, 14); + local.writeUInt32LE(data.length, 18); local.writeUInt32LE(data.length, 22); local.writeUInt16LE(filename.length, 26); + central.writeUInt32LE(0x02014b50); central.writeUInt16LE(0x0314, 4); central.writeUInt16LE(20, 6); + central.writeUInt32LE(crc, 16); central.writeUInt32LE(data.length, 20); central.writeUInt32LE(data.length, 24); + central.writeUInt16LE(filename.length, 28); central.writeUInt32LE((mode << 16) >>> 0, 38); + end.writeUInt32LE(0x06054b50); end.writeUInt16LE(1, 8); end.writeUInt16LE(1, 10); + end.writeUInt32LE(central.length + filename.length, 12); end.writeUInt32LE(local.length + filename.length + data.length, 16); + return Buffer.concat([local, filename, data, central, filename, end]); +} + +test('official downloads match native supported targets and reject incompatible archives', () => { + for (const [platform, arch, name] of [['win32', 'x64', 'windows'], ['linux', 'x64', 'linux'], ['darwin', 'arm64', 'mac'], ['darwin', 'x64', 'mac']]) { + const asset = clangdDownload(platform as NodeJS.Platform, arch); + assert.equal(new URL(asset.url).hostname, 'github.com'); + assert.ok(asset.url.endsWith(`clangd-${name}-22.1.6.zip`)); + assert.match(asset.sha256, /^[a-f0-9]{64}$/); + } + assert.throws(() => clangdDownload('linux', 'arm64'), /unavailable/); + assert.throws(() => clangdDownload('linux', 'x64', true), /musl/); + assert.throws(() => clangdDownload('win32', 'arm64'), /unavailable/); +}); + +test('archive verification rejects corrupted downloads; extraction preserves resource directories', async () => { + const root = await fs.mkdtemp(path.join(os.tmpdir(), 'hornet-archive-')); + try { + const file = path.join(root, 'test.zip'); + const bytes = archive('clangd_22.1.6/lib/clang/22/include/stddef.h', 'test header'); + await fs.writeFile(file, bytes); + await verifyClangdArchive(file, createHash('sha256').update(bytes).digest('hex')); + await assert.rejects(verifyClangdArchive(file, '0'.repeat(64)), /checksum/); + await extractClangdArchive(file, path.join(root, 'extract')); + assert.equal(await fs.readFile(path.join(root, 'extract/clangd_22.1.6/lib/clang/22/include/stddef.h'), 'utf8'), 'test header'); + } finally { await fs.rm(root, { recursive: true, force: true }); } +}); + +test('archive extraction rejects traversal and symbolic links', async () => { + const root = await fs.mkdtemp(path.join(os.tmpdir(), 'hornet-unsafe-archive-')); + try { + const file = path.join(root, 'test.zip'); + for (const [name, mode] of [['../escaped', 0o100644], ['/absolute', 0o100644], ['clangd/link', 0o120777]] as const) { + await fs.writeFile(file, archive(name, 'outside', mode)); + await assert.rejects(extractClangdArchive(file, path.join(root, 'extract'))); + } + await assert.rejects(fs.stat(path.join(root, 'escaped')), { code: 'ENOENT' }); + } finally { await fs.rm(root, { recursive: true, force: true }); } +}); diff --git a/Extension/test/hornet/compiler.test.ts b/Extension/test/hornet/compiler.test.ts new file mode 100644 index 000000000..400013ff4 --- /dev/null +++ b/Extension/test/hornet/compiler.test.ts @@ -0,0 +1,120 @@ +import { test } from 'node:test'; +import * as assert from 'node:assert/strict'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { pathToFileURL } from 'node:url'; +import { ProcessManager } from '../../src/hornet/core/processManager'; +import { CallGraphModel } from '../../src/hornet/views/callGraphModel'; +import type { CompilerEngine as CompilerEngineType } from '../../src/hornet/engines/compilerEngine'; +import type * as lsp from 'vscode-languageserver-protocol'; + +// Only VS Code host objects are substituted. Transport, process management and clangd are real. +test('real clangd: handshake, UTF-16 positions, completion, navigation, rename, hierarchies and diagnostics', { + skip: !process.env.HORNET_TEST_CLANGD && !process.env.HORNET_TEST_AUTO_CLANGD, timeout: 45000 +}, async () => { + const directory = fs.mkdtempSync(path.join(os.tmpdir(), 'hornet-clangd-')); + const manager = new ProcessManager(); + let engine: CompilerEngineType | undefined; + const moduleLoader = require('node:module') as { _load: (id: string, ...args: unknown[]) => unknown }; + const originalLoad = moduleLoader._load; + const settings: Record = { 'clangd.path': process.env.HORNET_TEST_CLANGD || 'clangd', cpuUsage: 'Low' }; + const mock = new Proxy({ + workspace: { isTrusted: true, getConfiguration: () => ({ get: (key: string, fallback: unknown) => settings[key] ?? fallback }) }, + window: { showErrorMessage: () => {} } + } as Record, { get: (target, key: string) => target[key] ?? class {} }); + moduleLoader._load = (id, ...args) => id === 'vscode' ? mock : originalLoad(id, ...args); + try { + const { CompilerEngine } = require('../../src/hornet/engines/compilerEngine') as { CompilerEngine: typeof CompilerEngineType }; + const file = path.join(directory, 'sample.cpp'); + const text = 'int add(int a, int b) { return a + b; }\nstruct Base { virtual ~Base() = default; };\nstruct Derived : Base {};\nint main() { /* 中文 😀 */ return add(1, 2); }\n'; + fs.writeFileSync(file, text); + fs.writeFileSync(path.join(directory, 'compile_commands.json'), JSON.stringify([{ directory, file, arguments: ['clang++', '-std=c++17', '-c', file] }])); + const uri = pathToFileURL(file).toString(); + const logs: string[] = []; + let receiveDiagnostics!: (params: lsp.PublishDiagnosticsParams) => void; + const diagnostics = new Promise(resolve => { receiveDiagnostics = resolve; }); + engine = new CompilerEngine(manager, { + root: { name: 'integration', index: 0, uri: { fsPath: directory, toString: () => pathToFileURL(directory).toString() } as never }, + databaseDirectory: directory, log: line => logs.push(line), diagnostics: params => receiveDiagnostics(params), + changed: () => {}, refresh: () => {}, canApplyEdit: () => false + }); + await engine.initialize(); + assert.ok(engine.getCapabilities().completionProvider, logs.join('\n')); + await engine.notify('textDocument/didOpen', { textDocument: { uri, languageId: 'cpp', version: 1, text } }); + const initial = await diagnostics; + assert.equal(initial.diagnostics.filter(diagnostic => diagnostic.severity === 1).length, 0, JSON.stringify(initial)); + const params = { textDocument: { uri }, position: { line: 3, character: text.split('\n')[3].indexOf('add') + 1 } }; + const definition = await engine.request('textDocument/definition', params); + assert.ok(definition?.length); + assert.equal(definition![0].range.start.line, 0); + const references = await engine.request('textDocument/references', { ...params, context: { includeDeclaration: true } }); + assert.ok(references && references.length >= 2); + const rename = await engine.request('textDocument/rename', { ...params, newName: 'sum' }); + assert.ok(rename && (rename.changes || rename.documentChanges)); + const completion = await engine.request('textDocument/completion', { ...params, position: { ...params.position, character: params.position.character + 1 }, context: { triggerKind: 1 } }); + assert.ok(completion?.items.some(item => item.label.includes('add'))); + const calls = await engine.request('textDocument/prepareCallHierarchy', { textDocument: { uri }, position: { line: 0, character: 5 } }); + assert.ok(calls?.length); + const incoming = await engine.request('callHierarchy/incomingCalls', { item: calls![0] }); + assert.ok(incoming?.some(call => call.from.name.includes('main'))); + const main = await engine.request('textDocument/prepareCallHierarchy', { textDocument: { uri }, position: { line: 3, character: 5 } }); + const outgoing = await engine.request('callHierarchy/outgoingCalls', { item: main![0] }); + assert.ok(outgoing?.some(call => call.to.name.includes('add'))); + const graph = new CallGraphModel((method, input) => engine!.request(method, input), () => {}); + graph.reset(calls![0]); + await graph.expand(graph.snapshot().root!); + const mainNode = graph.snapshot().nodes.find(node => node.name.includes('main')); + assert.ok(mainNode); + await graph.expand(mainNode.id, 'outgoing'); + assert.equal(graph.snapshot().nodes.length, 2); + assert.deepEqual(graph.snapshot().edges, [{ from: mainNode.id, to: graph.snapshot().root }]); + graph.collapse(graph.snapshot().root!, 'incoming'); + assert.equal(graph.snapshot().nodes.length, 1); + if (engine.getCapabilities().typeHierarchyProvider) { + const types = await engine.request('textDocument/prepareTypeHierarchy', { textDocument: { uri }, position: { line: 2, character: 9 } }); + assert.ok(types?.length); + const bases = await engine.request('typeHierarchy/supertypes', { item: types![0] }); + assert.ok(bases?.some(type => type.name === 'Base')); + } + await engine.notify('textDocument/didChange', { textDocument: { uri, version: 2 }, contentChanges: [{ text: text.replace('return add(1, 2)', 'return 42') }] }); + assert.deepEqual(await engine.request('callHierarchy/outgoingCalls', { item: main![0] }), [], 'graph queries preserve unsaved editor content, including canonical URI aliases'); + const invalid = new Promise(resolve => { receiveDiagnostics = params => { if (params.version === 3) resolve(params); }; }); + await engine.notify('textDocument/didChange', { textDocument: { uri, version: 3 }, contentChanges: [{ text: text + 'int broken = ;\n' }] }); + assert.ok((await invalid).diagnostics.some(diagnostic => diagnostic.severity === 1)); + // Real semantic regression for the selected D chain, with deliberately unrelated + // ancestor callees and an unrelated caller of F in the same translation unit. + const chainFile = file, chainUri = uri; + const chainText = ['int G() { return 1; }', 'int J() { return 2; }', 'int H() { return 3; }', + 'int unusedA() { return 4; }', 'int unusedB() { return 5; }', 'int unusedC() { return 6; }', + 'int F() { return G(); }', 'int E() { return F(); }', 'int I() { return J(); }', + 'int D() { return E() + I(); }', 'int C() { return D() + unusedC(); }', + 'int B() { return C() + unusedB(); }', 'int A() { return B() + unusedA(); }', + 'int main() { return A() + H(); }', 'int unrelatedCaller() { return F(); }'].join('\n'); + fs.writeFileSync(chainFile, chainText); + const chainDiagnostics = new Promise(resolve => { + receiveDiagnostics = params => { if (params.version === 4) resolve(params); }; + }); + await engine.notify('textDocument/didChange', { textDocument: { uri: chainUri, version: 4 }, contentChanges: [{ text: chainText }] }); + assert.equal((await chainDiagnostics).diagnostics.filter(diagnostic => diagnostic.severity === 1).length, 0); + const center = await engine.request('textDocument/prepareCallHierarchy', { textDocument: { uri: chainUri }, position: { line: 9, character: 5 } }); + assert.ok(center?.length); + graph.reset(center[0]); + await graph.expandChains(); + const shortName = (id: string) => graph.item(id)!.name.replace(/\(.*$/, ''); + const expected = ['main->A', 'A->B', 'B->C', 'C->D', 'D->E', 'E->F', 'F->G', 'D->I', 'I->J'].sort(); + const drawn = () => graph.snapshot().edges.map(edge => `${shortName(edge.from)}->${shortName(edge.to)}`).sort(); + assert.deepEqual(drawn(), expected); + for (const node of graph.snapshot().nodes.filter(node => ['main', 'A', 'B', 'C'].includes(shortName(node.id)))) { + await graph.expandChain(node.id, 'outgoing'); + } + assert.deepEqual(drawn(), expected, 'manual expansion cannot add H or any ancestor side branch'); + await engine.shutdown(); + assert.deepEqual(engine.getCapabilities(), {}); + } finally { + await engine?.shutdown(); + await manager.dispose(); + moduleLoader._load = originalLoad; + fs.rmSync(directory, { recursive: true, force: true }); + } +}); diff --git a/Extension/test/hornet/core.test.ts b/Extension/test/hornet/core.test.ts new file mode 100644 index 000000000..b6f11d046 --- /dev/null +++ b/Extension/test/hornet/core.test.ts @@ -0,0 +1,131 @@ +import { test } from 'node:test'; +import * as assert from 'node:assert/strict'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { pathToFileURL } from 'node:url'; +import { parseCompilationDatabase, mergeCompilationDatabases, canonical } from '../../src/hornet/compdb/compileCommandsParser'; +import { threadCount } from '../../src/hornet/core/cpuScheduler'; +import { ModeManager } from '../../src/hornet/core/modeManager'; +import { CapabilityRouter } from '../../src/hornet/core/capabilityRouter'; +import { LanguageEngine, ParseMode } from '../../src/hornet/engines/languageEngine'; +import { HybridEngine, deduplicate } from '../../src/hornet/engines/hybridEngine'; + +class FakeEngine implements LanguageEngine { + events: string[] = []; + fail = false; + result: unknown = [{ name: 'result' }]; + pending?: Promise; + constructor(readonly mode: ParseMode) {} + async initialize() { this.events.push('start'); if (this.fail) { throw new Error('start failed'); } } + async shutdown() { this.events.push('stop'); } + async restart() { await this.shutdown(); await this.initialize(); } + getCapabilities() { return { definitionProvider: true, renameProvider: true, workspaceSymbolProvider: true }; } + async request(method: string): Promise { this.events.push(method); return (this.pending ? await this.pending : this.result) as T; } + async notify(method: string) { this.events.push(method); } +} + +test('database resolves relative paths, preserves argument boundaries and gives last source precedence', () => { + const source = path.resolve('fixture', 'compile_commands.json'); + const commands = parseCompilationDatabase('\uFEFF' + JSON.stringify([ + { directory: './build', file: '../src/a.cpp', arguments: ['clang++', '-DNAME=a b', '../src/a.cpp'] }, + { directory: './build', file: '../src/../src/a.cpp', command: 'clang++ -DSECOND ../src/a.cpp' } + ]), source); + assert.equal(commands[0].file, path.resolve('fixture/src/a.cpp')); + assert.equal(commands[0].arguments?.[1], '-DNAME=a b'); + const merged = mergeCompilationDatabases([{ path: 'first', commands: [commands[0]] }, { path: 'second', commands: [commands[1]] }]); + assert.equal(merged.commands.length, 1); + assert.equal(merged.commands[0].command, 'clang++ -DSECOND ../src/a.cpp'); + assert.equal(merged.provenance[canonical(commands[0].file)], 'second'); +}); + +test('database rejects malformed entries rather than silently claiming coverage', () => { + for (const value of [{}, [null], [{ file: 'x.c', directory: '.' }], [{ file: 'x.c', directory: '.', arguments: [] }], [{ file: 'x.c', directory: '.', arguments: [1] }], [{ file: '', directory: '.', command: 'cc' }]]) { + assert.throws(() => parseCompilationDatabase(JSON.stringify(value), path.resolve('compile_commands.json'))); + } + assert.throws(() => parseCompilationDatabase('[', 'compile_commands.json')); +}); + +test('canonicalization coalesces a symlink and its target when platform permissions allow', t => { + const directory = fs.mkdtempSync(path.join(os.tmpdir(), 'hornet-path-')); + try { + fs.writeFileSync(path.join(directory, 'target.cpp'), 'void f() {}'); + try { fs.symlinkSync(path.join(directory, 'target.cpp'), path.join(directory, 'alias.cpp')); } + catch (error) { if (['EPERM', 'EACCES'].includes((error as NodeJS.ErrnoException).code ?? '')) { t.skip('Symlink creation is unavailable'); return; } throw error; } + assert.equal(canonical(path.join(directory, 'target.cpp')), canonical(path.join(directory, 'alias.cpp'))); + } finally { fs.rmSync(directory, { recursive: true, force: true }); } +}); + +test('CPU budgets respect the documented ratios and never allocate zero workers', () => { + assert.deepEqual(['Maximum', 'High', 'Medium', 'Low'].map(value => threadCount(value, 8)), [8, 6, 4, 2]); + assert.equal(threadCount('Low', 1), 1); + assert.equal(threadCount('unknown', 0), 1); +}); + +test('mode transitions serialize and dispose every previous engine', async () => { + const engines: FakeEngine[] = []; + const modes = new ModeManager(mode => { const engine = new FakeEngine(mode); engines.push(engine); return engine; }); + await Promise.all([modes.switchMode(ParseMode.Compiler), modes.switchMode(ParseMode.Hybrid)]); + assert.deepEqual(engines[0].events, ['start', 'stop']); + assert.equal(modes.getActiveEngine(), engines[1]); + await modes.shutdown(); + assert.deepEqual(engines[1].events, ['start', 'stop']); + await assert.rejects(modes.switchMode(ParseMode.Compiler), /closed/); +}); + +test('failed mode startup rolls back to the last usable engine', async () => { + const compiler = new FakeEngine(ParseMode.Compiler); + const tag = new FakeEngine(ParseMode.Tag); tag.fail = true; + const modes = new ModeManager(mode => mode === ParseMode.Compiler ? compiler : tag); + await modes.switchMode(ParseMode.Compiler); + await assert.rejects(modes.switchMode(ParseMode.Tag), /start failed/); + assert.equal(modes.getActiveEngine(), compiler); + assert.deepEqual(compiler.events, ['start', 'stop', 'start']); + assert.deepEqual(tag.events, ['start', 'stop']); + await modes.shutdown(); +}); + +test('router ignores unsupported, foreign-workspace and stale responses', async () => { + const engines: FakeEngine[] = []; + const modes = new ModeManager(mode => { const engine = new FakeEngine(mode); engines.push(engine); return engine; }); + const router = new CapabilityRouter(modes, uri => uri.startsWith('file:///root/')); + await modes.switchMode(ParseMode.Compiler); + assert.equal(await router.request('textDocument/hover', {}), null); + assert.equal(await router.request('textDocument/definition', { textDocument: { uri: 'file:///elsewhere/a.c' } }), null); + let finish!: (value: unknown) => void; + engines[0].pending = new Promise(resolve => { finish = resolve; }); + const response = router.request('textDocument/definition', {}); + await modes.switchMode(ParseMode.Hybrid); + finish([{ uri: 'file:///root/a.c' }]); + assert.equal(await response, null); + await modes.shutdown(); +}); + +test('Hybrid chooses coverage-dependent backends and never falls back for rename', async () => { + const compiler = new FakeEngine(ParseMode.Compiler); + const tag = new FakeEngine(ParseMode.Tag); + const hybrid = new HybridEngine(compiler, uri => uri === 'covered', tag); + await hybrid.request('textDocument/definition', { textDocument: { uri: 'uncovered' } }); + assert.deepEqual(tag.events, ['textDocument/definition']); + assert.deepEqual(compiler.events, []); + assert.equal(await hybrid.request('textDocument/rename', { textDocument: { uri: 'uncovered' } }), null); + compiler.result = []; + await hybrid.request('textDocument/definition', { textDocument: { uri: 'covered' } }); + assert.equal(tag.events.length, 2); + compiler.result = null; + await hybrid.request('textDocument/rename', { textDocument: { uri: 'covered' } }); + assert.equal(tag.events.length, 2); +}); + +test('Hybrid merges symbols by location without duplicating identical results', async () => { + const compiler = new FakeEngine(ParseMode.Compiler); + const tag = new FakeEngine(ParseMode.Tag); + const symbol = { name: 'f', location: { uri: 'file:///a.c', range: { start: { line: 0, character: 0 }, end: { line: 0, character: 1 } } } }; + compiler.result = [symbol]; tag.result = [symbol, { ...symbol, name: 'g' }]; + assert.equal((await new HybridEngine(compiler, () => true, tag).request('workspace/symbol', {}))?.length, 2); + assert.equal(deduplicate([symbol, symbol]).length, 1); + const file = pathToFileURL(path.resolve('fixture/a.cpp')).toString(); + const first = { ...symbol, location: { ...symbol.location, uri: file } }; + const second = { ...first, location: { ...first.location, uri: file.replace('/a.cpp', '/nested/../a.cpp'), range: { start: { line: 0, character: 0 }, end: { line: 99, character: 1 } } } }; + assert.equal(deduplicate([first, second]).length, 1); +}); diff --git a/Extension/test/hornet/databaseDiscovery.test.ts b/Extension/test/hornet/databaseDiscovery.test.ts new file mode 100644 index 000000000..6a529db9f --- /dev/null +++ b/Extension/test/hornet/databaseDiscovery.test.ts @@ -0,0 +1,78 @@ +import { test } from 'node:test'; +import * as assert from 'node:assert/strict'; +import * as fs from 'node:fs/promises'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { discoverCompilationDatabase } from '../../src/hornet/compdb/databaseDiscovery'; + +async function database(root: string, folder: string, define: string) { + const directory = path.join(root, folder); + await fs.mkdir(directory, { recursive: true }); + const file = path.join(directory, 'compile_commands.json'); + await fs.writeFile(file, JSON.stringify([{ directory: root, file: path.join(root, 'main.c'), arguments: ['arm-none-eabi-gcc', `-D${define}`, '-mcpu=cortex-m3', '-Idevice/include', '-c', 'main.c'] }])); + return file; +} + +test('CMake configuration discovery selects one variant and supports nested build directories', async () => { + const root = await fs.mkdtemp(path.join(os.tmpdir(), 'hornet-discovery-')); + try { + const debug = await database(root, 'build/Debug', 'DEBUG'), release = await database(root, 'build/Release', 'NDEBUG'); + assert.equal(await discoverCompilationDatabase(root), debug); + await fs.writeFile(path.join(root, 'CMakePresets.json'), JSON.stringify({ configurePresets: [ + { name: 'Debug', binaryDir: '${sourceDir}/build/Debug' }, { name: 'Release', binaryDir: '${sourceDir}/build/Release' } + ] })); + assert.equal(await discoverCompilationDatabase(root, { preset: 'Release' }), release); + assert.equal(await discoverCompilationDatabase(root, { preset: 'Debug' }), debug); + assert.equal(await discoverCompilationDatabase(root, { buildDirectory: '${workspaceFolder}/build/Release' }), release); + } finally { await fs.rm(root, { recursive: true, force: true }); } +}); + +test('preset include/inheritance expands paths without executing build commands or crawling source trees', async () => { + const root = await fs.mkdtemp(path.join(os.tmpdir(), 'hornet-presets-')); + try { + const selected = await database(root, 'custom/board-debug', 'BOARD'); + await fs.writeFile(path.join(root, 'base.json'), JSON.stringify({ configurePresets: [{ name: 'base', hidden: true, binaryDir: '${sourceDir}/custom/${presetName}' }] })); + await fs.writeFile(path.join(root, 'CMakePresets.json'), JSON.stringify({ include: ['base.json'], configurePresets: [{ name: 'board-debug', inherits: 'base' }] })); + assert.equal(await discoverCompilationDatabase(root, { preset: 'board-debug' }), selected); + await fs.unlink(path.join(root, 'CMakePresets.json')); + await database(root, 'drivers/vendor/deep', 'UNRELATED'); + assert.equal(await discoverCompilationDatabase(root), undefined, 'source/vendor directories are not build roots'); + } finally { await fs.rm(root, { recursive: true, force: true }); } +}); + +test('discovered parameters are automatically written under .vscode, refreshed on configuration changes and preserve explicit imports', async () => { + const root = await fs.mkdtemp(path.join(os.tmpdir(), 'hornet-managed-db-')); + const loader = require('node:module') as { _load: (id: string, ...args: unknown[]) => unknown }, original = loader._load; + let manager: import('../../src/hornet/compdb/compileCommandsManager').CompileCommandsManager | undefined; + let selected = 'Debug'; + const subscription = () => ({ dispose() {} }); + const mock = { + EventEmitter: class { event = subscription; fire() {} dispose() {} }, RelativePattern: class {}, + Uri: { file: (fsPath: string) => ({ fsPath }) }, + workspace: { getConfiguration: () => ({ get: (key: string) => key === 'defaultConfigurePreset' ? selected : undefined }), + createFileSystemWatcher: () => ({ onDidChange: subscription, onDidCreate: subscription, onDidDelete: subscription, dispose() {} }) } + }; + loader._load = (id, ...args) => id === 'vscode' ? mock : original(id, ...args); + try { + const { CompileCommandsManager } = require('../../src/hornet/compdb/compileCommandsManager'); + const debug = await database(root, 'build/Debug', 'STM32F103xE'), release = await database(root, 'build/Release', 'RELEASE'); + await fs.writeFile(path.join(root, 'CMakePresets.json'), JSON.stringify({ configurePresets: [ + { name: 'Debug', binaryDir: '${sourceDir}/build/Debug' }, { name: 'Release', binaryDir: '${sourceDir}/build/Release' } + ] })); + const output = path.join(root, '.vscode/hornet/compile-db'); + await fs.mkdir(output, { recursive: true }); + await fs.writeFile(path.join(output, 'sources.json'), JSON.stringify({ sources: [] })); + manager = new CompileCommandsManager({ uri: { fsPath: root } }, () => {}); + await manager!.initialize(); + assert.equal(manager!.directory, output); + const read = async () => JSON.parse(await fs.readFile(path.join(output, 'compile_commands.json'), 'utf8')); + assert.deepEqual(await read(), JSON.parse(await fs.readFile(debug, 'utf8')), 'includes, macros and ARM flags remain intact'); + selected = 'Release'; await manager!.reload(false); + assert.deepEqual(await read(), JSON.parse(await fs.readFile(release, 'utf8')), 'old automatic variant is replaced, never merged'); + const manual = await database(root, 'manual', 'MANUAL'); + await manager!.import([manual]); + selected = 'Debug'; await manager!.reload(false); + assert.deepEqual(await read(), JSON.parse(await fs.readFile(manual, 'utf8')), 'explicit imported commands retain precedence'); + assert.equal(JSON.parse(await fs.readFile(path.join(output, 'sources.json'), 'utf8')).version, 2); + } finally { manager?.dispose(); loader._load = original; await fs.rm(root, { recursive: true, force: true }); } +}); diff --git a/Extension/test/hornet/fallbackCompilation.test.ts b/Extension/test/hornet/fallbackCompilation.test.ts new file mode 100644 index 000000000..4fb745fa0 --- /dev/null +++ b/Extension/test/hornet/fallbackCompilation.test.ts @@ -0,0 +1,37 @@ +import { test } from 'node:test'; +import * as assert from 'node:assert/strict'; +import * as fs from 'node:fs/promises'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { prepareCompilerConfiguration } from '../../src/hornet/compdb/fallbackCompilation'; + +test('unconfigured projects discover include directories and index unopened first-party sources', async () => { + const root = await fs.mkdtemp(path.join(os.tmpdir(), 'hornet-fallback-')); + try { + for (const directory of ['src', 'app', 'include', 'module/inc', 'build', 'third_party', '.vscode/hornet/compile-db']) { + await fs.mkdir(path.join(root, directory), { recursive: true }); + } + for (const file of ['src/core.c', 'app/main.cpp', 'build/generated.c', 'third_party/vendor.cpp']) { await fs.writeFile(path.join(root, file), ''); } + const original = path.join(root, '.vscode/hornet/compile-db'); + await fs.writeFile(path.join(original, 'compile_commands.json'), '[]'); + const result = await prepareCompilerConfiguration(root, original); + assert.equal(result.inferred, 2); + assert.ok(result.fallbackFlags.includes(`-I${path.join(root, 'include')}`)); + assert.ok(result.fallbackFlags.includes(`-I${path.join(root, 'module/inc')}`)); + const commands = JSON.parse(await fs.readFile(path.join(result.directory, 'compile_commands.json'), 'utf8')); + assert.equal(commands.length, 2); + assert.ok(commands.every((command: { arguments: string[] }) => command.arguments.includes(`-I${path.join(root, 'include')}`))); + assert.equal(await fs.readFile(path.join(original, 'compile_commands.json'), 'utf8'), '[]', 'inferred flags never become authoritative compile commands'); + } finally { await fs.rm(root, { recursive: true, force: true }); } +}); + +test('real compile commands keep their exact flags and directory', async () => { + const root = await fs.mkdtemp(path.join(os.tmpdir(), 'hornet-real-db-')); + try { + const text = JSON.stringify([{ directory: root, file: path.join(root, 'main.c'), arguments: ['cross-clang', '-DPLATFORM=1', '-c', 'main.c'] }]); + await fs.writeFile(path.join(root, 'compile_commands.json'), text); + const result = await prepareCompilerConfiguration(root, root); + assert.deepEqual(result, { directory: root, fallbackFlags: [], inferred: 0, sources: [path.join(root, 'main.c')] }); + assert.equal(await fs.readFile(path.join(root, 'compile_commands.json'), 'utf8'), text); + } finally { await fs.rm(root, { recursive: true, force: true }); } +}); diff --git a/Extension/test/hornet/index.test.ts b/Extension/test/hornet/index.test.ts new file mode 100644 index 000000000..03857a6b7 --- /dev/null +++ b/Extension/test/hornet/index.test.ts @@ -0,0 +1,76 @@ +import { test } from 'node:test'; +import * as assert from 'node:assert/strict'; +import * as fs from 'node:fs/promises'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { pathToFileURL } from 'node:url'; +import { ProcessManager } from '../../src/hornet/core/processManager'; +import type { CompilerEngine as CompilerEngineType } from '../../src/hornet/engines/compilerEngine'; +import type { IndexStatus } from '../../src/hornet/engines/languageEngine'; + +test('real clangd: unopened project builds persistent index, reuses cache and discovers new files on rebuild', { + skip: !process.env.HORNET_TEST_CLANGD && !process.env.HORNET_TEST_AUTO_CLANGD, timeout: 60000 +}, async () => { + const root = await fs.mkdtemp(path.join(os.tmpdir(), 'hornet-index-')); + const processes = new ProcessManager(); + let engine: CompilerEngineType | undefined; + const loader = require('node:module') as { _load: (id: string, ...args: unknown[]) => unknown }; + const original = loader._load; + const mock = new Proxy({ + workspace: { isTrusted: true, getConfiguration: () => ({ get: (key: string, fallback: unknown) => key === 'clangd.path' ? process.env.HORNET_TEST_CLANGD || 'clangd' : key === 'clangd.arguments' ? ['--log=verbose'] : fallback }) }, + window: { showErrorMessage: () => {} } + } as Record, { get: (target, key: string) => target[key] ?? class {} }); + loader._load = (id, ...args) => id === 'vscode' ? mock : original(id, ...args); + try { + const { CompilerEngine } = require('../../src/hornet/engines/compilerEngine') as { CompilerEngine: typeof CompilerEngineType }; + const database = path.join(root, '.vscode', 'hornet', 'compile-db'); + await fs.mkdir(database, { recursive: true }); + await fs.writeFile(path.join(database, 'compile_commands.json'), '[]'); + await fs.writeFile(path.join(root, 'a.cpp'), 'int seed() { return 1; }\n'); + await fs.writeFile(path.join(root, 'b.cpp'), 'int unopenedFunction() { return 2; }\n'); + const logs: string[] = []; + const statuses: IndexStatus[] = []; + engine = new CompilerEngine(processes, { + root: { name: 'index', index: 0, uri: { fsPath: root, toString: () => pathToFileURL(root).toString() } as never }, + databaseDirectory: database, log: line => logs.push(line), diagnostics: () => {}, changed: () => {}, + refresh: () => {}, canApplyEdit: () => false, indexChanged: status => statuses.push(status) + }); + await engine.initialize(); + const build = engine.buildIndex(); + assert.equal(engine.buildIndex(), build, 'concurrent requests share the build'); + await build; + assert.equal(statuses.at(-1)?.state, 'ready', logs.join('\n')); + for (const phase of ['discovering', 'starting', 'parsing', 'finalizing']) { + assert.ok(statuses.some(status => status.phase === phase), `Index progress must expose the ${phase} stage`); + } + assert.ok(statuses.some(status => status.state === 'building' && (status.elapsedSeconds ?? 0) >= 1), 'quiet/cache waits still show elapsed progress'); + const symbols = await engine.request<{ name: string }[]>('workspace/symbol', { query: 'unopenedFunction' }); + assert.ok(symbols?.some(symbol => symbol.name.startsWith('unopenedFunction')), `${JSON.stringify(symbols)}\n${logs.join('\n')}`); + const files = await fs.readdir(root, { recursive: true }); + const shards = files.filter(file => file.endsWith('.idx')); + assert.ok(shards.some(file => file.includes('b.cpp')), `Unopened file must have an on-disk index: ${files.join(', ')}\n${logs.join('\n')}`); + const shard = path.join(root, shards.find(file => file.includes('b.cpp'))!); + const timestamp = (await fs.stat(shard)).mtimeMs; + await engine.restart(); + await engine.buildIndex(); + assert.equal((await fs.stat(shard)).mtimeMs, timestamp, 'unchanged cached index is reused'); + await fs.writeFile(path.join(root, 'new.cpp'), 'int newlyAddedFunction() { return 3; }\n'); + await engine.restart(); + await engine.buildIndex(); + const added = await engine.request<{ name: string }[]>('workspace/symbol', { query: 'newlyAddedFunction' }); + assert.ok(added?.some(symbol => symbol.name.startsWith('newlyAddedFunction')), logs.join('\n')); + // The same startup path must work with a real compilation database and its flags. + const realFile = path.join(root, 'real.cpp'); + await fs.writeFile(realFile, '#ifdef REAL_FLAGS\nint configuredFunction() { return 4; }\n#endif\n'); + await fs.writeFile(path.join(database, 'compile_commands.json'), JSON.stringify([{ directory: root, file: realFile, arguments: ['clang++', '-DREAL_FLAGS', '-c', realFile] }])); + await engine.restart(); + await engine.buildIndex(); + const configured = await engine.request<{ name: string }[]>('workspace/symbol', { query: 'configuredFunction' }); + assert.ok(configured?.some(symbol => symbol.name.startsWith('configuredFunction')), logs.join('\n')); + } finally { + await engine?.shutdown(); + await processes.dispose(); + loader._load = original; + await fs.rm(root, { recursive: true, force: true }); + } +}); diff --git a/Extension/test/hornet/index.vscode.cjs b/Extension/test/hornet/index.vscode.cjs new file mode 100644 index 000000000..4b838bb53 --- /dev/null +++ b/Extension/test/hornet/index.vscode.cjs @@ -0,0 +1,56 @@ +// Run in an isolated VS Code extension host with an unopened C/C++ fixture folder. +const vscode = require('vscode'); +const assert = require('node:assert/strict'); +const fs = require('node:fs/promises'); +const path = require('node:path'); + +exports.run = async () => { + const root = vscode.workspace.workspaceFolders[0].uri.fsPath; + const result = path.join(root, 'index-host-result.json'); + const waitFor = async (check, label) => { + const deadline = Date.now() + 30000; + while (Date.now() < deadline) { + if (await check()) { return; } + await new Promise(resolve => setTimeout(resolve, 200)); + } + throw new Error(`Timed out: ${label}`); + }; + try { + assert.equal(vscode.workspace.textDocuments.filter(doc => ['c', 'cpp'].includes(doc.languageId)).length, 0); + const extension = vscode.extensions.getExtension('hornet.hornet-cpp'); + assert.ok(extension); + // Do not activate explicitly: workspaceContains must activate the extension on folder open. + await waitFor(() => extension.isActive, 'automatic activation'); + await waitFor(async () => (await fs.readdir(root, { recursive: true })).some(file => file.endsWith('.idx')), 'automatic persistent index'); + await fs.writeFile(path.join(root, 'new.cpp'), 'int addedThroughManualBuild() { return 3; }\n'); + // The command must wait for completion, even if discovery is also handling the file event. + await vscode.commands.executeCommand('hornet-cpp.buildProjectIndex', vscode.Uri.file(root)); + const files = await fs.readdir(root, { recursive: true }); + assert.ok(files.some(file => file.includes('new.cpp') && file.endsWith('.idx')), files.join('\n')); + const symbols = await vscode.commands.executeCommand('vscode.executeWorkspaceSymbolProvider', 'addedThroughManualBuild'); + assert.ok(symbols.some(symbol => symbol.name.startsWith('addedThroughManualBuild')), JSON.stringify(symbols)); + // Consume any deferred discovery restart from the deliberate new-file event before opening a graph. + await extension.exports.getApi(1).refreshIndex(); + const editor = await vscode.window.showTextDocument(vscode.Uri.file(path.join(root, 'a.cpp'))); + editor.selection = new vscode.Selection(0, 5, 0, 5); + const tabs = () => vscode.window.tabGroups.all.flatMap(group => group.tabs); + const originalTabs = tabs().length, originalGroups = vscode.window.tabGroups.all.length; + await vscode.commands.executeCommand('hornet-cpp.showCallGraph'); + await vscode.commands.executeCommand('hornet-cpp.graphView.focus'); + assert.equal(tabs().length, originalTabs, 'show graph does not create an editor tab'); + assert.equal(vscode.window.tabGroups.all.length, originalGroups, 'show graph does not split the editor'); + assert.ok(!tabs().some(tab => tab.input instanceof vscode.TabInputWebview)); + await vscode.commands.executeCommand('workbench.action.closePanel'); + await vscode.commands.executeCommand('hornet-cpp.graphView.focus'); + assert.equal(tabs().length, originalTabs, 'reopening the bottom panel keeps the editor layout'); + if (process.env.HORNET_PANEL_CAPTURE) { + await vscode.commands.executeCommand('notifications.clearAll'); + await fs.writeFile(path.join(root, 'panel-ready.json'), '{}'); + await waitFor(async () => fs.access(path.join(root, 'panel-captured.json')).then(() => true, () => false), 'panel screenshot'); + } + await fs.writeFile(result, JSON.stringify({ passed: true, version: extension.packageJSON.version, shards: files.filter(file => file.endsWith('.idx')) }, null, 2)); + } catch (error) { + await fs.writeFile(result, JSON.stringify({ passed: false, error: error.stack }, null, 2)); + throw error; + } +}; diff --git a/Extension/test/hornet/layout.test.ts b/Extension/test/hornet/layout.test.ts new file mode 100644 index 000000000..e70b9633f --- /dev/null +++ b/Extension/test/hornet/layout.test.ts @@ -0,0 +1,122 @@ +import { test } from 'node:test'; +import * as assert from 'node:assert/strict'; +import * as path from 'node:path'; +import type { GraphSnapshot } from '../../src/hornet/views/callGraphModel'; + +type Point = [number, number]; +type Geometry = { positions: Map; routes: Map; roles: Map }; +const { layoutGraph, edgeKey, W, H } = require(path.resolve('assets/callGraph/layout.js')) as { + layoutGraph: (graph: GraphSnapshot) => Geometry; edgeKey: (edge: { from: string; to: string }) => string; W: number; H: number; +}; +function graph(pairs: string[][], root = pairs[0][0]): GraphSnapshot { + const side = { loaded: true, open: true, loading: false, count: 1, action: 'collapse' as const }; + return { root, generation: 1, nodes: [...new Set(pairs.flat())].map(id => ({ id, name: id, uri: 'file:///test.cpp', line: 1, detail: '', layer: 0, incoming: side, outgoing: side })), + edges: pairs.map(([from, to]) => ({ from, to })) }; +} +function assertGeometry(snapshot: GraphSnapshot, result: Geometry) { + for (const [id, a] of result.positions) for (const [other, b] of result.positions) { + if (id !== other) assert.ok(a.x + W <= b.x || b.x + W <= a.x || a.y + H <= b.y || b.y + H <= a.y, `${id} overlaps ${other}`); + } + for (const edge of snapshot.edges) { + const route = result.routes.get(edgeKey(edge))!, a = result.positions.get(edge.from)!, b = result.positions.get(edge.to)!; + if (!route.recursive) assert.ok(a.x < b.x, `${edge.from} must be left of ${edge.to}`); + assert.ok(route.points[0][0] >= a.x + W, 'calls always leave the right side'); + assert.ok(route.points.at(-1)![0] <= b.x, 'calls always enter the left side'); + assert.equal(route.points[0][1], a.y + H / 2, 'source port stays at the vertical center'); + assert.equal(route.points.at(-1)![1], b.y + H / 2, 'arrow tip stays at the vertical center'); + for (let i = 1; i < route.points.length; i++) { + const [x, y] = route.points[i - 1], [xx, yy] = route.points[i]; + assert.ok(x === xx || y === yy, 'routes are orthogonal'); + for (const [id, p] of result.positions) { + const crosses = x === xx + ? x > p.x && x < p.x + W && Math.max(y, yy) > p.y && Math.min(y, yy) < p.y + H + : y > p.y && y < p.y + H && Math.max(x, xx) > p.x && Math.min(x, xx) < p.x + W; + assert.equal(crosses, false, `${edge.from} -> ${edge.to} crosses ${id}`); + } + } + } +} +test('expanded shared callers are ranked by direction, not stale discovery layers', () => { + const snapshot = graph([['TEST_F', 'Execute'], ['main', 'Execute'], ['Execute', 'ExecuteOne'], ['ExecuteOne', 'Move'], + ['ExecuteOne', 'TurnLeft'], ['ExecuteOne', 'TurnRight'], ['Move', 'IsInsideArea'], ['main', 'Init'], ['TEST', 'Init'], + ['Init', 'IsInsideArea'], ['Init', 'IsDirectionValid'], ['Init', 'IsBoundaryModeValid']], 'IsInsideArea'); + const result = layoutGraph(snapshot); + assertGeometry(snapshot, result); + assert.equal(result.positions.get('IsInsideArea')!.rank, 0); + assert.equal(result.roles.get('main'), 'caller'); + assert.equal(result.roles.get('TurnLeft'), 'related'); +}); +test('shortcut calls reserve lanes through intermediate columns without crossing nodes', () => { + const snapshot = graph([['A', 'B'], ['B', 'C'], ['C', 'D'], ['A', 'D'], ['A', 'C'], ['B', 'D'], ['E', 'C']]); + assertGeometry(snapshot, layoutGraph(snapshot)); +}); +test('recursive groups and self calls route outside boxes with left-side arrowheads', () => { + const snapshot = graph([['caller', 'A'], ['A', 'B'], ['B', 'C'], ['C', 'A'], ['B', 'B'], ['C', 'leaf']]); + const result = layoutGraph(snapshot); + assertGeometry(snapshot, result); + assert.equal([...result.routes.values()].filter(route => route.recursive).length, 4); +}); +test('layout preserves every edge and remains bounded for branching call chains', () => { + const pairs = Array.from({ length: 100 }, (_, index) => [`f${Math.floor(index / 3)}`, `f${index + 1}`]); + pairs.push(['f0', 'f99'], ['f2', 'f88']); + const snapshot = graph(pairs), result = layoutGraph(snapshot); + assertGeometry(snapshot, result); + assert.equal(result.routes.size, pairs.length); +}); +test('dense graphs bound intermediate slots and route overflow outside the nodes', () => { + const pairs = Array.from({ length: 45 }, (_, from) => Array.from({ length: 44 - from }, (_, offset) => [`f${from}`, `f${from + offset + 1}`])).flat(); + const snapshot = graph(pairs), result = layoutGraph(snapshot); + assertGeometry(snapshot, result); + assert.equal(result.routes.size, pairs.length); + assert.ok([...result.routes.values()].reduce((sum, route) => sum + route.points.length, 0) < 15000); +}); + +test('D stays between its caller chain and two aligned callee chains', () => { + const snapshot = graph([['main', 'A'], ['A', 'B'], ['B', 'C'], ['C', 'D'], + ['D', 'E'], ['E', 'F'], ['F', 'G'], ['D', 'I'], ['I', 'J']], 'D'); + const result = layoutGraph(snapshot), p = (id: string) => result.positions.get(id)!; + assertGeometry(snapshot, result); + assert.deepEqual(['main', 'A', 'B', 'C', 'D', 'E', 'F', 'G'].map(id => p(id).rank), [-4, -3, -2, -1, 0, 1, 2, 3]); + assert.equal(p('I').rank, 1); + assert.equal(p('J').rank, 2); + assert.ok(Math.abs(p('E').y - p('F').y) < 1 && Math.abs(p('F').y - p('G').y) < 1, 'E/F/G align across columns'); + assert.ok(Math.abs(p('I').y - p('J').y) < 1, 'I/J align across columns'); + assert.ok(Math.abs(p('E').y - p('I').y) >= H + 40, 'separate branches have clear space'); +}); + +test('adding a deep branch moves existing boxes to make room and reroutes every edge', () => { + const pairs = [['D', 'E'], ['E', 'F'], ['D', 'I'], ['I', 'J']]; + const before = layoutGraph(graph(pairs, 'D')); + const expanded = graph([...pairs, ['E', 'K'], ['E', 'L'], ['K', 'M'], ['L', 'N']], 'D'); + const after = layoutGraph(expanded); + assertGeometry(expanded, after); + assert.ok(['E', 'F', 'I', 'J'].some(id => Math.abs(before.positions.get(id)!.y - after.positions.get(id)!.y) > 10), + 'existing boxes must reflow when a branch grows'); +}); + +test('whole descendant subtrees occupy separate vertical bands after expansion', () => { + const pairs = [['C', 'D'], ['D', 'E'], ['E', 'F'], ['F', 'G'], ['D', 'I'], ['I', 'J'], + ['E', 'K'], ['K', 'L'], ['K', 'M'], ['M', 'N']]; + const snapshot = graph(pairs, 'D'), result = layoutGraph(snapshot); + assertGeometry(snapshot, result); + const upper = ['E', 'F', 'G', 'K', 'L', 'M', 'N'].map(id => result.positions.get(id)!); + const lower = ['I', 'J'].map(id => result.positions.get(id)!); + assert.ok(Math.max(...upper.map(p => p.y + H)) + 40 <= Math.min(...lower.map(p => p.y)), + 'space is reserved for all descendants of E before placing the I/J branch'); +}); + +test('fan-out and fan-in use aligned shared spines and uninterrupted chains stay horizontal', () => { + const snapshot = graph([['caller', 'root'], ['root', 'A'], ['root', 'B'], ['root', 'C']], 'root'); + const result = layoutGraph(snapshot); + const spines = snapshot.edges.filter(edge => edge.from === 'root').map(edge => result.routes.get(edgeKey(edge))!.points[1][0]); + assert.equal(new Set(spines).size, 1); + const incoming = graph([['A', 'root'], ['B', 'root'], ['C', 'root']], 'root'); + const left = layoutGraph(incoming); + assert.equal(new Set(incoming.edges.map(edge => left.routes.get(edgeKey(edge))!.points[1][0])).size, 1); + const shared = graph([['TEST_F', 'Execute'], ['main', 'Execute'], ['Execute', 'ExecuteOne'], ['ExecuteOne', 'Move'], + ['Move', 'Inside'], ['main', 'Init'], ['TEST', 'Init'], ['Init', 'Inside']], 'Inside'); + const aligned = layoutGraph(shared); + assertGeometry(shared, aligned); + assert.equal(aligned.positions.get('Execute')!.y, aligned.positions.get('ExecuteOne')!.y); + assert.equal(aligned.positions.get('ExecuteOne')!.y, aligned.positions.get('Move')!.y); +}); diff --git a/Extension/test/hornet/manifest.test.ts b/Extension/test/hornet/manifest.test.ts new file mode 100644 index 000000000..0172ad57c --- /dev/null +++ b/Extension/test/hornet/manifest.test.ts @@ -0,0 +1,37 @@ +import { test } from 'node:test'; +import * as assert from 'node:assert/strict'; +import * as fs from 'node:fs'; + +test('shipping manifest exposes only Hornet entrypoints and settings', () => { + const manifest = JSON.parse(fs.readFileSync('package.json', 'utf8')); + assert.equal(manifest.name, 'hornet-cpp'); + assert.equal(manifest.main, './dist/hornet.js'); + assert.equal(manifest.extensionKind[0], 'workspace'); + assert.ok(manifest.contributes.viewsContainers.panel.some((panel: { id: string; title: string }) => panel.id === 'hornet-cpp-graph' && panel.title === 'Hornet Graph')); + assert.ok(manifest.contributes.views['hornet-cpp-graph'].some((view: { id: string; type: string }) => view.id === 'hornet-cpp.graphView' && view.type === 'webview')); + for (const containers of Object.values(manifest.contributes.viewsContainers)) { + for (const container of containers as { id: string }[]) { assert.match(container.id, /^[a-zA-Z0-9_-]+$/); } + } + const graphCommand = manifest.contributes.commands.find((command: { command: string }) => command.command === 'hornet-cpp.showCallGraph'); + assert.equal(graphCommand.title, 'Hornet Show Graph'); + assert.equal(graphCommand.shortTitle ?? graphCommand.title, 'Hornet Show Graph'); + assert.ok(!manifest.contributes.debuggers); + assert.ok(!manifest.runtimeDependencies); + for (const command of manifest.contributes.commands) { assert.ok(command.command.startsWith('hornet-cpp.')); } + for (const token of manifest.contributes.semanticTokenTypes) { assert.ok(typeof token.description === 'string' && token.description.length > 0); } + for (const setting of Object.keys(manifest.contributes.configuration.properties)) { assert.ok(setting.startsWith('hornet-cpp.')); } + const dependencyNames = Object.keys(manifest.dependencies).join(' '); + assert.doesNotMatch(dependencyNames, /telemetry|tas-client|cpptools|experiment/i); +}); + +test('every declared command is implemented and the bundle has no legacy imports', () => { + const manifest = JSON.parse(fs.readFileSync('package.json', 'utf8')); + const source = fs.readFileSync('src/hornet/extension.ts', 'utf8'); + for (const command of manifest.contributes.commands) { + assert.ok(source.includes(`register('${command.command.replace('hornet-cpp.', '')}'`), command.command); + } + if (fs.existsSync('dist/hornet.meta.json')) { + const inputs = Object.keys(JSON.parse(fs.readFileSync('dist/hornet.meta.json', 'utf8')).inputs); + assert.ok(inputs.filter(file => file.startsWith('src/')).every(file => file.startsWith('src/hornet/'))); + } +}); diff --git a/Extension/test/hornet/marsRover.cjs b/Extension/test/hornet/marsRover.cjs new file mode 100644 index 000000000..301c308b3 --- /dev/null +++ b/Extension/test/hornet/marsRover.cjs @@ -0,0 +1,60 @@ +// Optional regression using a local copy of the user's sample project. Never writes to the source project. +const fs = require('node:fs'); +const os = require('node:os'); +const path = require('node:path'); +const { pathToFileURL } = require('node:url'); +const { ProcessManager } = require('../../out/hornet/src/hornet/core/processManager'); +const loader = require('node:module'), original = loader._load; +const mock = new Proxy({ workspace: { isTrusted: true, getConfiguration: () => ({ get: (_key, fallback) => fallback }) }, window: { showErrorMessage() {} } }, { get: (value, key) => value[key] ?? class {} }); +loader._load = (id, ...args) => id === 'vscode' ? mock : original(id, ...args); +const { CompilerEngine } = require('../../out/hornet/src/hornet/engines/compilerEngine'); +loader._load = original; +(async () => { + const project = process.env.HORNET_MARS_PROJECT; + if (!project) throw new Error('Set HORNET_MARS_PROJECT to the sample project directory'); + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'hornet-mars-')); + const processes = new ProcessManager(); + let engine; + try { + for (const dir of ['include', 'src', 'app']) fs.cpSync(path.join(project, dir), path.join(root, dir), { recursive: true }); + const file = path.join(root, 'src', 'mars_rover.c'), uri = pathToFileURL(file).toString(); + fs.mkdirSync(path.join(root, 'db')); + fs.writeFileSync(path.join(root, 'db', 'compile_commands.json'), '[]'); + const diagnostics = []; + engine = new CompilerEngine(processes, { root: { name: 'mars', uri: { fsPath: root, toString: () => pathToFileURL(root).toString() } }, + databaseDirectory: path.join(root, 'db'), log: line => { if (process.env.HORNET_VERBOSE) console.log(line); }, diagnostics: value => diagnostics.push(...value.diagnostics), changed() {}, refresh() {}, canApplyEdit: () => false }); + await engine.initialize(); + const text = fs.readFileSync(file, 'utf8'); + await engine.notify('textDocument/didOpen', { textDocument: { uri, languageId: 'c', version: 1, text } }); + const line = text.split('\n').findIndex(line => line.includes('static MarsRoverStatus MarsRover_Move')); + const character = text.split('\n')[line].indexOf('MarsRover_Move') + 1; + const items = await engine.request('textDocument/prepareCallHierarchy', { textDocument: { uri }, position: { line, character } }); + const incoming = await engine.request('callHierarchy/incomingCalls', { item: items[0] }); + const outgoing = await engine.request('callHierarchy/outgoingCalls', { item: items[0] }); + if (process.env.HORNET_VERBOSE) console.log('RAW ITEMS', JSON.stringify({ item: items[0], outgoing })); + if (process.env.HORNET_VERBOSE) { + const mainFile = path.join(root, 'app', 'main.c'); + await engine.notify('textDocument/didOpen', { textDocument: { uri: pathToFileURL(mainFile).toString(), languageId: 'c', version: 1, text: fs.readFileSync(mainFile, 'utf8') } }); + console.log('MAIN SYMBOLS', await engine.request('textDocument/documentSymbol', { textDocument: { uri: pathToFileURL(mainFile).toString() } })); + } + console.log(JSON.stringify({ incoming: incoming.map(call => call.from.name), outgoing: outgoing.map(call => call.to.name), errors: diagnostics.filter(d => d.severity === 1).map(d => d.message) }, null, 2)); + if (process.env.HORNET_EXPECT_FIXED) { + const assert = require('node:assert/strict'); + assert.deepEqual(incoming.map(call => call.from.name), ['MarsRover_ExecuteOne']); + assert.deepEqual(outgoing.map(call => call.to.name).sort(), ['MarsRover_GetForwardDelta', 'MarsRover_IsInsideArea', 'MarsRover_WrapTarget', 'MarsSensor_HasObstacle'].sort()); + const { CallGraphModel } = require('../../out/hornet/src/hornet/views/callGraphModel'); + const graph = new CallGraphModel((method, params) => engine.request(method, params), () => {}); + graph.reset(items[0]); + await graph.expandChains(); await graph.probeVisible(); + const snapshot = graph.snapshot(); + const names = new Map(snapshot.nodes.map(node => [node.id, node.name])); + const edges = snapshot.edges.map(edge => `${names.get(edge.from)} -> ${names.get(edge.to)}`); + console.log(JSON.stringify({ chains: edges, controls: snapshot.nodes.map(node => ({ name: node.name, left: node.incoming.action, right: node.outgoing.action })) }, null, 2)); + assert.ok(edges.includes('MarsRover_Execute -> MarsRover_ExecuteOne')); + assert.ok(edges.includes('MarsRover_ExecuteOne -> MarsRover_Move')); + assert.ok(edges.includes('main -> MarsRover_Execute')); + assert.equal(snapshot.nodes.find(node => node.name === 'MarsRover_GetForwardDelta').incoming.action, 'none'); + if (process.env.HORNET_GRAPH_SNAPSHOT) fs.writeFileSync(process.env.HORNET_GRAPH_SNAPSHOT, JSON.stringify(snapshot)); + } + } finally { await engine?.shutdown(); await processes.dispose(); fs.rmSync(root, { recursive: true, force: true }); } +})().catch(error => { console.error(error); process.exitCode = 1; }); diff --git a/Extension/test/hornet/panel.capture.cjs b/Extension/test/hornet/panel.capture.cjs new file mode 100644 index 000000000..6fe6009c1 --- /dev/null +++ b/Extension/test/hornet/panel.capture.cjs @@ -0,0 +1,51 @@ +// Optional capture/assertions for an isolated VS Code launched with --remote-debugging-port=9337. +const assert = require('node:assert/strict'); +const fs = require('node:fs/promises'); +const path = require('node:path'); +const { chromium } = require(process.env.HORNET_PLAYWRIGHT_MODULE || 'playwright-core'); +const root = path.resolve(process.argv[2]); +(async () => { + const deadline = Date.now() + 45000; + let browser; + while (!browser) { + try { browser = await chromium.connectOverCDP('http://127.0.0.1:9337'); } + catch { if (Date.now() > deadline) throw new Error('VS Code debugging endpoint unavailable'); await new Promise(resolve => setTimeout(resolve, 200)); } + } + const statuses = new Set(); + while (!await fs.access(path.join(root, 'panel-ready.json')).then(() => true, () => false)) { + if (Date.now() > deadline) throw new Error('VS Code did not reach the graph capture step'); + const workbench = browser.contexts().flatMap(context => context.pages()).find(page => page.url().includes('workbench')); + if (workbench) for (const text of await workbench.locator('.statusbar-item').filter({ hasText: 'Hornet' }).allInnerTexts()) statuses.add(text); + await new Promise(resolve => setTimeout(resolve, 200)); + } + try { + const page = browser.contexts().flatMap(context => context.pages()).find(page => page.url().includes('workbench')); + assert.ok(page, 'VS Code workbench is available'); + const panel = page.locator('.part.panel'); + await page.screenshot({ path: path.join(root, '../vscode-panel-before.png') }); + await panel.waitFor({ state: 'visible', timeout: 10000 }); + assert.ok(await panel.isVisible()); + assert.match(await panel.innerText(), /Hornet Graph/i); + // Webview rendering and interactions are covered by callGraph.browser.cjs. + // This capture checks the actual workbench placement and supports visual inspection. + const bounds = await panel.boundingBox(); + const editor = await page.locator('.part.editor').boundingBox(); + assert.ok(bounds.y >= editor.y + editor.height - 2, 'graph panel is below the source editor'); + await page.screenshot({ path: path.join(root, '../vscode-bottom-panel.png') }); + const mode = page.locator('.statusbar-item').filter({ hasText: /Hornet: (Hybrid|Compiler)/ }); + assert.equal(await mode.count(), 1, 'mode has its own persistent status item'); + assert.equal(await page.locator('.statusbar-item').filter({ hasText: 'Hornet: Index ready' }).count(), 1); + assert.ok([...statuses].some(text => /Discovering|Starting index|Parsing source|Finalizing|Indexing/.test(text)), 'intermediate indexing stages are visible'); + await fs.writeFile(path.join(root, '../index-status-history.json'), JSON.stringify([...statuses], null, 2)); + await mode.click(); + const picker = page.locator('.quick-input-widget'); + await picker.waitFor({ state: 'visible' }); + for (const name of ['Compiler', 'Hybrid', 'Tag', 'Flyweight']) assert.ok((await picker.innerText()).includes(name)); + await page.screenshot({ path: path.join(root, '../vscode-mode-picker.png') }); + await page.keyboard.press('Escape'); + console.log('PASS: actual VS Code bottom panel, separate mode/index statuses, intermediate progress and mode picker.'); + } finally { + await fs.writeFile(path.join(root, 'panel-captured.json'), '{}'); + await browser.close(); + } +})().catch(error => { console.error(error); process.exitCode = 1; }); diff --git a/Extension/test/hornet/platforms.test.ts b/Extension/test/hornet/platforms.test.ts new file mode 100644 index 000000000..2bca40fbd --- /dev/null +++ b/Extension/test/hornet/platforms.test.ts @@ -0,0 +1,61 @@ +import { test } from 'node:test'; +import * as assert from 'node:assert/strict'; +import * as fs from 'node:fs'; +import * as path from 'node:path'; +import { resolveBuildConfiguration } from '../../src/hornet/tasks/taskConfiguration'; + +const release = require(path.resolve('release.hornet.js')) as { + targets: string[]; + plan(args: string[]): { targets: string[]; outputs: { target: string; file: string }[]; preRelease: boolean }; +}; + +test('build tasks retain Windows, Linux and macOS overrides and inherited options', () => { + const configuration = { + command: 'clang++', args: ['common.cpp'], options: { cwd: '${workspaceFolder}' }, + windows: { command: 'clang-cl', args: ['/EHsc', 'windows.cpp'] }, + linux: { command: 'g++', options: { cwd: '/linux/build' } }, + osx: { command: '/usr/bin/clang++', args: ['mac.cpp'] } + }; + assert.equal(resolveBuildConfiguration(configuration, 'win32').command, 'clang-cl'); + assert.deepEqual(resolveBuildConfiguration(configuration, 'win32').args, ['/EHsc', 'windows.cpp']); + assert.equal(resolveBuildConfiguration(configuration, 'win32').options?.cwd, '${workspaceFolder}'); + assert.equal(resolveBuildConfiguration(configuration, 'linux').options?.cwd, '/linux/build'); + assert.equal(resolveBuildConfiguration(configuration, 'darwin').command, '/usr/bin/clang++'); + assert.deepEqual(resolveBuildConfiguration(configuration, 'darwin').args, ['mac.cpp']); + assert.equal(configuration.command, 'clang++'); + assert.equal(resolveBuildConfiguration(configuration, 'freebsd').command, 'clang++'); +}); + +test('all desktop/server VSIX targets have package scripts and unique outputs', () => { + const manifest = JSON.parse(fs.readFileSync('package.json', 'utf8')); + assert.deepEqual(release.targets, ['win32-x64', 'win32-arm64', 'linux-x64', 'linux-arm64', 'linux-armhf', 'darwin-x64', 'darwin-arm64', 'alpine-x64', 'alpine-arm64']); + for (const target of release.targets) { assert.ok(manifest.scripts[`package:${target}`]); } + const plan = release.plan(['package', '--all']); + assert.equal(new Set(plan.outputs.map(output => output.file)).size, 10); + assert.ok(plan.targets.includes('universal')); + assert.ok(!manifest.os && !manifest.cpu, 'Do not restrict extension installation to the build host'); + assert.throws(() => release.plan(['package', '--target', '../../elsewhere']), /Unsupported target/); + assert.ok(release.plan(['package', '--pre-release']).outputs[0].file.endsWith('-pre-release.vsix')); +}); + +test('public publishing requires explicit VSIX files and supports no-upload dry runs', () => { + const manifest = JSON.parse(fs.readFileSync('package.json', 'utf8')); + assert.ok(manifest.scripts['publish:marketplace']); + assert.ok(manifest.scripts['publish:openvsx']); + assert.throws(() => release.plan(['marketplace']), /already reviewed package/); + assert.doesNotThrow(() => release.plan(['marketplace', '--vsix', 'artifact.vsix', '--dry-run'])); + assert.doesNotThrow(() => release.plan(['openvsx', '--vsix', 'artifact.vsix', '--dry-run'])); + assert.doesNotMatch(JSON.stringify(manifest.scripts), /azure-public|MicroBuild|AAD_TOKEN|install-and-copy-binaries/); +}); + +test('task schemas and portable language contributions remain in the manifest', () => { + const manifest = JSON.parse(fs.readFileSync('package.json', 'utf8')); + for (const type of ['cppbuild', 'hornet-cpp.build']) { + const task = manifest.contributes.taskDefinitions.find((task: { type: string }) => task.type === type); + for (const platform of ['windows', 'linux', 'osx']) { assert.ok(task.properties[platform]); } + } + assert.ok(manifest.contributes.languages[0].filenames.includes('vector')); + assert.ok(manifest.contributes.languages[0].extensions.includes('.cppm')); + assert.ok(manifest.contributes.problemMatchers.some((matcher: { name: string }) => matcher.name === 'gcc')); + assert.doesNotMatch(JSON.stringify(manifest.contributes), /%c_cpp\./); +}); diff --git a/Extension/test/hornet/startup.test.ts b/Extension/test/hornet/startup.test.ts new file mode 100644 index 000000000..365d907c9 --- /dev/null +++ b/Extension/test/hornet/startup.test.ts @@ -0,0 +1,109 @@ +import { test } from 'node:test'; +import * as assert from 'node:assert/strict'; +import * as fs from 'node:fs/promises'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { BackendNotFoundError, BinaryManager, clangdCandidates, clangdInstallRoots } from '../../src/hornet/core/binaryManager'; +import { availableModes, resolveMode, serviceStatus } from '../../src/hornet/core/serviceStatus'; +import { ParseMode } from '../../src/hornet/engines/languageEngine'; +import { backgroundIndexStatus } from '../../src/hornet/core/indexProgress'; + +test('Windows discovery handles quoted PATH entries and LLVM outside PATH', () => { + const candidates = clangdCandidates('clangd', 'win32', { + Path: '"D:\\Tools With Spaces\\bin";;.;relative', ProgramFiles: 'C:\\Program Files', USERPROFILE: 'C:\\Users\\tester' + }); + assert.equal(candidates[0], 'D:\\Tools With Spaces\\bin\\clangd.exe'); + assert.ok(candidates.includes('C:\\Program Files\\LLVM\\bin\\clangd.exe')); + assert.ok(candidates.includes('C:\\Users\\tester\\scoop\\apps\\llvm\\current\\bin\\clangd.exe')); + assert.ok(candidates.every(candidate => path.win32.isAbsolute(candidate))); +}); + +test('macOS and Linux discovery searches only paths on the workspace host', () => { + const mac = clangdCandidates('clangd', 'darwin', { PATH: '/custom/bin', ProgramFiles: 'C:\\LLVM' }); + assert.equal(mac[0], '/custom/bin/clangd'); + assert.ok(mac.includes('/opt/homebrew/opt/llvm/bin/clangd')); + assert.ok(mac.includes('/usr/local/opt/llvm/bin/clangd')); + assert.ok(!mac.some(candidate => candidate.includes('C:'))); + assert.deepEqual(clangdCandidates('clangd', 'linux', {}), ['/usr/bin/clangd', '/usr/local/bin/clangd']); +}); + +test('explicit executable paths and names are not silently replaced by another installation', () => { + assert.deepEqual(clangdCandidates('D:\\Custom\\clangd.exe', 'win32', { ProgramFiles: 'C:\\Program Files' }), ['D:\\Custom\\clangd.exe']); + assert.deepEqual(clangdCandidates('clangd-custom', 'linux', { PATH: '/custom/bin' }), ['/custom/bin/clangd-custom']); + assert.throws(() => clangdCandidates('./clangd', 'linux', {}), /absolute/); +}); + +test('resolver reports missing files and directories as actionable setup errors', async () => { + const directory = await fs.mkdtemp(path.join(os.tmpdir(), 'hornet-startup-')); + try { + await assert.rejects(new BinaryManager().resolve(path.join(directory, 'missing-clangd')), BackendNotFoundError); + await assert.rejects(new BinaryManager().resolve(directory), BackendNotFoundError); + assert.equal(await new BinaryManager().resolve(process.execPath), await fs.realpath(process.execPath)); + } finally { await fs.rmdir(directory); } +}); + +test('only implemented modes are switchable and unsupported saved modes have an explicit session fallback', () => { + assert.deepEqual(availableModes, [ParseMode.Compiler, ParseMode.Hybrid]); + for (const mode of [ParseMode.Tag, ParseMode.Flyweight]) { + assert.equal(resolveMode(mode).mode, ParseMode.Compiler); + assert.match(resolveMode(mode).notice!, /for this session/); + } + assert.deepEqual(resolveMode('hybrid'), { mode: ParseMode.Hybrid }); +}); + +test('index progress uses clangd counts and displays stages when no percentage is known', () => { + const progress = backgroundIndexStatus({ message: '7/20' }); + assert.equal(progress.percentage, 35); + assert.equal(progress.completed, 7); + assert.equal(progress.total, 20); + assert.match(serviceStatus('ready', ParseMode.Compiler, progress).text, /35% 7\/20/); + const unknown = backgroundIndexStatus({ message: 'Loading cached index' }); + assert.equal(unknown.percentage, undefined, 'never invent a percentage'); + assert.match(serviceStatus('starting', ParseMode.Hybrid, { state: 'building', phase: 'discovering', message: 'Scanning' }).text, /Discovering sources/); + assert.match(serviceStatus('ready', ParseMode.Hybrid, { state: 'building', phase: 'finalizing', message: 'Waiting', elapsedSeconds: 4 }).text, /Finalizing index.*4s/); + assert.equal(backgroundIndexStatus({ percentage: 56 }).percentage, 56); + assert.equal(backgroundIndexStatus({ message: '0/0' }).percentage, undefined); +}); + +test('failure status never says Starting and clicking it offers the correct recovery command', () => { + assert.doesNotMatch(serviceStatus('needsSetup').text, /Starting/); + assert.equal(serviceStatus('needsSetup').command, 'hornet-cpp.autoSetupClangd'); + assert.doesNotMatch(serviceStatus('stopped').text, /Starting/); + assert.equal(serviceStatus('stopped').command, 'hornet-cpp.restartLanguageServices'); + assert.match(serviceStatus('starting').text, /Starting/); + assert.match(serviceStatus('ready', ParseMode.Compiler).text, /Compiler/); + assert.match(serviceStatus('ready', ParseMode.Compiler, { state: 'building', message: '1/2', percentage: 50 }).text, /Indexing 50%/); + assert.equal(serviceStatus('ready', ParseMode.Compiler, { state: 'ready', message: 'Done' }).command, 'hornet-cpp.buildProjectIndex'); + assert.equal(serviceStatus('ready', ParseMode.Compiler, { state: 'failed', message: 'Failed' }).command, 'hornet-cpp.buildProjectIndex'); +}); + +test('editor installation discovery uses workspace-host storage including remote servers', () => { + const windows = clangdInstallRoots('win32', { APPDATA: 'C:\\Users\\tester\\AppData\\Roaming' }, 'D:\\CodeData\\User\\globalStorage\\hornet.hornet-cpp'); + assert.ok(windows.includes('D:\\CodeData\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install')); + assert.ok(windows.includes('C:\\Users\\tester\\AppData\\Roaming\\Code\\User\\globalStorage\\llvm-vs-code-extensions.vscode-clangd\\install')); + const remote = clangdInstallRoots('linux', { HOME: '/home/tester' }, '/data/code/User/globalStorage/hornet.hornet-cpp'); + assert.ok(remote.includes('/home/tester/.vscode-server/data/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install')); + assert.ok(remote.includes('/data/code/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install')); +}); + +test('Windows discovers a downloaded clangd without PATH or a configured executable', { skip: process.platform !== 'win32' }, async () => { + const root = await fs.mkdtemp(path.join(os.tmpdir(), 'hornet-discover-')); + try { + const storage = path.join(root, 'globalStorage', 'hornet.hornet-cpp'); + const binary = path.join(root, 'globalStorage', 'llvm-vs-code-extensions.vscode-clangd', 'install', '22.1.0', 'clangd_22.1.0', 'bin', 'clangd.exe'); + await fs.mkdir(path.dirname(binary), { recursive: true }); + await fs.writeFile(binary, 'test executable'); + const manager = new BinaryManager({ env: {}, storagePath: storage }); + assert.equal(await manager.ensure('clangd', async () => { throw new Error('Should reuse the installed binary'); }), await fs.realpath(binary)); + } finally { await fs.rm(root, { recursive: true, force: true }); } +}); + +test('missing default clangd installs automatically and failed downloads can be retried', async () => { + const manager = new BinaryManager(); + manager.resolve = async configured => { throw new BackendNotFoundError(configured); }; + await assert.rejects(manager.ensure('clangd', async () => { throw new Error('network unavailable'); }), /network unavailable/); + assert.equal(await manager.ensure('clangd', async () => '/managed/bin/clangd'), '/managed/bin/clangd'); + let attempted = false; + await assert.rejects(manager.ensure('/explicit/missing/clangd', async () => { attempted = true; return ''; }), BackendNotFoundError); + assert.equal(attempted, false, 'explicit custom paths are not silently replaced'); +}); diff --git a/Extension/test/hornet/stm32.cjs b/Extension/test/hornet/stm32.cjs new file mode 100644 index 000000000..3d0188b7f --- /dev/null +++ b/Extension/test/hornet/stm32.cjs @@ -0,0 +1,52 @@ +// Read-only reproduction against a local STM32 workspace; generated data stays in artifacts. +const fs = require('node:fs/promises'); +const path = require('node:path'); +const assert = require('node:assert/strict'); +const { pathToFileURL } = require('node:url'); +const { ProcessManager } = require('../../out/hornet/src/hornet/core/processManager'); +const { discoverCompilationDatabase } = require('../../out/hornet/src/hornet/compdb/databaseDiscovery'); +const { parseCompilationDatabase } = require('../../out/hornet/src/hornet/compdb/compileCommandsParser'); +const loader = require('node:module'), original = loader._load; +const mock = new Proxy({ workspace: { isTrusted: true, getConfiguration: () => ({ get: (_key, fallback) => fallback }) }, + window: { showErrorMessage() {} } }, { get: (value, key) => value[key] ?? class {} }); +loader._load = (id, ...args) => id === 'vscode' ? mock : original(id, ...args); +const { CompilerEngine } = require('../../out/hornet/src/hornet/engines/compilerEngine'); +loader._load = original; +(async () => { + const project = process.env.HORNET_STM32_PROJECT; + assert.ok(project, 'Set HORNET_STM32_PROJECT'); + const artifact = path.resolve('artifacts/stm32'), database = path.join(artifact, 'db'); + await fs.mkdir(database, { recursive: true }); + const source = await discoverCompilationDatabase(project, { preset: 'Debug' }); + assert.ok(source?.replaceAll('\\', '/').endsWith('/build/Debug/compile_commands.json'), source); + const commands = parseCompilationDatabase(await fs.readFile(source, 'utf8'), source); + await fs.writeFile(path.join(database, 'compile_commands.json'), JSON.stringify(commands)); + const processes = new ProcessManager(), diagnostics = new Map(), logs = []; + const engine = new CompilerEngine(processes, { + root: { name: 'stm32', uri: { fsPath: project, toString: () => pathToFileURL(project).toString() } }, databaseDirectory: database, + log: line => logs.push(line), diagnostics: value => diagnostics.set(value.uri, value.diagnostics), changed() {}, refresh() {}, canApplyEdit: () => false + }); + try { + await engine.initialize(); + await engine.buildIndex(); + const file = path.join(project, 'core/src/main.c'), uri = pathToFileURL(file).toString(), text = await fs.readFile(file, 'utf8'); + await engine.notify('textDocument/didOpen', { textDocument: { uri, languageId: 'c', version: 1, text } }); + const line = text.split('\n').findIndex(line => /^void SystemClockConfig\(/.test(line)); + const items = await engine.request('textDocument/prepareCallHierarchy', { textDocument: { uri }, position: { line, character: 7 } }); + const incoming = items?.length ? await engine.request('callHierarchy/incomingCalls', { item: items[0] }) : []; + const outgoing = items?.length ? await engine.request('callHierarchy/outgoingCalls', { item: items[0] }) : []; + const errors = [...diagnostics.values()].flat().filter(value => value.severity === 1).map(value => value.message); + const result = { source, files: commands.length, symbols: items?.map(value => value.name), + incoming: incoming.map(value => value.from.name), outgoing: outgoing.map(value => value.to.name), errors }; + await fs.writeFile(path.join(artifact, 'result.json'), JSON.stringify(result, null, 2)); + console.log(JSON.stringify(result, null, 2)); + assert.ok(items?.length, 'selected function must parse'); + assert.ok(incoming.some(value => value.from.name === 'main')); + assert.ok(outgoing.some(value => value.to.name === 'HAL_RccOscConfig')); + assert.ok(outgoing.some(value => value.to.name === 'HAL_RccClockConfig')); + assert.ok(!errors.some(value => /stm32f1xx.h.*not found/.test(value))); + } finally { + await engine.shutdown(); await processes.dispose(); + await fs.writeFile(path.join(artifact, 'clangd.log'), logs.join('\n')); + } +})().catch(error => { console.error(error); process.exitCode = 1; }); diff --git a/Extension/test/hornet/stm32.vscode.cjs b/Extension/test/hornet/stm32.vscode.cjs new file mode 100644 index 000000000..927b2c481 --- /dev/null +++ b/Extension/test/hornet/stm32.vscode.cjs @@ -0,0 +1,39 @@ +// Optional native check: writes only Hornet's managed .vscode database in the selected project. +const vscode = require('vscode'); +const fs = require('node:fs/promises'); +const path = require('node:path'); +const assert = require('node:assert/strict'); +exports.run = async () => { + const resultPath = process.env.HORNET_STM32_RESULT; + assert.ok(resultPath); + const root = vscode.workspace.workspaceFolders[0]; + try { + const extension = vscode.extensions.getExtension('hornet.hornet-cpp'); + await extension.activate(); + const api = extension.exports.getApi(1); + await api.refreshIndex(root.uri.toString()); + const managed = path.join(root.uri.fsPath, '.vscode/hornet/compile-db/compile_commands.json'); + const commands = JSON.parse(await fs.readFile(managed, 'utf8')); + assert.ok(commands.length > 0); + const uri = vscode.Uri.joinPath(root.uri, 'core/src/main.c'); + const command = await api.getCompileCommand(uri.fsPath); + assert.ok(JSON.stringify(command).includes('-DSTM32F103xE')); + const editor = await vscode.window.showTextDocument(uri); + const lines = editor.document.getText().split('\n'); + const line = lines.findIndex(line => /^void SystemClockConfig\(/.test(line)); + const position = new vscode.Position(line, 7); + editor.selection = new vscode.Selection(position, position); + const items = await vscode.commands.executeCommand('vscode.prepareCallHierarchy', uri, position); + assert.ok(items?.length, 'SystemClockConfig parses in the extension host'); + const incoming = await vscode.commands.executeCommand('vscode.provideIncomingCalls', items[0]); + const outgoing = await vscode.commands.executeCommand('vscode.provideOutgoingCalls', items[0]); + assert.ok(incoming.some(call => call.from.name === 'main')); + assert.ok(outgoing.some(call => call.to.name === 'HAL_RccOscConfig')); + assert.ok(outgoing.some(call => call.to.name === 'HAL_RccClockConfig')); + await vscode.commands.executeCommand('hornet-cpp.showCallGraph'); + const errors = vscode.languages.getDiagnostics(uri).filter(value => value.severity === vscode.DiagnosticSeverity.Error).map(value => value.message); + assert.deepEqual(errors, []); + await fs.writeFile(resultPath, JSON.stringify({ passed: true, version: extension.packageJSON.version, managed, + commands: commands.length, incoming: incoming.map(call => call.from.name), outgoing: outgoing.map(call => call.to.name), errors }, null, 2)); + } catch (error) { await fs.writeFile(resultPath, JSON.stringify({ passed: false, error: error.stack }, null, 2)); throw error; } +}; diff --git a/Extension/tsconfig.hornet.json b/Extension/tsconfig.hornet.json new file mode 100644 index 000000000..209b2ef71 --- /dev/null +++ b/Extension/tsconfig.hornet.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "commonjs", + "moduleResolution": "node", + "lib": ["ES2022"], + "strict": true, + "noUnusedLocals": true, + "esModuleInterop": true, + "skipLibCheck": true, + "outDir": "out/hornet", + "rootDir": ".", + "types": ["node", "vscode"] + }, + "include": ["src/hornet/**/*.ts", "test/hornet/**/*.ts"] +} diff --git a/Extension/verify.hornet.js b/Extension/verify.hornet.js new file mode 100644 index 000000000..6b10308c8 --- /dev/null +++ b/Extension/verify.hornet.js @@ -0,0 +1,51 @@ +const assert = require('node:assert/strict'); +const path = require('node:path'); +const yauzl = require('yauzl'); +const expected = require('./package.json'); + +async function verify(file) { + const contents = await new Promise((resolve, reject) => { + const entries = new Map(); + yauzl.open(file, { lazyEntries: true }, (error, zip) => { + if (error) { reject(error); return; } + zip.on('error', reject); + zip.on('end', () => resolve(entries)); + zip.on('entry', entry => { + if (!['extension/package.json', 'extension/dist/hornet.js', 'extension/assets/callGraph/graph.js', 'extension/assets/callGraph/layout.js'].includes(entry.fileName)) { zip.readEntry(); return; } + zip.openReadStream(entry, (err, stream) => { + if (err) { zip.close(); reject(err); return; } + const chunks = []; + stream.on('error', reason => { zip.close(); reject(reason); }); + stream.on('data', chunk => chunks.push(chunk)); + stream.on('end', () => { entries.set(entry.fileName, Buffer.concat(chunks).toString('utf8')); zip.readEntry(); }); + }); + }); + zip.readEntry(); + }); + }); + const manifest = JSON.parse(contents.get('extension/package.json')); + assert.equal(manifest.version, expected.version); + const graph = manifest.contributes.commands.find(command => command.command === 'hornet-cpp.showCallGraph'); + assert.equal(graph.title, 'Hornet Show Graph'); + assert.equal(graph.shortTitle ?? graph.title, 'Hornet Show Graph'); + assert.ok(manifest.contributes.commands.some(command => command.command === 'hornet-cpp.autoSetupClangd')); + assert.ok(manifest.contributes.commands.some(command => command.command === 'hornet-cpp.buildProjectIndex' && command.title === 'Hornet Build Index')); + assert.ok(manifest.activationEvents.includes('workspaceContains:**/*.{c,cc,cpp,cxx,h,hh,hpp,hxx,cu,cuh}')); + assert.ok(manifest.contributes.viewsContainers.panel.some(panel => panel.id === 'hornet-cpp-graph')); + assert.ok(manifest.contributes.views['hornet-cpp-graph'].some(view => view.id === 'hornet-cpp.graphView' && view.type === 'webview')); + const bundle = contents.get('extension/dist/hornet.js'); + assert.ok(bundle.includes('installClangd') && bundle.includes('clangdInstallRoots')); + assert.ok(!bundle.includes('Duplicate completions or diagnostics may appear.')); + assert.ok(contents.get('extension/assets/callGraph/graph.js').includes("state.action === 'none'")); + assert.ok(contents.get('extension/assets/callGraph/layout.js').includes('layoutGraph')); + assert.ok(bundle.includes('layout.js')); + assert.ok(bundle.includes('registerWebviewViewProvider')); + assert.ok(!bundle.includes('createWebviewPanel(')); + assert.ok(bundle.includes('expandChains') && bundle.includes('prepareCompilerConfiguration')); + assert.ok(bundle.includes('buildProjectIndex') && bundle.includes('Indexing') && bundle.includes('Index ready')); + console.log(`Verified ${path.basename(file)}: ${manifest.version}, Hornet Show Graph, automatic clangd setup, no coexistence popup, hidden empty branches.`); +} +if (require.main === module) { + Promise.all(process.argv.slice(2).map(verify)).catch(error => { console.error(error); process.exitCode = 1; }); +} +module.exports = { verify }; diff --git a/LanguageCCPP_color.png b/LanguageCCPP_color.png new file mode 100644 index 000000000..18773f3f7 Binary files /dev/null and b/LanguageCCPP_color.png differ diff --git a/README.md b/README.md index f45d123a2..bd20cbd79 100644 --- a/README.md +++ b/README.md @@ -1,82 +1,103 @@ -# C/C++ for Visual Studio Code +# Hornet C/C++ -#### [Repository](https://github.com/microsoft/vscode-cpptools)  |  [Issues](https://github.com/microsoft/vscode-cpptools/issues)  |  [Documentation](https://code.visualstudio.com/docs/languages/cpp)  |  [Code Samples](https://github.com/microsoft/vscode-cpptools/tree/main/Code%20Samples) +Hornet is an independent C/C++ language extension built around a shared language-engine interface and clangd. This 0.1.9 release implements the V1 scope of `request.md`: Compiler support, a Hybrid routing framework, call/type hierarchy views, automatic project indexing and compilation database management. -[![Badge](https://aka.ms/vsls-badge)](https://aka.ms/vsls) +Tag and Flyweight appear in the mode picker as not yet implemented; selecting either leaves the current service unchanged. A previously saved unavailable mode uses Compiler for the current session and reports this in the status tooltip. Hybrid currently uses clangd alone; its fallback index will be added in later phases. -The C/C++ extension adds language support for C/C++ to Visual Studio Code, including [editing (IntelliSense)](https://code.visualstudio.com/docs/cpp/cpp-ide) and [debugging](https://code.visualstudio.com/docs/cpp/cpp-debug) features. +## Get started -## Pre-requisites -C++ is a compiled language meaning your program's source code must be translated (compiled) before it can be run on your computer. VS Code is first and foremost an editor, and relies on command-line tools to do much of the development workflow. The C/C++ extension **does not include a C++ compiler or debugger**. You will need to install these tools or use those already installed on your computer. - * C++ compiler pre-installed - * C++ debugger pre-installed +1. Open a trusted C/C++ workspace. Hornet automatically searches PATH, common LLVM installations and the official clangd extension's managed installation. If missing, it downloads the official clangd 22.1.6 archive, verifies its SHA-256 checksum, and installs it in Hornet's storage on the workspace host. No path selection is required. Downloads support Windows x64, Linux x64 with glibc, and macOS x64/arm64; other hosts use a locally installed clangd. SSH, WSL and containers perform discovery and installation inside that environment. +2. Install the Hornet VSIX and open a trusted C/C++ workspace folder. +3. Hornet automatically creates `.vscode/hornet/compile-db/compile_commands.json`, which is the database read by the language service. It obtains build parameters from the selected CMake preset/build directory, including nested Debug/Release layouts, and preserves the include paths, macros and cross-compiler flags. Only one automatic configuration is used at a time. **Hornet C/C++: Import Compilation Database** supports additional explicit inputs. +4. Hornet automatically builds the project index when the folder opens, even before you open a source file. The index status shows discovery, parsing, completed/total counts and percentages when clangd supplies them, elapsed waiting time, then **Index ready**. Click a running index to see its detailed log. A separate **Hornet: Hybrid/Compiler** status item stays visible and opens the mode picker. +5. To build the index manually after startup, run **Hornet Build Index** from the command palette or a folder's Explorer context menu, or click **Hornet: Index ready**. The command refreshes compilation commands, rediscovers unconfigured sources, and waits for indexing to finish. **Sync Project Index** remains an alias. -
+Example settings: -Here is a list of compilers and architectures per platform officially supported by the extension. These are reflected by the available [IntelliSense modes](https://code.visualstudio.com/docs/cpp/configure-intellisense-crosscompilation#_intellisense-mode) from the extension's IntelliSense configuration. Note that support for other compilers may be limited. +```json +{ + "hornet-cpp.mode": "hybrid", + "hornet-cpp.clangd.path": "clangd", + "hornet-cpp.cpuUsage": "Medium", + "hornet-cpp.clangd.ignoreDiagnostics": "not_indexed", + "hornet-cpp.clangd.enableInlayHints": true, + "hornet-cpp.syntaxColor.enable": true +} +``` -Platform | Compilers | Architectures -:--- | :--- | :--- -Windows | MSVC, Clang, GCC | x64, x86, arm64, arm -Linux | Clang, GCC | x64, x86, arm64, arm -macOS | Clang, GCC | x64, x86, arm64 +Without a compile database, clangd can still provide basic browsing. Analysis may be incomplete. Hybrid suppresses rename, code actions and diagnostics for files without an explicit compile command. This also applies to headers whose commands clangd merely infers. Compiler mode allows these requests; diagnostic filtering remains configurable. -For more information about installing the required tools or setting up the extension, please follow the tutorials below. -
-
+For an unconfigured project, Hornet discovers first-party source files and `include`/`includes`/`inc` directories and writes separate inferred browsing commands. Opening a call graph parses the discovered files (up to 250) so callers in unopened files are included. These commands do not replace real build flags or mark the project as configured. Parse errors and missing build configuration are shown in the graph; macros and conditional compilation require the project's actual compilation database. -## Overview and tutorials -* [C/C++ extension overview](https://code.visualstudio.com/docs/languages/cpp) -* [Introductory Videos](https://code.visualstudio.com/docs/cpp/introvideos-cpp) +The semantic index is persisted as clangd `.idx` cache files beside the selected compilation database: `.vscode/hornet/compile-db/.cache/clangd/index/`, or under `compile-db/fallback/.cache/clangd/index/` for inferred commands. Subsequent startups reuse unchanged shards and index changed files. Automatic discovery is bounded to 1,000 first-party source files, 500 directories and six directory levels; larger projects should provide a compilation database. Indexing does not compile or link the application. -C/C++ extension tutorials per compiler and platform -* [Microsoft C++ compiler (MSVC) on Windows](https://code.visualstudio.com/docs/cpp/config-msvc) -* [GCC and Mingw-w64 on Windows](https://code.visualstudio.com/docs/cpp/config-mingw) -* [GCC on Windows Subsystem for Linux (WSL)](https://code.visualstudio.com/docs/cpp/config-wsl) -* [GCC on Linux](https://code.visualstudio.com/docs/cpp/config-linux) -* [Clang on macOS](https://code.visualstudio.com/docs/cpp/config-clang-mac) +## Features -## Quick links -* [Editing features (IntelliSense)](https://code.visualstudio.com/docs/cpp/cpp-ide) -* [IntelliSense configuration](https://code.visualstudio.com/docs/cpp/customize-default-settings-cpp) -* [Enhanced colorization](https://code.visualstudio.com/docs/cpp/colorization-cpp) -* [Debugging](https://code.visualstudio.com/docs/cpp/cpp-debug) -* [Debug configuration](https://code.visualstudio.com/docs/cpp/launch-json-reference) -* [Enable logging for IntelliSense or debugging](https://code.visualstudio.com/docs/cpp/enable-logging-cpp) +- Completion, hover, signatures, definition/declaration, references, rename and code actions. +- Semantic highlighting, inlay hints, outline, workspace symbols, folding and formatting. +- Native call/type hierarchy providers, an interactive function call diagram, and lazy **Call Graph** and **Type Hierarchy** sidebars. +- Database import, merge, validation, normalization, source tracking, file watching, export and CMake/Bear generation. +- Independent settings and servers for each workspace folder. +- Per-file/folder index synchronization and project refresh; graceful process cleanup and bounded crash recovery. -## Questions and feedback +Features are registered according to the installed clangd version's advertised capabilities. Use a recent clangd with LSP 3.17 hierarchy support. Other active C/C++ extensions can produce duplicate results; Hornet records their presence in the output log without showing a startup warning or modifying them. -**[FAQs](https://code.visualstudio.com/docs/cpp/faq-cpp)** -
-Check out the FAQs before filing a question. -
+Right-click a C/C++ function and choose **Hornet Show Graph**. The diagram opens in the bottom **Hornet Graph** panel tab alongside Terminal and Ports, leaving the editor layout intact. Switching panel tabs preserves the graph and viewport. The diagram initially shows only the selected function, its direct callers and its direct callees, including unopened source files. Controls stay scoped to the selected function: ancestors can expand only their caller chain, and descendants only their callee chain. Other callees of ancestors and other callers of descendants are never queried or drawn. The center has both sides; eligible function rectangles have **+/−** controls: **left** expands/collapses callers, **right** expands/collapses callees. Each plus opens one additional level in that direction; deeper levels remain closed until clicked. Reopening a collapsed branch restores its previously opened descendants. Collapsing hides that branch's descendants while preserving functions still reachable through other expanded branches. Results are cached until refresh; a plus appears only for hidden relationships, a minus only for a branch that can be collapsed, and no control appears for an empty or already-visible side. -**[Provide feedback](https://github.com/microsoft/vscode-cpptools/issues/new/choose)** -
-File questions, issues, or feature requests for the extension. -
+The layout ranks functions by actual call direction, groups related branches to reduce crossings, and reserves lanes around intervening nodes for calls that skip columns. Calls leave the caller's right side and enter the callee's left side; recursive groups use dashed outside loops. Caller/callee colors reflect their relationship to the selected root. Choose rounded or square elbow connectors. Related branches share aligned spines, uninterrupted chains stay horizontal, and fixed-size arrow tips meet the vertical center of the destination port. Expanding or collapsing a branch recomputes the whole layout, reserves space for whole subtrees and moves sibling branches to make room, aligns single-child chains, and fits the result into the canvas. Progress-only updates do not rearrange nodes. -**[Known issues](https://github.com/Microsoft/vscode-cpptools/issues)** -
-If someone has already filed an issue that encompasses your feedback, please leave a 👍 or 👎 reaction on the issue to upvote or downvote it to help us prioritize the issue. -
+Drag the background to pan, use the mouse wheel or toolbar to zoom, double-click a function to open its source, or select **设为中心** to start a new graph from it. A graph loads at most 250 functions; use a new center to explore further. Call information comes from clangd and depends on the project's compile commands and index coverage. **Show Type Hierarchy** continues to open the type sidebar. -**[Quick survey](https://www.research.net/r/VBVV6C6)** -
-Let us know what you think of the extension by taking the quick survey. +Imported databases are merged into `.vscode/hornet/compile-db/compile_commands.json`; `sources.json` records origins. Later imports override earlier entries for the same canonical file. Importing does not execute compiler command strings. CMake generation runs configure in `build/`; use a CMake generator that supports compile commands. Bear runs the explicitly entered JSON argument array without a shell. -## Contribution +Driver probing is disabled unless paths are explicitly allowed in the machine-level `hornet-cpp.clangd.queryDriver` setting. Hornet disables clangd configuration loading so a workspace `.clangd` file cannot bypass Hornet's managed settings. clangd's own index cache and background indexing remain under clangd's control; Hornet's exclude patterns apply to manual folder synchronization only. -Contributions are always welcome. Please see our [contributing guide](CONTRIBUTING.md) for more details. +## Build and test -## Microsoft Open Source Code of Conduct +From `Extension/`, with Node.js 20 or newer: -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact opencode@microsoft.com with any additional questions or comments. +```sh +npm ci +npm run compile +npm test +npm run package +``` -## Data Collection +To include the real clangd integration test, set `HORNET_TEST_CLANGD` to an absolute executable path before `npm test`. Open `Extension/` in VS Code and press F5 for interactive testing. The default test suite does not launch an Extension Host. -The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry via the same setting provided by Visual Studio Code: `"telemetry.enableTelemetry"`. Our privacy statement is located [here](https://go.microsoft.com/fwlink/?LinkID=824704). You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. +## Extension API -## Trademarks +```typescript +const extension = vscode.extensions.getExtension('hornet.hornet-cpp'); +if (!extension) throw new Error('Hornet C/C++ is not installed'); +const exported = await extension.activate(); +const api = exported.getApi(1); +await api.importCompilationDatabases( + ['/project/module-a/build/compile_commands.json'], + vscode.Uri.file('/project').toString() +); +const command = await api.getCompileCommand('/project/src/main.cpp'); +await api.refreshIndex(vscode.Uri.file('/project').toString()); +``` -This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies. \ No newline at end of file +The optional workspace URI avoids ambiguity in multi-root workspaces. The TypeScript contract is in `src/hornet/api/hornetCppApi.ts` in the source repository. + +## Release boundaries + +No native binaries, debugger, Microsoft private runtime, telemetry or experiments are shipped. Tag/Flyweight servers, heuristic database generation, global-storage indexes, cache rebuild/sharding, RTOS headers, inactive-code styling and million-file performance certification remain future work. The source repository's `Documentation/Hornet-Implementation.md` maps implemented behavior and remaining phases to the design. + +The development publisher is `hornet`; verify publisher ownership before marketplace publication. Local VSIX installation and public Marketplace, Open VSX and GitHub Release distribution are supported. + +## License + +MIT. This fork retains the upstream MIT copyright notices. Historical upstream source remains available in the repository but is excluded from the Hornet bundle and package. See `ThirdPartyNotices.txt` for bundled JavaScript dependencies. clangd is installed separately under its own license. + +## Platform builds and releases + +Windows, Linux, macOS and Alpine target packages are retained. Build all desktop/server targets with `npm run package:all`, or a single target with e.g. `npm run package:linux-x64`, `npm run package:darwin-arm64` or `npm run package:win32-x64`. Outputs are written to `Extension/artifacts/`. Stable and pre-release packages are supported. + +Public publishing entrypoints are `npm run publish:marketplace -- --vsix ` and `npm run publish:openvsx -- --vsix ` (credentials come from `VSCE_PAT` / `OVSX_PAT`). Add `--dry-run` to inspect the publish plan. The manual GitHub release workflow also supports draft releases. Only Microsoft internal feeds, signing and proprietary runtime acquisition are excluded. See `Documentation/Hornet-Releasing.md` in the repository for the full matrix and release instructions. + +Build tasks preserve `windows`, `linux` and `osx` overrides. Use task type `hornet-cpp.build`; existing `cppbuild` tasks are also supported. + +If automatic setup fails (for example, GitHub is unreachable), the status bar shows **Hornet: Retry clangd**. Clicking it retries discovery and download without opening a file picker. Downloads respect the VS Code HTTP proxy setting and HTTPS_PROXY/HTTP_PROXY. **Hornet C/C++: Configure clangd** remains available for optional manual selection. Explicit custom executable paths are respected. Open **Hornet C/C++: Open Logs** to see the extension version, location and backend startup details. diff --git a/request.md b/request.md new file mode 100644 index 000000000..687ddbd7f --- /dev/null +++ b/request.md @@ -0,0 +1,3688 @@ +# Hornet C/C++ 设计文档 + +> 文档状态:Draft +> 文档版本:0.1.0 +> 产品名称:Hornet C/C++ +> 扩展建议 ID:`hornet-cpp` +> 配置前缀:`hornet-cpp.*` +> 基础仓库:`codehubcloud/vscode-cpptools` +> 目标:基于 vscode-cpptools 前端能力,构建完全独立的 C/C++ VS Code 语言插件。 + +--- + +# 1. 项目背景 + +Hornet C/C++ 是面向大型 C/C++ 工程开发的 VS Code 语言支持插件。 + +插件提供: + +* 代码补全 +* 编译错误实时检查 +* 查找所有引用 +* 跳转定义 +* 调用关系图 +* 重命名 +* 类继承关系图 +* 语义高亮 +* 大纲 +* 符号搜索 +* 重构 +* 内联提示 +* 代码格式化 +* 宏定义导航 +* 工程索引 +* `compile_commands.json` 管理 +* 大型代码仓浏览 + +Hornet C/C++ 支持四种解析模式: + +1. Flyweight +2. Tag +3. Compiler +4. Hybrid + +四种模式采用统一 VS Code 前端,不让不同语言后端直接耦合 VS Code UI。 + +--- + +# 2. 项目目标 + +## 2.1 核心目标 + +Hornet C/C++ 应满足以下目标: + +### 独立产品 + +插件名称、扩展 ID、命令、配置项、日志、状态栏、语言服务、索引数据库全部使用 Hornet 自己的命名空间。 + +不得继续依赖: + +```text +ms-vscode.cpptools +C_Cpp.* +cpptools/* +cpptools-srv +Microsoft C/C++ proprietary runtime +``` + +最终形成: + +```text +Hornet C/C++ + │ + ├── Hornet VS Code Frontend + │ + ├── hornet-flyweight-lsp + │ + ├── hornet-db + │ + ├── clangd + │ + ├── universal-ctags + │ + └── cscope +``` + +--- + +## 2.2 开箱即用 + +用户安装插件后: + +```text +安装 Hornet C/C++ + ↓ +打开 C/C++ 工程 + ↓ +自动检测工程 + ↓ +自动选择解析模式 + ↓ +开始索引 + ↓ +提供代码导航 +``` + +没有 `compile_commands.json` 时仍然必须具备基础代码浏览能力。 + +--- + +## 2.3 精准模式 + +存在有效: + +```text +compile_commands.json +``` + +时可以通过 Compiler 模式获得: + +* 精准语义分析 +* 编译诊断 +* 精准跳转 +* 精准引用 +* Rename +* Refactor +* Inlay Hint +* Semantic Token +* Call Hierarchy +* Type Hierarchy + +--- + +## 2.4 大工程能力 + +插件需要考虑: + +```text +10 万文件 +50 万文件 +100 万文件 +100 万+ C/C++ 文件 +``` + +不能将所有功能设计成: + +```text +一次扫描 ++ +全部加载内存 +``` + +必须支持: + +* 增量解析 +* 增量索引 +* 持久化索引 +* Lazy Loading +* Lazy Expand +* 后台线程池 +* CPU 限流 +* 内存限制 +* 文件排除 +* 分目录索引 +* 索引重建 +* 单文件更新 + +--- + +# 3. 非目标 + +第一阶段 Hornet C/C++ 不实现: + +* 自研 C/C++ 编译器 +* 自研 Debug Adapter +* 替代 GCC/Clang +* 完整 C++ ABI +* 自研 Linker +* 自研 Build System + +第一阶段重点是: + +```text +Editor ++ +Language Service ++ +Code Index ++ +Navigation ++ +Code Intelligence +``` + +Debug 功能不从原 vscode-cpptools 直接继承。 + +后续如需要调试功能,可单独设计: + +```text +Hornet Debug Adapter +``` + +--- + +# 4. 原 vscode-cpptools 使用边界 + +Hornet 基于 vscode-cpptools 前端源码重构。 + +可以重点复用或改造的部分: + +```text +Extension/src/ + LanguageServer/ + Providers/ + Utility/ + common/ + settings/ + UI/ +``` + +重点参考: + +* Provider 生命周期 +* Workspace 管理 +* VS Code API 注册 +* Configuration 管理 +* Status Bar +* Semantic Token +* Call Hierarchy +* Inlay Hint +* Outline +* Workspace Symbol +* Rename Provider +* Folding Provider + +不将 Microsoft 官方 VSIX 中随包提供的私有语言服务器二进制作为 Hornet 后端。 + +Hornet 后端全部替换。 + +--- + +# 5. 总体架构 + +Hornet C/C++ 推荐采用五层架构。 + +```text +┌─────────────────────────────────────────────────────────┐ +│ VS Code │ +│ │ +│ Completion / Definition / References / Rename │ +│ CallHierarchy / TypeHierarchy / Hover / Symbol │ +│ SemanticTokens / InlayHint / Diagnostic / Folding │ +└───────────────────────────┬─────────────────────────────┘ + │ + ▼ +┌─────────────────────────────────────────────────────────┐ +│ Hornet VS Code Frontend │ +│ │ +│ Commands │ +│ StatusBar │ +│ Configuration │ +│ TreeView │ +│ Webview │ +│ Language Providers │ +└───────────────────────────┬─────────────────────────────┘ + │ + ▼ +┌─────────────────────────────────────────────────────────┐ +│ Capability Router │ +│ │ +│ definition() │ +│ references() │ +│ completion() │ +│ hover() │ +│ rename() │ +│ callHierarchy() │ +│ typeHierarchy() │ +│ documentSymbols() │ +│ workspaceSymbols() │ +└───────────────────────────┬─────────────────────────────┘ + │ + ┌─────────────┼───────────────┐ + │ │ │ + ▼ ▼ ▼ +┌────────────────┐ ┌────────────────┐ ┌────────────────┐ +│ Flyweight │ │ Tag │ │ Compiler │ +│ Engine │ │ Engine │ │ Engine │ +│ │ │ │ │ │ +│ Tree-sitter │ │ hornet-db │ │ clangd │ +│ LSP │ │ ctags │ │ LSP │ +│ │ │ cscope │ │ │ +└────────────────┘ └────────────────┘ └────────────────┘ + │ │ │ + └─────────────┼───────────────┘ + │ + ▼ + ┌─────────────────┐ + │ Hybrid Engine │ + │ │ + │ Compiler + Tag │ + └─────────────────┘ +``` + +--- + +# 6. 统一语言引擎接口 + +插件最重要的设计之一,是不能让 Provider 直接依赖: + +```text +clangd +ctags +cscope +Tree-sitter +``` + +必须增加统一接口。 + +建议: + +```typescript +export interface LanguageEngine { + readonly mode: ParseMode; + + initialize(): Promise; + + shutdown(): Promise; + + restart(): Promise; + + getCapabilities(): EngineCapabilities; + + completion( + document: vscode.TextDocument, + position: vscode.Position + ): Promise; + + definition( + document: vscode.TextDocument, + position: vscode.Position + ): Promise; + + references( + document: vscode.TextDocument, + position: vscode.Position + ): Promise; + + hover( + document: vscode.TextDocument, + position: vscode.Position + ): Promise; + + rename( + document: vscode.TextDocument, + position: vscode.Position, + newName: string + ): Promise; + + callHierarchy( + document: vscode.TextDocument, + position: vscode.Position + ): Promise; + + typeHierarchy( + document: vscode.TextDocument, + position: vscode.Position + ): Promise; +} +``` + +各后端实现: + +```text +FlyweightEngine +TagEngine +CompilerEngine +HybridEngine +``` + +--- + +# 7. Capability Router + +所有请求先进入: + +```text +CapabilityRouter +``` + +而不是 Provider 自己判断当前模式。 + +例如: + +```typescript +class CapabilityRouter { + async definition(request: DefinitionRequest) { + const engine = this.modeManager.getActiveEngine(); + + return engine.definition( + request.document, + request.position + ); + } +} +``` + +优点: + +```text +VS Code Provider + │ + ▼ +CapabilityRouter + │ + ├── Flyweight + ├── Tag + ├── Compiler + └── Hybrid +``` + +后续增加第五种解析器时不需要修改 VS Code Provider。 + +--- + +# 8. Mode Manager + +新增: + +```text +ModeManager +``` + +管理: + +```typescript +enum ParseMode { + Flyweight = "flyweight", + Tag = "tag", + Compiler = "compiler", + Hybrid = "hybrid" +} +``` + +职责: + +* 当前模式 +* 模式切换 +* 模式持久化 +* Backend 生命周期 +* 状态栏更新 +* Capability 更新 +* Mode fallback + +配置: + +```json +{ + "hornet-cpp.mode": "hybrid" +} +``` + +--- + +# 9. 状态栏模式切换 + +VS Code 底部增加: + +```text +$(symbol-namespace) Hornet: Hybrid +``` + +点击: + +```text +Hornet C/C++ Parsing Mode + +○ Flyweight +○ Tag +○ Compiler +● Hybrid +``` + +选择后: + +```text +停止旧 Engine + ↓ +保存 mode + ↓ +启动新 Engine + ↓ +更新 Provider Capability + ↓ +更新状态栏 +``` + +命令: + +```text +Hornet C/C++: 切换解析模式 +``` + +Command ID: + +```text +hornet-cpp.switchMode +``` + +--- + +# 10. Flyweight 模式 + +## 10.1 定位 + +Flyweight 是 Hornet 的轻量级自研代码索引引擎。 + +特点: + +```text +无需 compile_commands.json +无需编译器 +无需 ctags +无需 cscope +开箱即用 +``` + +底层: + +```text +Tree-sitter +``` + +使用 Tree-sitter 对 C/C++ 生成增量语法树。 + +--- + +# 11. Flyweight 架构 + +推荐采用: + +```text +VS Code + │ + │ LSP / stdio + ▼ +hornet-flyweight-lsp + │ + ├── Tree-sitter C + ├── Tree-sitter C++ + │ + ├── Parser + ├── Symbol Resolver + ├── Reference Resolver + ├── Macro Engine + ├── Index Manager + └── SQLite Index +``` + +进程: + +```text +hornet-flyweight-lsp +``` + +单可执行文件。 + +--- + +# 12. Flyweight 技术选型 + +建议: + +```text +Rust ++ +tree-sitter ++ +tree-sitter-c ++ +tree-sitter-cpp ++ +LSP ++ +SQLite +``` + +Rust 的主要用途: + +* Language Server +* AST 管理 +* 文件索引 +* 并发 +* SQLite 管理 +* JSON-RPC/LSP + +VS Code 前端继续使用 TypeScript。 + +--- + +# 13. Flyweight AST + +Tree-sitter 负责: + +```text +source code + ↓ +Concrete Syntax Tree + ↓ +Hornet Semantic Model +``` + +Hornet 在 CST 上构造自己的语义索引: + +```text +Symbol +Definition +Reference +Scope +Namespace +Class +Struct +Function +Variable +Macro +Template +Using +Inheritance +Call +Include +``` + +统一结构建议: + +```rust +struct Symbol { + id: SymbolId, + name: String, + kind: SymbolKind, + file_id: FileId, + range: Range, + scope_id: Option, + type_name: Option, + signature: Option, +} +``` + +--- + +# 14. Flyweight Unified Index + +与 Tag 模式不同: + +Flyweight 不应该分别建立: + +```text +tags +refs +``` + +而使用统一数据库。 + +例如: + +```text +symbols +references +calls +inheritance +includes +macros +files +scopes +``` + +关系: + +```text +Symbol + ├── Definition + ├── References + ├── Calls + ├── Inheritance + ├── Scope + └── Type +``` + +因此 Definition 和 Reference 可以基于相同 Symbol ID。 + +--- + +# 15. Flyweight 数据库 + +推荐 SQLite: + +```text +hornet-flyweight.db +``` + +表结构: + +```sql +files +symbols +references +calls +inheritance +includes +macros +``` + +例如: + +```text +symbols + +id +name +qualified_name +kind +file_id +line +column +end_line +end_column +container_id +type_name +signature +hash +``` + +引用: + +```text +references + +id +symbol_id +file_id +line +column +container_id +reference_kind +``` + +调用: + +```text +calls + +caller_symbol_id +callee_symbol_id +file_id +line +column +``` + +继承: + +```text +inheritance + +base_symbol_id +derived_symbol_id +access +``` + +--- + +# 16. Flyweight 增量更新 + +文件改变时: + +```text +File Changed + ↓ +Tree-sitter Incremental Parse + ↓ +Old AST + ↓ +New AST + ↓ +AST Diff + ↓ +更新受影响的 Symbols + ↓ +更新 References + ↓ +更新 Calls +``` + +禁止: + +```text +修改一个 .c +→ 重建整个项目 +``` + +--- + +# 17. Tag 模式 + +Tag 是经典快速索引模式。 + +架构: + +```text +VS Code + │ + │ gRPC + ▼ +hornet-db + │ + ├── Universal Ctags + │ + └── Cscope +``` + +三个可执行程序: + +```text +hornet-db +ctags +cscope +``` + +--- + +# 18. hornet-db + +hornet-db 是 Hornet 自己的索引服务。 + +负责: + +* 启动 ctags +* 启动 cscope +* 建立索引 +* 管理索引状态 +* 查询 Definition +* 查询 References +* 查询 Callers +* 查询 Callees +* Symbol Search +* Workspace Outline +* gRPC 服务 +* Index Cache +* 文件增量更新 + +通信: + +```text +VS Code Extension + │ + │ gRPC + ▼ + hornet-db +``` + +--- + +# 19. Tag 数据来源 + +ctags 主要负责: + +```text +Definition +Symbol +Class +Struct +Namespace +Function +Variable +Enum +Macro +``` + +cscope 主要负责: + +```text +Reference +Caller +Callee +Include +Text Reference +``` + +结构: + +```text + ┌──── ctags ──── Definitions +hornet-db ──┤ + └──── cscope ─── References +``` + +--- + +# 20. Tag 模式限制 + +由于: + +```text +ctags symbol +``` + +和: + +```text +cscope reference +``` + +来自两套独立模型,因此 References 不一定拥有完整: + +```text +container +type +scope +symbol id +``` + +所以 Tag 模式允许存在: + +```text +同名函数 +同名成员 +同名变量 +``` + +产生额外结果。 + +这属于 Tag 模式天然能力边界。 + +--- + +# 21. Compiler 模式 + +Compiler 模式核心后端: + +```text +clangd +``` + +架构: + +```text +VS Code + │ + │ LSP + ▼ +Hornet CompilerEngine + │ + ▼ +clangd + │ + ▼ +compile_commands.json +``` + +Compiler 模式提供最高语义准确度。 + +--- + +# 22. Compiler 模式能力 + +Compiler 模式承担: + +* Completion +* Diagnostics +* Definition +* Declaration +* References +* Hover +* Signature Help +* Rename +* Semantic Tokens +* Inlay Hint +* Formatting +* Code Action +* Call Hierarchy +* Type Hierarchy +* Document Symbol +* Workspace Symbol +* Include Navigation +* Refactor + +--- + +# 23. compile_commands.json + +Compiler 模式依赖: + +```text +compile_commands.json +``` + +没有编译数据库时: + +```text +Compiler +``` + +允许启动,但 UI 必须明确提示: + +```text +当前文件没有有效编译参数, +可能导致错误诊断或不准确的代码分析。 +``` + +不能静默表现成精准模式。 + +--- + +# 24. Hybrid 模式 + +Hybrid 是默认推荐模式。 + +架构: + +```text + HybridEngine + │ + ┌────────┴────────┐ + │ │ + ▼ ▼ + CompilerEngine TagEngine + │ │ + clangd hornet-db +``` + +Hybrid 并不是简单: + +```text +Compiler结果 + Tag结果 +``` + +而是: + +```text +根据文件和请求选择最佳 Engine +``` + +--- + +# 25. Hybrid 路由策略 + +如果当前文件: + +```text +存在有效 Compile Command +``` + +则: + +```text +Compiler First +``` + +否则: + +```text +Tag First +``` + +例如: + +| 功能 | 有 Compile Command | 无 Compile Command | +| ---------------- | ----------------- | ----------------- | +| Completion | Compiler | Tag | +| Definition | Compiler | Tag | +| Reference | Compiler | Tag | +| Diagnostics | Compiler | Disabled | +| Rename | Compiler | Disabled | +| Refactor | Compiler | Disabled | +| Call Hierarchy | Compiler | Tag | +| Type Hierarchy | Compiler | Tag | +| Workspace Symbol | Merge | Tag | +| Outline | Compiler | Tag | + +--- + +# 26. Hybrid Fallback + +定义: + +```typescript +interface RoutingPolicy { + preferred: EngineType; + fallback?: EngineType; + merge?: boolean; +} +``` + +例如 Definition: + +```text +Compiler + │ + ├─ 有结果 → 返回 + │ + └─ 无结果 + ↓ + Tag +``` + +Workspace Symbol: + +```text +Compiler + + +Tag + ↓ +Deduplicate + ↓ +Sort +``` + +--- + +# 27. 结果去重 + +Hybrid 必须建立统一: + +```text +LocationKey +``` + +例如: + +```text +normalized_file_path ++ +start_line ++ +start_column ++ +symbol_name +``` + +避免: + +```text +clangd Result ++ +Tag Result +``` + +重复显示。 + +--- + +# 28. 调用关系图 + +Hornet 需要同时提供: + +## VS Code 原生 Call Hierarchy + +支持: + +```text +Show Call Hierarchy +``` + +以及 Hornet 自定义侧边视图。 + +--- + +# 29. Hornet Call Graph + +左侧增加: + +```text +HORNET CALL GRAPH +``` + +例如: + +```text +▼ FtlWrite + ▼ Callers + ▶ NvmeWrite + ▶ BackgroundWrite + ▶ GcMove + ▼ Callees + ▼ AllocPpa + ▶ GetFreeBlock + ▶ UpdateWritePointer + ▶ UpdateMap + ▶ NandWrite +``` + +所有节点支持: + +```text +▶ 折叠 +▼ 展开 +``` + +采用 Lazy Query。 + +初始不会一次查询整个项目调用树。 + +--- + +# 30. Call Graph Lazy Loading + +用户展开: + +```text +AllocPpa +``` + +才执行: + +```text +getOutgoingCalls(AllocPpa) +``` + +因此: + +```text +100 万文件工程 +``` + +也不会因为打开调用图把整个调用关系加载到 Extension Host。 + +--- + +# 31. Call Graph 节点 + +```typescript +interface CallGraphNode { + symbolId: string; + name: string; + qualifiedName?: string; + file: string; + line: number; + direction: "caller" | "callee"; + hasChildren: boolean; +} +``` + +支持: + +* 点击跳转 +* 双击展开 +* Refresh +* Copy Symbol +* Copy Qualified Name +* Find References +* Pin Root +* Set As Root + +--- + +# 32. 类继承关系图 + +新增: + +```text +HORNET TYPE HIERARCHY +``` + +例如: + +```text +NvmeCommand +├── AdminCommand +│ ├── IdentifyCommand +│ └── FirmwareCommand +└── IoCommand + ├── ReadCommand + └── WriteCommand +``` + +支持: + +```text +Bases +Derived +``` + +以及 Lazy Expand。 + +--- + +# 33. Completion + +Completion Provider 统一调用: + +```text +CapabilityRouter.completion() +``` + +Compiler: + +```text +clangd completion +``` + +Flyweight: + +```text +AST ++ +Scope ++ +Symbol Index +``` + +Tag: + +```text +symbol prefix search +``` + +Hybrid: + +```text +Compiler preferred +Tag fallback +``` + +--- + +# 34. 实时诊断 + +实时编译错误仅: + +```text +Compiler +Hybrid +``` + +启用。 + +原因: + +```text +真实编译错误 +``` + +必须拥有: + +```text +include path +defines +compiler flags +language standard +target +system header +``` + +Tag/Flyweight 不宣称提供完整编译器诊断。 + +--- + +# 35. Diagnostic 配置 + +```json +{ + "hornet-cpp.clangd.ignoreDiagnostics": "not_indexed" +} +``` + +允许: + +```text +none +all +not_indexed +``` + +解释: + +### none + +显示所有 clangd 诊断。 + +### all + +隐藏所有 clangd 诊断。 + +### not_indexed + +只有文件存在有效编译参数或已进入 Compiler Index 时显示诊断。 + +建议默认: + +```text +not_indexed +``` + +--- + +# 36. Rename + +Rename: + +```text +Compiler:支持 +Flyweight:第二阶段支持 +Tag:不支持 +Hybrid:Compiler +``` + +Rename 操作前: + +```text +prepareRename +``` + +然后: + +```text +WorkspaceEdit +``` + +需要支持: + +```text +跨文件 rename +``` + +--- + +# 37. Refactor + +第一阶段 Refactor 主要使用 clangd CodeAction。 + +例如: + +* Fix Include +* Add Missing Include +* Extract +* Quick Fix +* Remove Unused +* Apply Suggested Fix + +Flyweight 自研 Refactor 放在第二阶段。 + +--- + +# 38. Semantic Highlight + +配置: + +```json +{ + "hornet-cpp.syntaxColor.enable": true +} +``` + +来源: + +```text +Compiler → clangd semantic tokens +Flyweight → Tree-sitter semantic model +Tag → basic only +Hybrid → Compiler +``` + +--- + +# 39. 不活跃代码 + +配置: + +```json +{ + "hornet-cpp.syntaxColor.enableInactiveCode": true +} +``` + +例如: + +```c +#if 0 +... +#endif +``` + +或条件编译: + +```c +#ifdef FEATURE_A +... +#endif +``` + +Flyweight 需要实现基础 Preprocessor Condition Engine。 + +Compiler 直接优先采用编译语义信息。 + +--- + +# 40. Inlay Hints + +配置: + +```json +{ + "hornet-cpp.clangd.enableInlayHints": true +} +``` + +Compiler: + +```text +clangd +``` + +Flyweight: + +逐步实现: + +* Parameter Name +* Auto Type +* Template Argument + +Tag: + +```text +不支持 +``` + +--- + +# 41. Outline + +VS Code Outline 通过: + +```text +DocumentSymbolProvider +``` + +提供。 + +层级: + +```text +namespace + class + method + local +``` + +Flyweight 可以利用 AST 提供完整结构。 + +Tag 模式只提供基础层级。 + +--- + +# 42. Symbol Search + +命令: + +```text +Hornet C/C++: 搜索符号 +``` + +ID: + +```text +hornet-cpp.symbolSearch +``` + +支持: + +```text +exact +prefix +fuzzy +``` + +Flyweight: + +```text +SQLite FTS +``` + +Tag: + +```text +hornet-db +``` + +Compiler: + +```text +workspace/symbol +``` + +Hybrid: + +```text +Merge + Deduplicate +``` + +--- + +# 43. Compile Commands Manager + +新增核心组件: + +```text +CompileCommandsManager +``` + +职责: + +* Import +* Generate +* Merge +* Deduplicate +* Validate +* Normalize +* Watch +* Query per file +* Export + +--- + +# 44. Import Compile Database + +命令: + +```text +Hornet C/C++: 导入编译数据库文件 +``` + +ID: + +```text +hornet-cpp.importCompilationDatabase +``` + +用户选择: + +```text +compile_commands.json +``` + +Hornet 导入到: + +```text +.vscode/ +└── hornet/ + └── compile-db/ + ├── compile_commands.json + └── sources.json +``` + +--- + +# 45. 多数据库合并 + +支持: + +```text +moduleA/build/compile_commands.json +moduleB/build/compile_commands.json +moduleC/build/compile_commands.json +``` + +合并: + +```text + A + │ + ├── B + │ + └── C + ↓ +.vscode/hornet/compile-db/compile_commands.json +``` + +--- + +# 46. Compile Command 去重 + +以规范化绝对路径作为主键: + +```text +canonical(file) +``` + +例如: + +```python +/home/test/a/../a/test.c +``` + +和: + +```python +/home/test/a/test.c +``` + +视为同一个文件。 + +冲突策略: + +```text +后导入优先 +``` + +同时记录来源。 + +--- + +# 47. 编译数据库生成 + +命令: + +```text +Hornet C/C++: 生成编译数据库文件 +``` + +ID: + +```text +hornet-cpp.generateCompilationDatabase +``` + +生成方案按照优先级: + +```text +CMake + ↓ +Bear + ↓ +Header Guess +``` + +对于 CMake: + +```bash +cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON +``` + +对于已有构建环境可以接入 Bear。 + +对于无法构建的工程,可以生成 fallback database,但 UI 必须标记: + +```text +Generated / Heuristic +``` + +不能与真实编译数据库混淆。 + +--- + +# 48. LinuxBuild API + +Hornet 提供 Extension API: + +```typescript +export interface HornetCppApi { + importCompilationDatabase( + path: string + ): Promise; + + importCompilationDatabases( + paths: string[] + ): Promise; + + refreshIndex(): Promise; + + getCompileCommand( + file: string + ): Promise; +} +``` + +LinuxBuild 插件可以直接: + +```text +build + ↓ +Bear + ↓ +compile_commands.json + ↓ +Hornet API + ↓ +自动导入 +``` + +--- + +# 49. 编译参数查看 + +资源管理器或者 Editor 右键: + +```text +Hornet C/C++: 显示编译参数 +``` + +例如: + +```text +File: +src/ftl/write.c + +Directory: +/home/project/build + +Compiler: +/usr/bin/aarch64-linux-gnu-gcc + +Arguments: +-Iinclude +-Iplatform +-DPRODUCT=8550 +-DDEBUG=1 +-std=gnu11 +-O2 +``` + +--- + +# 50. System Header Provider + +配置: + +```text +hornet-cpp.codebase.systemHeaderProvider +``` + +支持: + +```text +RTOS+Compiler +RTOS +Compiler +None +``` + +--- + +# 51. RTOS+Compiler + +顺序: + +```text +compile_commands.json + │ + ▼ +提取 Compiler + │ + ▼ +查询 Compiler System Include + │ + ├── 成功 → 使用 + │ + └── 失败 + ↓ + Hornet RTOS Headers +``` + +适合: + +* ARM GCC +* Cross GCC +* Embedded GCC +* RTOS +* Firmware + +--- + +# 52. Compiler 安全策略 + +从 compile command 中取得: + +```text +compiler path +``` + +不代表可以任意执行。 + +默认只允许: + +```text +workspace approved ++ +trusted workspace ++ +query-driver allowlist +``` + +避免恶意工程通过: + +```text +compile_commands.json +``` + +诱导插件执行任意程序。 + +--- + +# 53. 索引命令 + +支持: + +```text +Hornet C/C++: 同步工程索引 +Hornet C/C++: 同步文件夹索引 +Hornet C/C++: 同步当前文件索引 +Hornet C/C++: 重建全项目索引 +``` + +Command ID: + +```text +hornet-cpp.syncProjectIndex +hornet-cpp.syncFolderIndex +hornet-cpp.syncFileIndex +hornet-cpp.rebuildProjectIndex +``` + +--- + +# 54. 文件夹右键菜单 + +Explorer: + +```text +src/ + Right Click + ↓ +Hornet C/C++: 同步文件夹索引 +``` + +文件: + +```text +test.c + Right Click + ↓ +Hornet C/C++: 同步当前文件索引 +``` + +--- + +# 55. Index Manager + +统一组件: + +```text +IndexManager +``` + +但每个 Engine 可以拥有自己的 Storage。 + +```text +IndexManager + ├── FlyweightIndex + ├── TagIndex + └── CompilerIndexState +``` + +IndexManager 负责: + +* indexing state +* progress +* rebuild +* cancel +* invalidate +* file change +* workspace change +* exclude rules + +--- + +# 56. 索引存储位置 + +不建议把大型索引文件直接写进源码目录。 + +优先: + +```text +VS Code globalStorageUri +``` + +例如逻辑结构: + +```text +hornet-cpp/ +└── workspaces/ + └── / + ├── flyweight/ + ├── tag/ + ├── compiler/ + └── metadata.json +``` + +`.vscode/hornet` 只保存轻量工程配置和编译数据库。 + +--- + +# 57. 文件排除 + +配置: + +```json +{ + "hornet-cpp.excludePaths": [ + "**/.mm/**", + "**/.git/**", + "**/build/**", + "**/output/**" + ] +} +``` + +默认排除: + +```text +**/.mm/** +**/.git/** +**/build/** +**/output/** +``` + +--- + +# 58. Include Folder + +配置: + +```json +{ + "hornet-cpp.hornetDb.includeFolders": [ + "/opt/project/common", + "/opt/project/platform" + ] +} +``` + +这些路径作为额外索引目录。 + +--- + +# 59. CPU 使用控制 + +配置: + +```text +hornet-cpp.cpuUsage +``` + +支持: + +```text +Maximum +High +Medium +Low +``` + +线程计算: + +```text +Maximum = CPU * 100% +High = CPU * 75% +Medium = CPU * 50% +Low = CPU * 25% +``` + +至少: + +```text +1 thread +``` + +--- + +# 60. CPU Scheduler + +统一: + +```text +HornetCpuScheduler +``` + +计算: + +```typescript +threadCount = + Math.max( + 1, + Math.floor( + cpuCount * ratio + ) + ); +``` + +将结果传给: + +```text +Flyweight +Tag +Compiler +``` + +而不是每个后端自行占满 CPU。 + +--- + +# 61. 内存模式 + +建议增加: + +```text +hornet-cpp.memoryMode +``` + +支持: + +```text +Performance +Balanced +LowMemory +``` + +其中: + +### Performance + +优先内存缓存。 + +### Balanced + +默认。 + +### LowMemory + +* 减少 AST Cache +* 减少 Symbol Cache +* 更积极释放文件 AST +* 磁盘索引优先 +* 降低后台并发 + +--- + +# 62. 超大工程保护 + +当检测: + +```text +> 1,000,000 C/C++ files +``` + +显示: + +```text +Hornet C/C++ detected a very large workspace. +Consider Flyweight mode, exclusions, or reduced indexing scope. +``` + +Hybrid 不应在超大工程中默认无条件同时全量建立: + +```text +clangd index ++ +tag index +``` + +应支持: + +```text +hornet-cpp.hybrid.fullTagIndex +``` + +默认: + +```text +false +``` + +大工程下 Tag 只索引 Compiler 未覆盖区域。 + +--- + +# 63. 模式功能矩阵 + +| 功能 | Flyweight | Tag | Compiler | Hybrid | +| -------------------- | -----------: | ------: | -------: | -----: | +| Completion | ✓ | ✓ | ✓ | ✓ | +| Hover | ✓ | ✗ | ✓ | ✓ | +| Definition | ✓ | ✓ | ✓ | ✓ | +| References | ✓ | ✓ | ✓ | ✓ | +| Folding | ✓ | Limited | ✓ | ✓ | +| Formatting | ✓ | ✗ | ✓ | ✓ | +| Diagnostics | Basic Syntax | ✗ | ✓ | ✓ | +| Rename | Phase 2 | ✗ | ✓ | ✓ | +| Refactor | Phase 2 | ✗ | ✓ | ✓ | +| Semantic Highlight | ✓ | Limited | ✓ | ✓ | +| Inlay Hint | ✓ | ✗ | ✓ | ✓ | +| Macro Navigation | ✓ | Limited | ✓ | ✓ | +| Call Hierarchy | ✓ | ✓ | ✓ | ✓ | +| Type Hierarchy | ✓ | ✓ | ✓ | ✓ | +| Outline | ✓ | ✓ | ✓ | ✓ | +| Workspace Symbol | ✓ | ✓ | ✓ | ✓ | +| compile_commands | 不需要 | 不需要 | 必需/强烈建议 | 可选 | +| Compiler Environment | 不需要 | 不需要 | 推荐 | 可选 | + +--- + +# 64. Flyweight 与 Tag + +| 功能 | Flyweight | Tag | +| ------------------- | --------- | ---- | +| Hover | 支持 | 不支持 | +| Folding | 支持 | 有限 | +| Formatting | 支持 | 不支持 | +| Inactive Code | 支持 | 不支持 | +| Deprecated Symbol | 支持 | 不支持 | +| Macro | 支持 | 有限 | +| Complex Macro | 支持 | 不支持 | +| Template Parameter | 支持 | 不支持 | +| using namespace | 支持 | 不支持 | +| this Completion | 支持 | 不支持 | +| STL | 有限 | 非常有限 | +| Reserved Keyword | 支持 | 有限 | +| Definition Accuracy | 高于 Tag | 中 | +| Reference Accuracy | 高于 Tag | 中 | +| Executables | 1 | 3 | +| LSP | stdio | gRPC | +| Memory View | 支持 | 不支持 | +| Refactor | Phase 2 | 不支持 | + +--- + +# 65. 性能指标 + +以下指标作为 Hornet Benchmark 的目标基线,而不是设计阶段声明已经达到的实际数据。 + +测试项目: + +```text +OpenHarmony +Router +大型 Firmware Project +``` + +目标: + +| 指标 | Flyweight Target | Tag Target | +| -------------------- | ---------------: | ---------: | +| 索引时间 | ≤ 8m22s | ≤ 13m21s | +| Completion Avg | ≤ 35ms | ≤ 850ms | +| Syntax Highlight Avg | ≤ 20ms | ≤ 4300ms | +| Initialization | ≤ 100s | ≤ 460s | + +测试必须固定: + +```text +CPU +RAM +Disk +Git Commit +File Count +Thread Count +Cache State +``` + +否则数字不可比较。 + +--- + +# 66. Benchmark 工具 + +仓库新增: + +```text +benchmark/ +├── completion/ +├── indexing/ +├── highlight/ +├── navigation/ +└── startup/ +``` + +输出: + +```json +{ + "mode": "flyweight", + "workspaceFiles": 812345, + "threads": 16, + "indexTimeMs": 502000, + "completionAvgMs": 32.3 +} +``` + +CI 可以长期观察性能回归。 + +--- + +# 67. glibc 要求 + +发布验收目标: + +| 模式 | 架构 | 最低 glibc | +| --------- | ------ | -------: | +| Compiler | x86_64 | 2.17 | +| Compiler | arm64 | 2.27 | +| Hybrid | x86_64 | 2.17 | +| Hybrid | arm64 | 2.27 | +| Tag | x86_64 | 2.16 | +| Tag | arm64 | 2.18 | +| Flyweight | x86_64 | 2.18 | +| Flyweight | arm64 | 2.18 | + +启动 Backend 前先: + +```text +detect glibc +``` + +不符合要求时给出明确错误。 + +禁止直接: + +```text +spawn +→ ENOEXEC +→ 插件崩溃 +``` + +--- + +# 68. Binary Manager + +新增: + +```text +BinaryManager +``` + +管理: + +```text +clangd +hornet-db +hornet-flyweight-lsp +ctags +cscope +``` + +根据: + +```text +OS +Architecture +glibc +``` + +选择正确 binary。 + +--- + +# 69. Backend Manifest + +建议: + +```json +{ + "flyweight": { + "linux-x64": { + "path": "bin/linux-x64/hornet-flyweight-lsp", + "glibc": "2.18" + }, + "linux-arm64": { + "path": "bin/linux-arm64/hornet-flyweight-lsp", + "glibc": "2.18" + } + } +} +``` + +启动前完成: + +```text +Platform Check +Architecture Check +ABI Check +Checksum Check +Executable Check +``` + +--- + +# 70. 第三方许可证 + +Hornet 发布包需要单独维护: + +```text +ThirdPartyNotices.txt +licenses/ +``` + +至少包含: + +```text +LLVM / clangd +Tree-sitter +tree-sitter-c +tree-sitter-cpp +Universal Ctags +Cscope +SQLite +Rust dependencies +Node dependencies +``` + +其中 Universal Ctags 的分发需要特别检查 GPLv2 相应义务。 + +不能把“能下载源码”等同于“可以忽略许可证”。 + +--- + +# 71. Hornet 配置命名 + +禁止继续新增: + +```text +C_Cpp.* +``` + +全部统一: + +```text +hornet-cpp.* +``` + +例如: + +```text +hornet-cpp.mode +hornet-cpp.excludePaths +hornet-cpp.cpuUsage +hornet-cpp.memoryMode +hornet-cpp.clangd.path +hornet-cpp.clangd.arguments +hornet-cpp.clangd.enableInlayHints +hornet-cpp.clangd.ignoreDiagnostics +hornet-cpp.syntaxColor.enable +hornet-cpp.syntaxColor.enableInactiveCode +hornet-cpp.hornetDb.includeFolders +hornet-cpp.codebase.systemHeaderProvider +``` + +--- + +# 72. 命令命名 + +统一: + +```text +hornet-cpp.* +``` + +建议命令: + +```text +hornet-cpp.switchMode +hornet-cpp.importCompilationDatabase +hornet-cpp.generateCompilationDatabase +hornet-cpp.mergeCompilationDatabases +hornet-cpp.syncProjectIndex +hornet-cpp.syncFolderIndex +hornet-cpp.syncFileIndex +hornet-cpp.rebuildProjectIndex +hornet-cpp.showCompileCommand +hornet-cpp.showCallGraph +hornet-cpp.showTypeHierarchy +hornet-cpp.restartLanguageServices +hornet-cpp.openLogs +hornet-cpp.symbolSearch +``` + +--- + +# 73. Extension Metadata + +最终: + +```json +{ + "name": "hornet-cpp", + "displayName": "Hornet C/C++", + "description": "C/C++ language support, code intelligence and code browsing.", + "publisher": "" +} +``` + +不再使用: + +```text +ms-vscode +cpptools +Microsoft C/C++ +``` + +--- + +# 74. Output Channels + +统一: + +```text +Hornet C/C++ +Hornet Compiler +Hornet Flyweight +Hornet Tag +Hornet Index +``` + +日志必须带: + +```text +timestamp +workspace +mode +backend +level +``` + +例如: + +```text +[09:22:31.312] [INFO] [Compiler] clangd started +[09:22:31.420] [INFO] [Compiler] compile database loaded: 18233 files +[09:22:32.001] [INFO] [Index] background index started +``` + +--- + +# 75. 项目目录设计 + +建议逐步从现有 Extension 重构成: + +```text +Extension/ +├── src/ +│ ├── hornet/ +│ │ ├── core/ +│ │ │ ├── modeManager.ts +│ │ │ ├── capabilityRouter.ts +│ │ │ ├── binaryManager.ts +│ │ │ ├── processManager.ts +│ │ │ └── cpuScheduler.ts +│ │ │ +│ │ ├── engines/ +│ │ │ ├── languageEngine.ts +│ │ │ ├── flyweightEngine.ts +│ │ │ ├── tagEngine.ts +│ │ │ ├── compilerEngine.ts +│ │ │ └── hybridEngine.ts +│ │ │ +│ │ ├── providers/ +│ │ │ ├── completionProvider.ts +│ │ │ ├── definitionProvider.ts +│ │ │ ├── referenceProvider.ts +│ │ │ ├── callHierarchyProvider.ts +│ │ │ ├── typeHierarchyProvider.ts +│ │ │ ├── renameProvider.ts +│ │ │ ├── semanticTokensProvider.ts +│ │ │ ├── inlayHintProvider.ts +│ │ │ └── symbolProvider.ts +│ │ │ +│ │ ├── compdb/ +│ │ │ ├── compileCommandsManager.ts +│ │ │ ├── compileCommandsParser.ts +│ │ │ ├── compileCommandsMerge.ts +│ │ │ └── compilerProbe.ts +│ │ │ +│ │ ├── index/ +│ │ │ ├── indexManager.ts +│ │ │ └── indexState.ts +│ │ │ +│ │ ├── views/ +│ │ │ ├── callGraphView.ts +│ │ │ ├── typeHierarchyView.ts +│ │ │ └── indexStatusView.ts +│ │ │ +│ │ ├── config/ +│ │ │ ├── settings.ts +│ │ │ └── defaults.ts +│ │ │ +│ │ └── api/ +│ │ └── hornetCppApi.ts +│ │ +│ └── main.ts +│ +└── package.json +``` + +Native: + +```text +Native/ +├── flyweight-lsp/ +│ ├── src/ +│ └── Cargo.toml +│ +├── hornet-db/ +│ ├── src/ +│ ├── proto/ +│ └── Cargo.toml +│ +└── third_party/ +``` + +--- + +# 76. Process Manager + +所有 native process 必须统一由: + +```text +ProcessManager +``` + +启动。 + +管理: + +* spawn +* stdout +* stderr +* restart +* crash +* timeout +* process tree +* graceful shutdown + +禁止每个模块自行: + +```typescript +child_process.spawn() +``` + +导致无法统一回收进程。 + +--- + +# 77. Backend Crash Recovery + +如果: + +```text +clangd crash +``` + +策略: + +```text +第1次 → 自动 restart +第2次 → 自动 restart +第3次 → 停止自动 restart +``` + +显示: + +```text +Hornet Compiler language server stopped unexpectedly. +``` + +Hybrid 可以自动: + +```text +Compiler unavailable + ↓ +Tag fallback +``` + +--- + +# 78. Remote 场景 + +需要识别: + +```text +Remote SSH +WSL +Container +Codespace-like remote +``` + +Engine 应运行: + +```text +workspace side +``` + +而不是本机 UI side。 + +BinaryManager 根据 Extension Host 所在平台选择 backend。 + +Flyweight 不应因为 remote 场景强制切换 Hybrid。 + +只要对应平台 binary 可用即可继续 Flyweight。 + +--- + +# 79. Multi-root Workspace + +每个 Workspace Folder 建立: + +```text +WorkspaceContext +``` + +例如: + +```text +WorkspaceManager + ├── workspace A + │ ├── mode + │ ├── engine + │ └── index + │ + └── workspace B + ├── mode + ├── engine + └── index +``` + +不同 Workspace Folder 可以使用不同模式。 + +例如: + +```text +firmware/ Hybrid +bootloader/ Flyweight +thirdparty/ Tag +``` + +--- + +# 80. Workspace Trust + +未信任 workspace: + +禁止: + +```text +运行编译器 +运行 Bear +query-driver +执行 build command +``` + +仍可允许: + +```text +Flyweight parse +``` + +前提是不执行工程内程序。 + +--- + +# 81. 初始模式 + +建议默认: + +```text +Hybrid +``` + +启动: + +```text +打开 Workspace + ↓ +寻找 compile_commands.json + │ + ├── 找到 + │ ↓ + │ Compiler + Tag + │ + └── 未找到 + ↓ + Tag +``` + +但中长期建议: + +```text +Hybrid = Compiler + Flyweight fallback +``` + +并逐步淘汰 Tag。 + +--- + +# 82. Tag 淘汰路线 + +阶段: + +```text +V1 +Hybrid = Compiler + Tag +``` + +之后: + +```text +V2 +Hybrid = Compiler + Flyweight +``` + +最终: + +```text +Tag +``` + +只作为兼容模式保留。 + +原因是 Flyweight 可以统一: + +```text +Definition +Reference +Container +Type +Call +Inheritance +``` + +数据模型。 + +--- + +# 83. 插件冲突处理 + +Hornet 与: + +```text +ms-vscode.cpptools +clangd extension +其他 C/C++ Language Server +``` + +可能同时注册: + +```text +Completion +Definition +Diagnostics +``` + +安装后检测已激活扩展。 + +如果发现冲突: + +```text +Multiple C/C++ language providers are active. +This may produce duplicate completion or diagnostics. +``` + +但不要未经用户同意自动 Disable 别的插件。 + +--- + +# 84. 用户界面 + +Activity/Views 建议: + +```text +HORNET C/C++ + +Parsing + Mode: Hybrid + Compiler: Ready + Tag Index: Ready + +Call Graph + +Type Hierarchy + +Index + Files: 132,991 + Indexed: 132,881 + Pending: 110 +``` + +--- + +# 85. Status Bar + +建议显示: + +```text +Hornet: Hybrid +``` + +索引期间: + +```text +Hornet: Hybrid $(sync~spin) +``` + +异常: + +```text +Hornet: Compiler ! +``` + +不要长期占用多个 Status Bar Item。 + +--- + +# 86. 重构原 vscode-cpptools 的原则 + +不是全仓库: + +```text +cpptools → hornet +``` + +机械替换。 + +必须分类: + +### 可以重命名 + +```text +package metadata +command ids +setting ids +output channel +status text +schemas +UI +class names +frontend service +``` + +### 需要删除 + +```text +Microsoft telemetry +Microsoft experiment service +Microsoft marketplace-specific behavior +Microsoft Copilot-specific integration +private binary downloader +private runtime +vsdbg dependency +``` + +### 可以保留并重构 + +```text +VS Code Provider patterns +Workspace lifecycle +Utility code +Configuration helpers +Localization framework +Test harness +``` + +--- + +# 87. 包名迁移 + +推荐: + +```text +cpptools +→ +hornet-cpp +``` + +API: + +```text +vscode-cpptools +→ +hornet-cpp-api +``` + +内部 namespace: + +```text +cpptools/ +→ +hornet/ +``` + +--- + +# 88. 配置迁移 + +第一版可以提供: + +```text +Hornet C/C++: 从 Microsoft C/C++ 导入配置 +``` + +读取: + +```text +C_Cpp.* +c_cpp_properties.json +``` + +转换成: + +```text +hornet-cpp.* +hornet_cpp_properties.json +``` + +只读取。 + +不修改原插件配置。 + +--- + +# 89. hornet_cpp_properties.json + +建议新增: + +```text +.vscode/hornet_cpp_properties.json +``` + +用于: + +```text +includePath +defines +compilerPath +compilerArgs +standards +fallback configuration +``` + +而: + +```text +compile_commands.json +``` + +仍然作为 Compiler 模式优先数据源。 + +--- + +# 90. API Version + +Extension API: + +```typescript +enum HornetApiVersion { + v1 = 1 +} +``` + +消费者: + +```typescript +const api = + extension.exports.getApi( + HornetApiVersion.v1 + ); +``` + +LinuxBuild 等插件通过正式 API 对接,禁止依赖 Hornet 内部文件。 + +--- + +# 91. 安全边界 + +外部输入包括: + +```text +compile_commands.json +ctags config +workspace files +compiler path +clangd args +include path +build command +``` + +所有进程调用: + +禁止: + +```typescript +exec("string " + userInput) +``` + +必须: + +```typescript +spawn(binary, args) +``` + +避免 Shell Injection。 + +--- + +# 92. 文件系统安全 + +索引路径必须经过: + +```text +canonicalize +``` + +防止: + +```text +../ +symlink escape +malformed URI +``` + +索引数据库不得覆盖源码文件。 + +--- + +# 93. 测试体系 + +测试分: + +```text +Unit Test +Integration Test +VS Code E2E +Backend Test +Performance Test +Compatibility Test +``` + +--- + +# 94. Unit Test + +重点: + +```text +ModeManager +CapabilityRouter +CompileCommandsMerge +CompileCommandsParser +PathNormalizer +ResultDeduplicator +CPU Scheduler +Binary Selector +``` + +--- + +# 95. Integration Test + +准备: + +```text +test/fixtures/ +├── simple_c/ +├── simple_cpp/ +├── cmake/ +├── macro/ +├── template/ +├── inheritance/ +├── duplicate_symbol/ +├── multi_root/ +└── compile_commands/ +``` + +验证: + +```text +definition +references +rename +calls +types +completion +diagnostic +``` + +--- + +# 96. Call Hierarchy Test + +例如: + +```c +void C(void) +{ +} + +void B(void) +{ + C(); +} + +void A(void) +{ + B(); +} +``` + +验证: + +```text +A +└── B + └── C +``` + +反向: + +```text +C +└── B + └── A +``` + +并测试 Lazy Expand。 + +--- + +# 97. Type Hierarchy Test + +```cpp +class A {}; + +class B : public A {}; + +class C : public B {}; +``` + +结果: + +```text +A +└── B + └── C +``` + +--- + +# 98. 发布产物 + +VSIX: + +```text +hornet-cpp-x.y.z-linux-x64.vsix +hornet-cpp-x.y.z-linux-arm64.vsix +``` + +未来: + +```text +win32-x64 +win32-arm64 +darwin-x64 +darwin-arm64 +``` + +--- + +# 99. CI + +建议流水线: + +```text +Lint + ↓ +TypeScript Unit Test + ↓ +Flyweight Test + ↓ +hornet-db Test + ↓ +VS Code Integration Test + ↓ +Native Build + ↓ +glibc Compatibility Test + ↓ +License Scan + ↓ +VSIX Package + ↓ +Smoke Test +``` + +--- + +# 100. Commit 拆分方案 + +正式开始修改仓库时,不建议一个超大 Commit。 + +建议: + +## Commit 1 + +```text +refactor: establish Hornet C/C++ product identity +``` + +内容: + +* package metadata +* displayName +* extension id +* output channel +* command namespace +* settings namespace +* README 基础品牌 + +--- + +## Commit 2 + +```text +refactor: remove Microsoft runtime dependencies +``` + +内容: + +* private cpptools runtime +* downloader +* Microsoft services +* telemetry/experiments +* debug runtime dependency + +--- + +## Commit 3 + +```text +feat: introduce language engine abstraction +``` + +内容: + +```text +LanguageEngine +ModeManager +CapabilityRouter +``` + +--- + +## Commit 4 + +```text +feat: add compiler engine based on clangd +``` + +--- + +## Commit 5 + +```text +feat: add compilation database manager +``` + +--- + +## Commit 6 + +```text +feat: add Hornet parsing mode switcher +``` + +--- + +## Commit 7 + +```text +feat: add tag engine architecture +``` + +--- + +## Commit 8 + +```text +feat: add flyweight Tree-sitter language server +``` + +--- + +## Commit 9 + +```text +feat: add expandable call graph +``` + +--- + +## Commit 10 + +```text +feat: add type hierarchy view +``` + +--- + +## Commit 11 + +```text +feat: add project index management +``` + +--- + +## Commit 12 + +```text +docs: add Hornet C/C++ documentation +``` + +--- + +# 101. 开发阶段 + +推荐分四阶段。 + +--- + +## Phase 1:Hornet 化 + Compiler + +目标: + +```text +Hornet Extension ++ +clangd ++ +compile_commands +``` + +实现: + +* Hornet 品牌 +* ModeManager +* CapabilityRouter +* Compiler Engine +* Completion +* Diagnostics +* Definition +* References +* Rename +* Semantic Highlight +* Inlay Hints +* Call Hierarchy +* Type Hierarchy +* Outline +* Symbol Search + +完成后已经可以作为可用 C/C++ 插件。 + +--- + +## Phase 2:Tag + +实现: + +```text +hornet-db +ctags +cscope +``` + +重点: + +* 无编译环境导航 +* Workspace Index +* Definition +* References +* Callers/Callees +* Symbol Search +* Hybrid + +--- + +## Phase 3:Flyweight + +实现: + +```text +hornet-flyweight-lsp +Tree-sitter +Unified Index +``` + +优先: + +* Parser +* Symbol +* Definition +* Reference +* Outline +* Folding +* Hover +* Call +* Inheritance + +之后: + +* Completion +* Macro +* Formatting +* Inlay Hint +* Semantic Token + +--- + +## Phase 4:大型工程优化 + +实现: + +* Incremental Index +* CPU Limit +* Memory Limit +* Lazy Call Graph +* Lazy Type Hierarchy +* Index Sharding +* Workspace Partition +* Benchmark +* 100w+ file stress test + +--- + +# 102. V1 推荐范围 + +为了避免 Hornet 第一版同时实现三个复杂后端而迟迟不可用,推荐 V1: + +```text +Compiler ++ +Hybrid Framework ++ +Call Graph ++ +Type Hierarchy ++ +Compile Commands Manager +``` + +然后: + +```text +V1.1 → Tag +V1.2 → Flyweight Basic +V1.3 → Flyweight Advanced +``` + +但是整个架构从第一个 Commit 就按四模式设计,避免未来大规模重构。 + +--- + +# 103. 最终架构 + +最终期望: + +```text + Hornet C/C++ + │ + ┌─────────────┴─────────────┐ + │ │ + VS Code UI Public API + │ │ + └─────────────┬─────────────┘ + │ + Capability Router + │ + Mode Manager + │ + ┌────────────────────┼────────────────────┐ + │ │ │ + ▼ ▼ ▼ + FlyweightEngine TagEngine CompilerEngine + │ │ │ + ▼ ▼ ▼ +flyweight-lsp hornet-db clangd + │ / \ │ + ▼ ctags cscope ▼ + Tree-sitter compile_commands + │ + ▼ +Unified AST Index + + HybridEngine + │ + Intelligent Routing + │ + ┌──────────────┴──────────────┐ + │ │ + Compiler Semantic Fallback Index +``` + +这套架构的核心原则是: + +```text +VS Code UI 与语言后端解耦 +``` + +以及: + +```text +不同解析模式共享统一 Capability Interface +``` + +这样 Hornet C/C++ 后续即使: + +```text +淘汰 Tag +替换 clangd +升级 Tree-sitter +增加 Remote Index +增加 Distributed Index +``` + +都不需要重新设计整个 VS Code 插件。 + +--- + +# 104. 结论 + +Hornet C/C++ 不应只是: + +```text +vscode-cpptools ++ +改图标 ++ +改名字 +``` + +而应该以 vscode-cpptools 成熟的 VS Code 前端代码作为基础,重新建立自己的语言服务体系。 + +最终产品应形成三个核心层: + +```text +Hornet Frontend + ↓ +Hornet Capability Router + ↓ +Hornet Language Engines +``` + +其中: + +```text +Compiler +``` + +解决精准语义分析; + +```text +Tag +``` + +解决传统、无编译环境、快速浏览; + +```text +Flyweight +``` + +解决下一代轻量 AST 索引; + +```text +Hybrid +``` + +负责把不同后端组合成最佳用户体验。 + +Hornet C/C++ 的长期方向建议为: + +```text +Compiler + Flyweight +``` + +Tag 最终逐步转为兼容模式。 + +这样既能支持普通 C/C++ 工程,也能够面向 Firmware、Linux Kernel、OpenHarmony、嵌入式、大规模企业代码仓等场景。