Full Code of VSCodium/vscodium for AI

master 2321c2c69516 cached
253 files
5.1 MB
1.4M tokens
16 symbols
1 requests
Download .txt
Showing preview only (5,404K chars total). Download the full file or copy to clipboard to get everything.
Repository: VSCodium/vscodium
Branch: master
Commit: 2321c2c69516
Files: 253
Total size: 5.1 MB

Directory structure:
gitextract_qyl36xte/

├── .editorconfig
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   └── bug_report.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── insider-linux.yml
│       ├── insider-macos.yml
│       ├── insider-spearhead.yml
│       ├── insider-windows.yml
│       ├── lock.yml
│       ├── stable-linux.yml
│       ├── stable-macos.yml
│       ├── stable-spearhead.yml
│       ├── stable-windows.yml
│       └── stale.yml
├── .gitignore
├── .nvmrc
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── FUNDING.json
├── LICENSE
├── README.md
├── announcements-builtin.json
├── announcements-extra.json
├── build/
│   ├── alpine/
│   │   └── package_reh.sh
│   ├── linux/
│   │   ├── appimage/
│   │   │   ├── build.sh
│   │   │   └── recipe.yml
│   │   ├── deps.sh
│   │   ├── install_gh.sh
│   │   ├── install_nodejs.sh
│   │   ├── loong64/
│   │   │   ├── electron.sh
│   │   │   ├── electron.sha256sums
│   │   │   └── ripgrep.sh
│   │   ├── package_bin.sh
│   │   ├── package_reh.sh
│   │   ├── ppc64le/
│   │   │   ├── electron.sh
│   │   │   └── electron.sha256sums
│   │   ├── riscv64/
│   │   │   ├── electron.sh
│   │   │   ├── electron.sha256sums
│   │   │   └── ripgrep.sh
│   │   ├── verify_abi_requirements.sh
│   │   └── verify_cxx11_requirements.sh
│   ├── osx/
│   │   └── include.gypi
│   └── windows/
│       ├── appx/
│       │   └── build.sh
│       ├── msi/
│       │   ├── build-updates-disabled.sh
│       │   ├── build.sh
│       │   ├── i18n/
│       │   │   ├── vscodium.de-de.wxl
│       │   │   ├── vscodium.en-us.wxl
│       │   │   ├── vscodium.es-es.wxl
│       │   │   ├── vscodium.fr-fr.wxl
│       │   │   ├── vscodium.it-it.wxl
│       │   │   ├── vscodium.ja-jp.wxl
│       │   │   ├── vscodium.ko-kr.wxl
│       │   │   ├── vscodium.ru-ru.wxl
│       │   │   ├── vscodium.zh-cn.wxl
│       │   │   └── vscodium.zh-tw.wxl
│       │   ├── includes/
│       │   │   └── vscodium-variables.wxi
│       │   ├── vscodium.wxs
│       │   └── vscodium.xsl
│       ├── package.sh
│       └── rtf/
│           └── make.sh
├── build.sh
├── build_cli.sh
├── check_cron_or_pr.sh
├── check_tags.sh
├── dev/
│   ├── build.ps1
│   ├── build.sh
│   ├── build_docker.sh
│   ├── cli.sh
│   ├── merge-patches.sh
│   ├── osx/
│   │   └── codesign.env.template
│   ├── patch.sh
│   ├── update_api.sh
│   └── update_patches.sh
├── docs/
│   ├── accounts-authentication.md
│   ├── ext-github-copilot.md
│   ├── extensions-compatibility.md
│   ├── extensions.md
│   ├── getting-started.md
│   ├── howto-build.md
│   ├── index.md
│   ├── migration.md
│   ├── others.md
│   ├── telemetry.md
│   ├── troubleshooting.md
│   └── usage.md
├── font-size/
│   ├── .artifactrc.yml
│   ├── .editorconfig
│   ├── .fixpackrc
│   ├── .gitignore
│   ├── .nvmrc
│   ├── .vscode/
│   │   └── settings.json
│   ├── .xo-config.json
│   ├── generate-css.ts
│   ├── package.json
│   ├── tsconfig.base.json
│   └── tsconfig.json
├── get_pr.sh
├── get_repo.sh
├── icons/
│   ├── README.md
│   └── build_icons.sh
├── npmrc
├── patches/
│   ├── add-remote-url.patch
│   ├── alpine/
│   │   └── reh/
│   │       └── fix-node-docker.patch
│   ├── binary-name.patch
│   ├── brand.patch
│   ├── cli.patch
│   ├── disable-cloud.patch
│   ├── disable-copilot.patch
│   ├── disable-missing-vsda.patch
│   ├── disable-signature-verification.patch
│   ├── disable-update.patch.yet
│   ├── disable-vscodedev.patch
│   ├── ext-from-gh.patch
│   ├── extensions-disable-mangler.patch
│   ├── feat-announcements.patch
│   ├── feat-command-filter.patch
│   ├── feat-experimental-font.patch
│   ├── feat-ext-unsafe.patch
│   ├── feat-user-product.patch
│   ├── fix-build-vsce.patch
│   ├── fix-eol-banner.patch
│   ├── fix-extensions-control-connection.patch
│   ├── fix-gallery.patch
│   ├── fix-keymap.patch
│   ├── fix-npm-preinstall.patch
│   ├── fix-policies.patch
│   ├── fix-remote-libs.patch
│   ├── fix-tunnel-extension-recommendation.patch
│   ├── helper/
│   │   └── settings.patch
│   ├── insider/
│   │   └── system-extensions.patch
│   ├── linux/
│   │   ├── arch-0-support.patch
│   │   ├── arch-1-ppc64le.patch
│   │   ├── arch-2-riscv64.patch
│   │   ├── arch-3-loong64.patch
│   │   ├── arch-4-s390x.patch
│   │   ├── cli.patch
│   │   ├── client/
│   │   │   ├── avoid-crash-16k-page-size.patch
│   │   │   └── disable-remote.patch
│   │   ├── feat-logs-home.patch
│   │   ├── fix-build.patch
│   │   ├── fix-global-policy.patch
│   │   ├── fix-npm-postinstall.patch
│   │   ├── fix-reh-bootstrap.patch
│   │   ├── reh/
│   │   │   └── s390x/
│   │   │       └── package.json.patch
│   │   ├── rpm.patch
│   │   └── update-xdg-path.patch
│   ├── optional-tree-sitter.patch
│   ├── osx/
│   │   ├── fix-codesign.patch.no
│   │   └── fix-emulated-urls.patch
│   ├── remove-mangle.patch
│   ├── report-issue.patch
│   ├── sourcemaps.patch
│   ├── telemetry.patch
│   ├── terminal-suggest.patch
│   ├── update-cache-path.patch
│   ├── update-electron.patch.no
│   ├── use-github-pat.patch
│   ├── user/
│   │   └── readme.txt
│   ├── version-0-release.patch
│   ├── version-1-update.patch
│   └── windows/
│       ├── appx.patch
│       ├── cli.patch
│       └── win7.patch
├── prepare_assets.sh
├── prepare_checksums.sh
├── prepare_src.sh
├── prepare_vscode.sh
├── product.json
├── release.sh
├── release_notes.md
├── src/
│   ├── insider/
│   │   └── resources/
│   │       ├── darwin/
│   │       │   ├── bat.icns
│   │       │   ├── bower.icns
│   │       │   ├── c.icns
│   │       │   ├── code.icns
│   │       │   ├── config.icns
│   │       │   ├── cpp.icns
│   │       │   ├── csharp.icns
│   │       │   ├── css.icns
│   │       │   ├── default.icns
│   │       │   ├── go.icns
│   │       │   ├── html.icns
│   │       │   ├── jade.icns
│   │       │   ├── java.icns
│   │       │   ├── javascript.icns
│   │       │   ├── json.icns
│   │       │   ├── less.icns
│   │       │   ├── markdown.icns
│   │       │   ├── php.icns
│   │       │   ├── powershell.icns
│   │       │   ├── python.icns
│   │       │   ├── react.icns
│   │       │   ├── ruby.icns
│   │       │   ├── sass.icns
│   │       │   ├── shell.icns
│   │       │   ├── sql.icns
│   │       │   ├── typescript.icns
│   │       │   ├── vue.icns
│   │       │   ├── xml.icns
│   │       │   └── yaml.icns
│   │       ├── linux/
│   │       │   ├── code-url-handler.desktop
│   │       │   ├── code.appdata.xml
│   │       │   ├── code.desktop
│   │       │   └── rpm/
│   │       │       └── code.xpm
│   │       └── win32/
│   │           └── VisualElementsManifest.xml
│   └── stable/
│       └── resources/
│           ├── darwin/
│           │   ├── bat.icns
│           │   ├── bower.icns
│           │   ├── c.icns
│           │   ├── code.icns
│           │   ├── config.icns
│           │   ├── cpp.icns
│           │   ├── csharp.icns
│           │   ├── css.icns
│           │   ├── default.icns
│           │   ├── go.icns
│           │   ├── html.icns
│           │   ├── jade.icns
│           │   ├── java.icns
│           │   ├── javascript.icns
│           │   ├── json.icns
│           │   ├── less.icns
│           │   ├── markdown.icns
│           │   ├── php.icns
│           │   ├── powershell.icns
│           │   ├── python.icns
│           │   ├── react.icns
│           │   ├── ruby.icns
│           │   ├── sass.icns
│           │   ├── shell.icns
│           │   ├── sql.icns
│           │   ├── typescript.icns
│           │   ├── vue.icns
│           │   ├── xml.icns
│           │   └── yaml.icns
│           ├── linux/
│           │   ├── code-url-handler.desktop
│           │   ├── code.appdata.xml
│           │   ├── code.desktop
│           │   └── rpm/
│           │       └── code.xpm
│           └── win32/
│               └── VisualElementsManifest.xml
├── stores/
│   ├── snapcraft/
│   │   ├── check_version.sh
│   │   ├── insider/
│   │   │   └── snap/
│   │   │       ├── hooks/
│   │   │       │   └── configure
│   │   │       ├── local/
│   │   │       │   └── bin/
│   │   │       │       └── electron-launch
│   │   │       └── snapcraft.yaml
│   │   └── stable/
│   │       └── snap/
│   │           ├── hooks/
│   │           │   └── configure
│   │           ├── local/
│   │           │   └── bin/
│   │           │       └── electron-launch
│   │           └── snapcraft.yaml
│   └── winget/
│       └── check_version.sh
├── undo_telemetry.sh
├── update_upstream.sh
├── update_version.sh
├── upload_sourcemaps.sh
├── upstream/
│   ├── insider.json
│   └── stable.json
├── utils.sh
└── version.sh

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
root = true

[*]
indent_style = space
indent_size = 2
tab_width = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.sh]
indent_style = space
indent_size = 2

[*.{yml,yaml}]
indent_style = space
indent_size = 2

[*.patch]
trim_trailing_whitespace = false
insert_final_newline = false

[*.svg]
insert_final_newline = false


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**Please confirm that this problem is VSCodium-specific**
- [ ] This bug doesn't happen if I use Microsoft's Visual Studio Code. It only happens in VSCodium.

**Please confirm that the issue/resolution isn't already documented**
- [ ] I checked [the Docs page](https://github.com/VSCodium/vscodium/blob/master/docs/index.md) and [the Troubleshooting page](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md) and my issue is not mentioned there.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
 - OS: [e.g. Mac OS, Ubuntu 20.04, etc]
 - Architecture [e.g. x64, ia32, arm64]
 - Version [e.g. 1.33.0]
 - App Manager [e.g. Winget, Homebrew, Snap, AUR, RPM, Nix, ...]
 - Sandboxed [e.g. no, Flatpak, Snap]

**Additional context**
Add any other context about the problem here.


================================================
FILE: .github/dependabot.yml
================================================
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    target-branch: insider
    schedule:
      interval: "weekly"


================================================
FILE: .github/workflows/insider-linux.yml
================================================
name: insider-linux

on:
  workflow_dispatch:
    inputs:
      force_version:
        type: boolean
        description: Force update version
      generate_assets:
        type: boolean
        description: Generate assets
      checkout_pr:
        type: string
        description: Checkout PR
  repository_dispatch:
    types: [insider]
  push:
    branches: [ insider ]
    paths-ignore:
    - '**/*.md'
    - 'upstream/*.json'
  pull_request:
    branches: [ insider ]
    paths-ignore:
    - '**/*.md'

env:
  ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
  APP_NAME: VSCodium
  ASSETS_REPOSITORY: ${{ github.repository }}-insiders
  BINARY_NAME: codium-insiders
  DISABLE_UPDATE: 'yes'
  GH_REPO_PATH: ${{ github.repository }}
  GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
  ORG_NAME: ${{ github.repository_owner }}
  OS_NAME: linux
  VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
  VSCODE_QUALITY: insider

jobs:
  check:
    runs-on: ubuntu-latest
    outputs:
      MS_COMMIT: ${{ env.MS_COMMIT }}
      MS_TAG: ${{ env.MS_TAG }}
      RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
      SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh

      - name: Clone VSCode repo
        run: ./get_repo.sh

      - name: Check PR or cron
        env:
          GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
        run: ./check_cron_or_pr.sh

      - name: Check existing VSCodium tags/releases
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          CHECK_ALL: 'yes'
        run: ./check_tags.sh

  compile:
    needs:
      - check
    runs-on: ubuntu-22.04
    env:
      MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
      MS_TAG: ${{ needs.check.outputs.MS_TAG }}
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
      VSCODE_ARCH: 'x64'
    outputs:
      BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}
        if: env.SHOULD_BUILD == 'yes'

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh

      - name: Setup GCC
        uses: egor-tensin/setup-gcc@v2
        with:
          version: 10
          platform: x64

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'
        if: env.SHOULD_BUILD == 'yes'

      - name: Setup Python 3
        uses: actions/setup-python@v6
        with:
          python-version: '3.11'
        if: env.SHOULD_BUILD == 'yes'

      - name: Install libkrb5-dev
        run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
        if: env.SHOULD_BUILD == 'yes'

      - name: Clone VSCode repo
        run: ./get_repo.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Build
        env:
          SHOULD_BUILD_REH: 'no'
          SHOULD_BUILD_REH_WEB: 'no'
        run: ./build.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Compress vscode artifact
        run: |
          find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
          echo "vscode/.build/extensions/node_modules" >> vscode.txt
          echo "vscode/.git" >> vscode.txt
          tar -czf vscode.tar.gz -T vscode.txt
        if: env.SHOULD_BUILD == 'yes'

      - name: Upload vscode artifact
        uses: actions/upload-artifact@v7
        with:
          name: vscode
          path: ./vscode.tar.gz
          retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
        if: env.SHOULD_BUILD == 'yes'

  build:
    needs:
      - check
      - compile
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
        - slug: X64
          vscode_arch: x64
          npm_arch: x64
          image: vscodium/vscodium-linux-build-agent:focal-x64
        - slug: ARM64
          vscode_arch: arm64
          npm_arch: arm64
          image: vscodium/vscodium-linux-build-agent:focal-arm64
        - slug: ARM32
          vscode_arch: armhf
          npm_arch: arm
          image: vscodium/vscodium-linux-build-agent:focal-armhf
        - slug: RISCV64
          vscode_arch: riscv64
          npm_arch: riscv64
          image: vscodium/vscodium-linux-build-agent:focal-riscv64
        - slug: LOONG64
          vscode_arch: loong64
          npm_arch: loong64
          image: vscodium/vscodium-linux-build-agent:crimson-loong64
        - slug: PPC64
          vscode_arch: ppc64le
          npm_arch: ppc64
          image: vscodium/vscodium-linux-build-agent:focal-ppc64le
    container:
      image: ${{ matrix.image }}
    env:
      BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
      DISABLED: ${{ vars[format('DISABLE_INSIDER_LINUX_APP_{0}', matrix.slug)] }}
      MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
      MS_TAG: ${{ needs.check.outputs.MS_TAG }}
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
      SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
      VSCODE_ARCH: ${{ matrix.vscode_arch }}
    outputs:
      RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
      SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - name: Install GH
        run: ./build/linux/install_gh.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Check existing VSCodium tags/releases
        env:
          CHECK_REH: 'no'
          DISABLE_APPIMAGE: ${{ vars.DISABLE_INSIDER_APPIMAGE }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: ./check_tags.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - name: Install dependencies
        run: ./build/linux/deps.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - uses: actions-rust-lang/setup-rust-toolchain@v1
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - name: Download vscode artifact
        uses: actions/download-artifact@v8
        with:
          name: vscode
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - name: Build
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          npm_config_arch: ${{ matrix.npm_arch }}
        run: ./build/linux/package_bin.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - name: Prepare assets
        env:
          SHOULD_BUILD_REH: 'no'
          SHOULD_BUILD_REH_WEB: 'no'
        run: ./prepare_assets.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./release.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Update versions repo
        env:
          FORCE_UPDATE: ${{ github.event.inputs.force_version }}
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./update_version.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Upload assets
        uses: actions/upload-artifact@v7
        with:
          name: bin-${{ matrix.vscode_arch }}
          path: assets/
          retention-days: 3
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'

  reh_linux:
    needs:
      - check
      - compile
    runs-on: ubuntu-22.04
    strategy:
      fail-fast: false
      matrix:
        include:
        - slug: X64
          vscode_arch: x64
          npm_arch: x64
        - slug: ARM64
          vscode_arch: arm64
          npm_arch: arm64
        - slug: ARM32
          vscode_arch: armhf
          npm_arch: arm
        - slug: PPC64
          vscode_arch: ppc64le
          npm_arch: ppc64
        - slug: RISCV64
          vscode_arch: riscv64
          npm_arch: riscv64
        - slug: LOONG64
          vscode_arch: loong64
          npm_arch: loong64
        - slug: S390X
          vscode_arch: s390x
          npm_arch: s390x
    env:
      BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
      DISABLED: ${{ vars[format('DISABLE_INSIDER_LINUX_REH_{0}', matrix.slug)] }}
      MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
      MS_TAG: ${{ needs.check.outputs.MS_TAG }}
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
      SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
      VSCODE_ARCH: ${{ matrix.vscode_arch }}
    if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}
        if: env.DISABLED != 'yes'

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh
        if: env.DISABLED != 'yes'

      - name: Setup GCC
        uses: egor-tensin/setup-gcc@v2
        with:
          version: 10
          platform: x64
        if: env.DISABLED != 'yes'

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'
        if: env.DISABLED != 'yes'

      - name: Setup Python 3
        uses: actions/setup-python@v6
        with:
          python-version: '3.11'
        if: env.DISABLED != 'yes'

      - name: Install libkrb5-dev
        run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
        if: env.DISABLED != 'yes'

      - name: Install GH
        run: ./build/linux/install_gh.sh
        if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Check existing VSCodium tags/releases
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          CHECK_ONLY_REH: 'yes'
        run: ./check_tags.sh
        if: env.DISABLED != 'yes'

      - name: Download vscode artifact
        uses: actions/download-artifact@v8
        with:
          name: vscode
        if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')

      - name: Build
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          npm_config_arch: ${{ matrix.npm_arch }}
        run: ./build/linux/package_reh.sh
        if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./release.sh
        if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')

      - name: Upload assets
        uses: actions/upload-artifact@v7
        with:
          name: reh-linux-${{ matrix.vscode_arch }}
          path: assets/
          retention-days: 3
        if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'

  reh_alpine:
    needs:
      - check
      - compile
    runs-on: ubuntu-22.04
    strategy:
      fail-fast: false
      matrix:
        include:
        - slug: X64
          vscode_arch: x64
          npm_arch: x64
        - slug: ARM64
          vscode_arch: arm64
          npm_arch: arm64
    env:
      BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
      DISABLED: ${{ vars[format('DISABLE_INSIDER_ALPINE_REH_{0}', matrix.slug)] }}
      MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
      MS_TAG: ${{ needs.check.outputs.MS_TAG }}
      OS_NAME: alpine
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
      SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
      VSCODE_ARCH: ${{ matrix.vscode_arch }}
    if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh

      - name: Setup GCC
        uses: egor-tensin/setup-gcc@v2
        with:
          version: 10
          platform: x64

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'

      - name: Install GH
        run: ./build/linux/install_gh.sh
        if: env.SHOULD_DEPLOY == 'yes'

      - name: Check existing VSCodium tags/releases
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          CHECK_ONLY_REH: 'yes'
        run: ./check_tags.sh

      - name: Install libkrb5-dev
        run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
        if: env.SHOULD_BUILD == 'yes'

      - name: Download vscode artifact
        uses: actions/download-artifact@v8
        with:
          name: vscode
        if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')

      - name: Build
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          npm_config_arch: ${{ matrix.npm_arch }}
        run: ./build/alpine/package_reh.sh
        if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./release.sh
        if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')

      - name: Upload assets
        uses: actions/upload-artifact@v7
        with:
          name: reh-alpine-${{ matrix.vscode_arch }}
          path: assets/
          retention-days: 3
        if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'

  aur:
    needs:
      - check
      - build
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
        - package_name: vscodium-insiders-bin
        - package_name: vscodium-insiders
    if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'

    steps:
      - name: Get version
        env:
          RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
        run: echo "PACKAGE_VERSION=${RELEASE_VERSION/-*/}" >> "${GITHUB_ENV}"

      - name: Publish ${{ matrix.package_name }}
        uses: zokugun/github-actions-aur-releaser@v1
        with:
          package_name: ${{ matrix.package_name }}
          package_version: ${{ env.PACKAGE_VERSION }}
          aur_private_key: ${{ secrets.AUR_PRIVATE_KEY }}
          aur_username: ${{ secrets.AUR_USERNAME }}
          aur_email: ${{ secrets.AUR_EMAIL }}

  snap:
    needs:
      - check
      - build
    runs-on: ubuntu-latest
    env:
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SNAP_NAME: codium-insiders
    strategy:
      fail-fast: false
      matrix:
        platform:
        - amd64
        - arm64
    if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_INSIDER_SNAP != 'yes'

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh

      - uses: docker/setup-qemu-action@v4

      - uses: diddlesnaps/snapcraft-multiarch-action@v1
        with:
          path: stores/snapcraft/insider
          architecture: ${{ matrix.platform }}
        id: build

      # - uses: diddlesnaps/snapcraft-review-action@v1
      #   with:
      #     snap: ${{ steps.build.outputs.snap }}
      #     isClassic: 'true'

      - uses: svenstaro/upload-release-action@v2
        with:
          repo_name: ${{ env.ASSETS_REPOSITORY }}
          repo_token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          file: ${{ steps.build.outputs.snap }}
          tag: ${{ env.RELEASE_VERSION }}

  deploy-repo-dev:
    needs:
      - check
      - build
    runs-on: ubuntu-latest
    if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'

    steps:
      - name: Trigger repository rebuild
        uses: peter-evans/repository-dispatch@v4
        with:
          token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          repository: VSCodium/repositories-linux
          event-type: deploy


================================================
FILE: .github/workflows/insider-macos.yml
================================================
name: insider-macos

on:
  workflow_dispatch:
    inputs:
      force_version:
        type: boolean
        description: Force update version
      generate_assets:
        type: boolean
        description: Generate assets
      checkout_pr:
        type: string
        description: Checkout PR
  repository_dispatch:
    types: [insider]
  push:
    branches: [ insider ]
    paths-ignore:
    - '**/*.md'
    - 'upstream/*.json'
  pull_request:
    branches: [ insider ]
    paths-ignore:
    - '**/*.md'

env:
  APP_NAME: VSCodium
  ASSETS_REPOSITORY: ${{ github.repository }}-insiders
  BINARY_NAME: codium-insiders
  GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
  GH_REPO_PATH: ${{ github.repository }}
  ORG_NAME: ${{ github.repository_owner }}
  OS_NAME: osx
  VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
  VSCODE_QUALITY: insider

jobs:
  build:
    runs-on: ${{ matrix.runner }}
    env:
      VSCODE_ARCH: ${{ matrix.vscode_arch }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - runner: macos-15-intel
            vscode_arch: x64
          - runner: [self-hosted, macOS, ARM64]
            vscode_arch: arm64

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: . get_pr.sh

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'

      - name: Setup Python 3
        uses: actions/setup-python@v6
        with:
          python-version: '3.11'
        if: env.VSCODE_ARCH == 'x64'

      - name: Clone VSCode repo
        run: . get_repo.sh

      - name: Check PR or cron
        env:
          GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
        run: . check_cron_or_pr.sh

      - name: Check existing VSCodium tags/releases
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: . check_tags.sh
        if: env.SHOULD_DEPLOY == 'yes'

      - name: Build
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: ./build.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Prepare assets
        env:
          CERTIFICATE_OSX_APP_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_APP_PASSWORD }}
          CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }}
          CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }}
          CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }}
          CERTIFICATE_OSX_TEAM_ID: ${{ secrets.CERTIFICATE_OSX_NEW_TEAM_ID }}
        run: ./prepare_assets.sh
        if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./release.sh
        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Update versions repo
        env:
          FORCE_UPDATE: ${{ github.event.inputs.force_version }}
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./update_version.sh
        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Upload assets
        uses: actions/upload-artifact@v7
        with:
          name: bin-${{ matrix.vscode_arch }}
          path: assets/
          retention-days: 3
        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'

      - name: Clean up keychain
        if: always()
        run: |
          KEYCHAIN=$RUNNER_TEMP/build.keychain

          if [ -f "$KEYCHAIN" ];
          then
            security delete-keychain $KEYCHAIN
          fi


================================================
FILE: .github/workflows/insider-spearhead.yml
================================================
name: insider-spearhead

on:
  workflow_dispatch:
    inputs:
      new_release:
        type: boolean
        description: Force new Release
      force_dispatch:
        type: boolean
        description: Force dispatch
      dont_update:
        type: boolean
        description: Don't update VSCode
      dont_dispatch:
        type: boolean
        description: Disable dispatch
  schedule:
    - cron: '0 7 * * *'

jobs:
  build:
    runs-on: macos-14
    env:
      APP_NAME: VSCodium
      ASSETS_REPOSITORY: ${{ github.repository }}-insiders
      BINARY_NAME: codium-insiders
      GH_REPO_PATH: ${{ github.repository }}
      ORG_NAME: ${{ github.repository_owner }}
      OS_NAME: osx
      SOURCEMAPS_REPOSITORY: ${{ github.repository_owner }}/sourcemaps
      VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
      VSCODE_ARCH: arm64
      VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }}
      VSCODE_QUALITY: insider

    steps:
      - uses: actions/checkout@v6
        with:
          ref: insider

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'

      - name: Clone VSCode repo
        run: . get_repo.sh

      - name: Check existing VSCodium tags/releases
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          NEW_RELEASE: ${{ github.event.inputs.new_release }}
          IS_SPEARHEAD: 'yes'
        run: . check_tags.sh

      - name: Build
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: ./build.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Import GPG key
        uses: crazy-max/ghaction-import-gpg@v7
        with:
          gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
          passphrase: ${{ secrets.GPG_PASSPHRASE }}
          git_user_signingkey: true
          git_commit_gpgsign: true
        if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'

      - name: Update upstream version
        run: ./update_upstream.sh
        if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'

      - name: Prepare source
        run: ./prepare_src.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Upload sourcemaps
        env:
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./upload_sourcemaps.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Release source
        env:
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./release.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Dispatch builds
        uses: peter-evans/repository-dispatch@v4
        with:
          event-type: insider
        if: github.event.inputs.dont_dispatch != 'true' && (env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true')


================================================
FILE: .github/workflows/insider-windows.yml
================================================
name: insider-windows

on:
  workflow_dispatch:
    inputs:
      force_version:
        type: boolean
        description: Force update version
      generate_assets:
        type: boolean
        description: Generate assets
      checkout_pr:
        type: string
        description: Checkout PR
  repository_dispatch:
    types: [insider]
  push:
    branches: [ insider ]
    paths-ignore:
    - '**/*.md'
    - 'upstream/*.json'
  pull_request:
    branches: [ insider ]
    paths-ignore:
    - '**/*.md'

env:
  APP_NAME: VSCodium
  ASSETS_REPOSITORY: ${{ github.repository }}-insiders
  BINARY_NAME: codium-insiders
  GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
  GH_REPO_PATH: ${{ github.repository }}
  ORG_NAME: ${{ github.repository_owner }}
  OS_NAME: windows
  VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
  VSCODE_QUALITY: insider

jobs:
  check:
    runs-on: ubuntu-latest
    outputs:
      MS_COMMIT: ${{ env.MS_COMMIT }}
      MS_TAG: ${{ env.MS_TAG }}
      RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
      SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh

      - name: Clone VSCode repo
        run: ./get_repo.sh

      - name: Check PR or cron
        env:
          GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
        run: ./check_cron_or_pr.sh

      - name: Check existing VSCodium tags/releases
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          CHECK_ALL: 'yes'
        run: ./check_tags.sh

  compile:
    needs:
      - check
    runs-on: windows-2022
    defaults:
      run:
        shell: bash
    env:
      MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
      MS_TAG: ${{ needs.check.outputs.MS_TAG }}
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
      VSCODE_ARCH: 'x64'
    outputs:
      BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}
        if: env.SHOULD_BUILD == 'yes'

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh

      # - name: Setup GCC
      #   uses: egor-tensin/setup-gcc@v1
      #   with:
      #     version: 10
      #     platform: x64

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'
        if: env.SHOULD_BUILD == 'yes'

      - name: Setup Python 3
        uses: actions/setup-python@v6
        with:
          python-version: '3.11'
        if: env.SHOULD_BUILD == 'yes'

      # - name: Install libkrb5-dev
      #   run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
      #   if: env.SHOULD_BUILD == 'yes'

      - name: Clone VSCode repo
        run: ./get_repo.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Build
        env:
          SHOULD_BUILD_REH: 'no'
          SHOULD_BUILD_REH_WEB: 'no'
        run: ./build.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Compress vscode artifact
        run: |
          find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
          echo "vscode/.build/extensions/node_modules" >> vscode.txt
          echo "vscode/.git" >> vscode.txt
          tar -czf vscode.tar.gz -T vscode.txt
        if: env.SHOULD_BUILD == 'yes'

      - name: Upload vscode artifact
        uses: actions/upload-artifact@v7
        with:
          name: vscode
          path: ./vscode.tar.gz
          retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
        if: env.SHOULD_BUILD == 'yes'

  build:
    needs:
      - check
      - compile
    runs-on: windows-2022
    strategy:
      fail-fast: false
      matrix:
        vscode_arch:
          - x64
          - arm64
    defaults:
      run:
        shell: bash
    env:
      BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
      MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
      MS_TAG: ${{ needs.check.outputs.MS_TAG }}
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
      SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
      VSCODE_ARCH: ${{ matrix.vscode_arch }}
    outputs:
      RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
      SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}
        if: env.SHOULD_BUILD == 'yes'

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'
        if: env.SHOULD_BUILD == 'yes'

      - name: Setup Python 3
        uses: actions/setup-python@v6
        with:
          python-version: '3.11'
        if: env.SHOULD_BUILD == 'yes'

      - name: Check existing VSCodium tags/releases
        env:
          DISABLE_MSI: ${{ vars.DISABLE_INSIDER_MSI }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: ./check_tags.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Download vscode artifact
        uses: actions/download-artifact@v8
        with:
          name: vscode
        if: env.SHOULD_BUILD == 'yes'

      - name: Build
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          npm_config_arch: ${{ matrix.vscode_arch }}
          npm_config_target_arch: ${{ matrix.vscode_arch }}
        run: ./build/windows/package.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Prepare assets
        run: ./prepare_assets.sh
        if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

      - name: Upload unsigned artifacts
        id: upload-unsigned-artifacts
        uses: actions/upload-artifact@v7
        with:
          name: unsigned-${{ matrix.vscode_arch }}
          path: |
            assets/*.exe
            assets/*.msi
          retention-days: 1
        if: env.SHOULD_BUILD == 'yes' && vars.DISABLE_INSIDER_WINDOWS_SIGNING != 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

      - name: Signing
        uses: signpath/github-action-submit-signing-request@v2
        with:
          api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
          organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}
          project-slug: ${{ secrets.SIGNPATH_PROJECT_SLUG }}
          signing-policy-slug: ${{ secrets.SIGNPATH_POLICY_SLUG }}
          github-artifact-id: ${{ steps.upload-unsigned-artifacts.outputs.artifact-id }}
          artifact-configuration-slug: ${{ matrix.vscode_arch }}
          wait-for-completion: true
          # 3h to manually approve the request
          wait-for-completion-timeout-in-seconds: 10800
          output-artifact-directory: assets/
        if: env.SHOULD_BUILD == 'yes' && vars.DISABLE_INSIDER_WINDOWS_SIGNING != 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

      - name: Prepare checksums
        run: ./prepare_checksums.sh
        if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./release.sh
        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Update versions repo
        env:
          FORCE_UPDATE: ${{ github.event.inputs.force_version }}
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./update_version.sh
        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Upload assets
        uses: actions/upload-artifact@v7
        with:
          name: bin-${{ matrix.vscode_arch }}
          path: assets/
          retention-days: 3
        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'

  winget:
    needs: build
    runs-on: windows-2022
    defaults:
      run:
        shell: bash
    env:
      APP_IDENTIFIER: VSCodium.VSCodium.Insiders
      ASSETS_REPOSITORY: vscodium-insiders
    if: needs.build.outputs.SHOULD_DEPLOY == 'yes'

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}

      - name: Check version
        run: ./stores/winget/check_version.sh
        env:
          RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}

      - name: Release to WinGet
        uses: vedantmgoyal9/winget-releaser@main
        with:
          identifier: ${{ env.APP_IDENTIFIER }}
          version: ${{ env.RELEASE_VERSION }}
          release-repository: ${{ env.ASSETS_REPOSITORY }}
          release-tag: ${{ env.RELEASE_VERSION }}-insider
          installers-regex: '\.exe$' # only .exe files
          token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
        if: env.SHOULD_DEPLOY == 'yes'


================================================
FILE: .github/workflows/lock.yml
================================================
name: Lock Closed Threads

on:
  schedule:
    - cron: '0 2 * * *'

jobs:
  lock:
    runs-on: ubuntu-latest
    steps:
      - uses: dessant/lock-threads@v6
        with:
          github-token: ${{ github.token }}
          issue-inactive-days: '90'
          pr-inactive-days: '90'
          discussion-inactive-days: '90'
          log-output: true


================================================
FILE: .github/workflows/stable-linux.yml
================================================
name: stable-linux

on:
  workflow_dispatch:
    inputs:
      force_version:
        type: boolean
        description: Force update version
      generate_assets:
        type: boolean
        description: Generate assets
      checkout_pr:
        type: string
        description: Checkout PR
  repository_dispatch:
    types: [stable]
  push:
    branches: [ master ]
    paths-ignore:
    - '**/*.md'
    - 'upstream/*.json'
  pull_request:
    branches: [ master ]
    paths-ignore:
    - '**/*.md'

env:
  ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
  APP_NAME: VSCodium
  ASSETS_REPOSITORY: ${{ github.repository }}
  BINARY_NAME: codium
  DISABLE_UPDATE: 'yes'
  GH_REPO_PATH: ${{ github.repository }}
  ORG_NAME: ${{ github.repository_owner }}
  OS_NAME: linux
  VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
  VSCODE_QUALITY: stable

jobs:
  check:
    runs-on: ubuntu-latest
    outputs:
      MS_COMMIT: ${{ env.MS_COMMIT }}
      MS_TAG: ${{ env.MS_TAG }}
      RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
      SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh

      - name: Clone VSCode repo
        run: ./get_repo.sh

      - name: Check PR or cron
        env:
          GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
        run: ./check_cron_or_pr.sh

      - name: Check existing VSCodium tags/releases
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          CHECK_ALL: 'yes'
        run: ./check_tags.sh

  compile:
    needs:
      - check
    runs-on: ubuntu-22.04
    env:
      MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
      MS_TAG: ${{ needs.check.outputs.MS_TAG }}
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
      VSCODE_ARCH: 'x64'
    outputs:
      BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}
        if: env.SHOULD_BUILD == 'yes'

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Setup GCC
        uses: egor-tensin/setup-gcc@v2
        with:
          version: 10
          platform: x64
        if: env.SHOULD_BUILD == 'yes'

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'
        if: env.SHOULD_BUILD == 'yes'

      - name: Setup Python 3
        uses: actions/setup-python@v6
        with:
          python-version: '3.11'
        if: env.SHOULD_BUILD == 'yes'

      - name: Install libkrb5-dev
        run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
        if: env.SHOULD_BUILD == 'yes'

      - name: Clone VSCode repo
        run: ./get_repo.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Build
        env:
          SHOULD_BUILD_REH: 'no'
          SHOULD_BUILD_REH_WEB: 'no'
        run: ./build.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Compress vscode artifact
        run: |
          find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
          echo "vscode/.build/extensions/node_modules" >> vscode.txt
          echo "vscode/.git" >> vscode.txt
          tar -czf vscode.tar.gz -T vscode.txt
        if: env.SHOULD_BUILD == 'yes'

      - name: Upload vscode artifact
        uses: actions/upload-artifact@v7
        with:
          name: vscode
          path: ./vscode.tar.gz
          retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
        if: env.SHOULD_BUILD == 'yes'

  build:
    needs:
      - check
      - compile
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
        - slug: X64
          vscode_arch: x64
          npm_arch: x64
          image: vscodium/vscodium-linux-build-agent:focal-x64
        - slug: ARM64
          vscode_arch: arm64
          npm_arch: arm64
          image: vscodium/vscodium-linux-build-agent:focal-arm64
        - slug: ARM32
          vscode_arch: armhf
          npm_arch: arm
          image: vscodium/vscodium-linux-build-agent:focal-armhf
        - slug: RISCV64
          vscode_arch: riscv64
          npm_arch: riscv64
          image: vscodium/vscodium-linux-build-agent:focal-riscv64
        - slug: LOONG64
          vscode_arch: loong64
          npm_arch: loong64
          image: vscodium/vscodium-linux-build-agent:crimson-loong64
        - slug: PPC64
          vscode_arch: ppc64le
          npm_arch: ppc64
          image: vscodium/vscodium-linux-build-agent:focal-ppc64le
    container:
      image: ${{ matrix.image }}
    env:
      BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
      DISABLED: ${{ vars[format('DISABLE_STABLE_LINUX_APP_{0}', matrix.slug)] }}
      MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
      MS_TAG: ${{ needs.check.outputs.MS_TAG }}
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
      SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
      VSCODE_ARCH: ${{ matrix.vscode_arch }}
    outputs:
      RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
      SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh
        if: env.DISABLED != 'yes'

      - name: Install GH
        run: ./build/linux/install_gh.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Check existing VSCodium tags/releases
        env:
          CHECK_REH: 'no'
          DISABLE_APPIMAGE: ${{ vars.DISABLE_STABLE_APPIMAGE }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: ./check_tags.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - name: Install dependencies
        run: ./build/linux/deps.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - uses: actions-rust-lang/setup-rust-toolchain@v1
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - name: Download vscode artifact
        uses: actions/download-artifact@v8
        with:
          name: vscode
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - name: Build
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          npm_config_arch: ${{ matrix.npm_arch }}
        run: ./build/linux/package_bin.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'

      - name: Prepare assets
        env:
          SHOULD_BUILD_REH: 'no'
          SHOULD_BUILD_REH_WEB: 'no'
        run: ./prepare_assets.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./release.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Update versions repo
        env:
          FORCE_UPDATE: ${{ github.event.inputs.force_version }}
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./update_version.sh
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Upload assets
        uses: actions/upload-artifact@v7
        with:
          name: bin-${{ matrix.vscode_arch }}
          path: assets/
          retention-days: 3
        if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'

  reh_linux:
    needs:
      - check
      - compile
    runs-on: ubuntu-22.04
    strategy:
      fail-fast: false
      matrix:
        include:
        - slug: X64
          vscode_arch: x64
          npm_arch: x64
        - slug: ARM64
          vscode_arch: arm64
          npm_arch: arm64
        - slug: ARM32
          vscode_arch: armhf
          npm_arch: arm
        - slug: PPC64
          vscode_arch: ppc64le
          npm_arch: ppc64
        - slug: RISCV64
          vscode_arch: riscv64
          npm_arch: riscv64
        - slug: LOONG64
          vscode_arch: loong64
          npm_arch: loong64
        - slug: S390X
          vscode_arch: s390x
          npm_arch: s390x
    env:
      BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
      DISABLED: ${{ vars[format('DISABLE_STABLE_LINUX_REH_{0}', matrix.slug)] }}
      MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
      MS_TAG: ${{ needs.check.outputs.MS_TAG }}
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
      SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
      VSCODE_ARCH: ${{ matrix.vscode_arch }}
    if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}
        if: env.DISABLED != 'yes'

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh
        if: env.DISABLED != 'yes'

      - name: Setup GCC
        uses: egor-tensin/setup-gcc@v2
        with:
          version: 10
          platform: x64
        if: env.DISABLED != 'yes'

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'
        if: env.DISABLED != 'yes'

      - name: Setup Python 3
        uses: actions/setup-python@v6
        with:
          python-version: '3.11'
        if: env.DISABLED != 'yes'

      - name: Install libkrb5-dev
        run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
        if: env.DISABLED != 'yes'

      - name: Install GH
        run: ./build/linux/install_gh.sh
        if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Check existing VSCodium tags/releases
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          CHECK_ONLY_REH: 'yes'
        run: ./check_tags.sh
        if: env.DISABLED != 'yes'

      - name: Download vscode artifact
        uses: actions/download-artifact@v8
        with:
          name: vscode
        if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')

      - name: Build
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          npm_config_arch: ${{ matrix.npm_arch }}
        run: ./build/linux/package_reh.sh
        if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./release.sh
        if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')

      - name: Upload assets
        uses: actions/upload-artifact@v7
        with:
          name: reh-linux-${{ matrix.vscode_arch }}
          path: assets/
          retention-days: 3
        if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'

  reh_alpine:
    needs:
      - check
      - compile
    runs-on: ubuntu-22.04
    strategy:
      fail-fast: false
      matrix:
        include:
        - slug: X64
          vscode_arch: x64
          npm_arch: x64
        - slug: ARM64
          vscode_arch: arm64
          npm_arch: arm64
    env:
      BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
      DISABLED: ${{ vars[format('DISABLE_STABLE_ALPINE_REH_{0}', matrix.slug)] }}
      MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
      MS_TAG: ${{ needs.check.outputs.MS_TAG }}
      OS_NAME: alpine
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
      SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
      VSCODE_ARCH: ${{ matrix.vscode_arch }}
    if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh

      - name: Setup GCC
        uses: egor-tensin/setup-gcc@v2
        with:
          version: 10
          platform: x64

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'

      - name: Install GH
        run: ./build/linux/install_gh.sh
        if: env.SHOULD_DEPLOY == 'yes'

      - name: Check existing VSCodium tags/releases
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          CHECK_ONLY_REH: 'yes'
        run: ./check_tags.sh

      - name: Install libkrb5-dev
        run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
        if: env.SHOULD_BUILD == 'yes'

      - name: Download vscode artifact
        uses: actions/download-artifact@v8
        with:
          name: vscode
        if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')

      - name: Build
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          npm_config_arch: ${{ matrix.npm_arch }}
        run: ./build/alpine/package_reh.sh
        if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./release.sh
        if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')

      - name: Upload assets
        uses: actions/upload-artifact@v7
        with:
          name: reh-alpine-${{ matrix.vscode_arch }}
          path: assets/
          retention-days: 3
        if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'

  aur:
    needs:
      - check
      - build
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
        - package_name: vscodium
          package_type: stable
        # - package_name: vscodium-git
        #   package_type: rolling
    if: needs.check.outputs.SHOULD_DEPLOY == 'yes'

    steps:
      - name: Publish ${{ matrix.package_name }}
        uses: zokugun/github-actions-aur-releaser@v1
        with:
          package_name: ${{ matrix.package_name }}
          package_type: ${{ matrix.package_type }}
          aur_private_key: ${{ secrets.AUR_PRIVATE_KEY }}
          aur_username: ${{ secrets.AUR_USERNAME }}
          aur_email: ${{ secrets.AUR_EMAIL }}

  snap:
    needs:
      - check
      - build
    runs-on: ubuntu-latest
    env:
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SNAP_NAME: codium
    strategy:
      fail-fast: false
      matrix:
        platform:
        - amd64
        - arm64
    if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_STABLE_SNAP != 'yes'

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh

      - name: Check version
        env:
          ARCHITECTURE: ${{ matrix.platform }}
          GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
          SNAPCRAFT_STORE_CHANNEL: ${{ vars.SNAP_STORE_CHANNEL }}
          SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
        run: ./stores/snapcraft/check_version.sh

      - uses: docker/setup-qemu-action@v4
        if: env.SHOULD_BUILD == 'yes'

      - uses: diddlesnaps/snapcraft-multiarch-action@v1
        with:
          path: stores/snapcraft/stable
          architecture: ${{ matrix.platform }}
        id: build
        if: env.SHOULD_BUILD == 'yes'

      - uses: diddlesnaps/snapcraft-review-action@v1
        with:
          snap: ${{ steps.build.outputs.snap }}
          isClassic: 'true'
        if: env.SHOULD_DEPLOY_TO_RELEASE == 'yes' || env.SHOULD_DEPLOY_TO_STORE == 'yes'

      - uses: svenstaro/upload-release-action@v2
        with:
          repo_name: ${{ env.ASSETS_REPOSITORY }}
          repo_token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          file: ${{ steps.build.outputs.snap }}
          tag: ${{ env.RELEASE_VERSION }}
        if: env.SHOULD_DEPLOY_TO_RELEASE == 'yes'

      - uses: snapcore/action-publish@master
        env:
          SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
        with:
          snap: ${{ steps.build.outputs.snap }}
          release: ${{ vars.SNAP_STORE_CHANNEL }}
        if: env.SHOULD_DEPLOY_TO_STORE == 'yes'

  deploy-repo-rudy:
    needs:
      - check
      - build
    runs-on: ubuntu-latest
    if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'

    steps:
      - name: Trigger repository rebuild
        env:
          GL_PAGES_TOKEN: ${{ secrets.GL_PAGES_TOKEN }}
        run: curl -X POST --fail -F token="${GL_PAGES_TOKEN}" -F ref=master https://gitlab.com/api/v4/projects/8762263/trigger/pipeline

  deploy-repo-dev:
    needs:
      - check
      - build
    runs-on: ubuntu-latest
    if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'

    steps:
      - name: Trigger repository rebuild
        uses: peter-evans/repository-dispatch@v4
        with:
          token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          repository: VSCodium/repositories-linux
          event-type: deploy


================================================
FILE: .github/workflows/stable-macos.yml
================================================
name: stable-macos

on:
  workflow_dispatch:
    inputs:
      force_version:
        type: boolean
        description: Force update version
      generate_assets:
        type: boolean
        description: Generate assets
      checkout_pr:
        type: string
        description: Checkout PR
  repository_dispatch:
    types: [stable]
  push:
    branches: [ master ]
    paths-ignore:
    - '**/*.md'
    - 'upstream/*.json'
  pull_request:
    branches: [ master ]
    paths-ignore:
    - '**/*.md'

env:
  APP_NAME: VSCodium
  ASSETS_REPOSITORY: ${{ github.repository }}
  BINARY_NAME: codium
  GH_REPO_PATH: ${{ github.repository }}
  ORG_NAME: ${{ github.repository_owner }}
  OS_NAME: osx
  VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
  VSCODE_QUALITY: stable

jobs:
  build:
    runs-on: ${{ matrix.runner }}
    env:
      VSCODE_ARCH: ${{ matrix.vscode_arch }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - runner: macos-15-intel
            vscode_arch: x64
          - runner: [self-hosted, macOS, ARM64]
            vscode_arch: arm64

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: . get_pr.sh

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'

      - name: Setup Python 3
        uses: actions/setup-python@v6
        with:
          python-version: '3.11'
        if: env.VSCODE_ARCH == 'x64'

      - name: Clone VSCode repo
        run: . get_repo.sh

      - name: Check PR or cron
        env:
          GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
        run: . check_cron_or_pr.sh

      - name: Check existing VSCodium tags/releases
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: . check_tags.sh
        if: env.SHOULD_DEPLOY == 'yes'

      - name: Build
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: ./build.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Prepare assets
        env:
          CERTIFICATE_OSX_APP_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_APP_PASSWORD }}
          CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }}
          CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }}
          CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }}
          CERTIFICATE_OSX_TEAM_ID: ${{ secrets.CERTIFICATE_OSX_NEW_TEAM_ID }}
        run: ./prepare_assets.sh
        if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: ./release.sh
        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Update versions repo
        env:
          FORCE_UPDATE: ${{ github.event.inputs.force_version }}
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./update_version.sh
        if: env.SHOULD_DEPLOY == 'yes'

      - name: Upload assets
        uses: actions/upload-artifact@v7
        with:
          name: bin-${{ matrix.vscode_arch }}
          path: assets/
          retention-days: 3
        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'

      - name: Clean up keychain
        if: always()
        run: |
          KEYCHAIN=$RUNNER_TEMP/build.keychain

          if [ -f "$KEYCHAIN" ];
          then
            security delete-keychain $KEYCHAIN
          fi


================================================
FILE: .github/workflows/stable-spearhead.yml
================================================
name: stable-spearhead

on:
  workflow_dispatch:
    inputs:
      new_release:
        type: boolean
        description: Force new Release
      force_dispatch:
        type: boolean
        description: Force dispatch
      dont_update:
        type: boolean
        description: Don't update VSCode
  schedule:
    - cron: '0 18 * * *'

jobs:
  build:
    runs-on: macos-14
    env:
      APP_NAME: VSCodium
      ASSETS_REPOSITORY: ${{ github.repository }}
      BINARY_NAME: codium
      GH_REPO_PATH: ${{ github.repository }}
      ORG_NAME: ${{ github.repository_owner }}
      OS_NAME: osx
      SOURCEMAPS_REPOSITORY: ${{ github.repository_owner }}/sourcemaps
      VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
      VSCODE_ARCH: arm64
      VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }}
      VSCODE_QUALITY: stable

    steps:
      - uses: actions/checkout@v6

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'

      - name: Clone VSCode repo
        run: . get_repo.sh

      - name: Check existing VSCodium tags/releases
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          NEW_RELEASE: ${{ github.event.inputs.new_release }}
          IS_SPEARHEAD: 'yes'
        run: . check_tags.sh

      - name: Build
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: ./build.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Import GPG key
        uses: crazy-max/ghaction-import-gpg@v7
        with:
          gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
          passphrase: ${{ secrets.GPG_PASSPHRASE }}
          git_user_signingkey: true
          git_commit_gpgsign: true
        if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'

      - name: Update upstream version
        run: ./update_upstream.sh
        if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'

      - name: Prepare source
        run: ./prepare_src.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Upload sourcemaps
        env:
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./upload_sourcemaps.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Release source
        env:
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./release.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Dispatch builds
        uses: peter-evans/repository-dispatch@v4
        with:
          event-type: stable
        if: env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true'


================================================
FILE: .github/workflows/stable-windows.yml
================================================
name: stable-windows

on:
  workflow_dispatch:
    inputs:
      force_version:
        type: boolean
        description: Force update version
      generate_assets:
        type: boolean
        description: Generate assets
      checkout_pr:
        type: string
        description: Checkout PR
  repository_dispatch:
    types: [stable]
  push:
    branches: [ master ]
    paths-ignore:
    - '**/*.md'
    - 'upstream/*.json'
  pull_request:
    branches: [ master ]
    paths-ignore:
    - '**/*.md'

env:
  APP_NAME: VSCodium
  ASSETS_REPOSITORY: ${{ github.repository }}
  BINARY_NAME: codium
  GH_REPO_PATH: ${{ github.repository }}
  ORG_NAME: ${{ github.repository_owner }}
  OS_NAME: windows
  VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
  VSCODE_QUALITY: stable

jobs:
  check:
    runs-on: ubuntu-latest
    outputs:
      MS_COMMIT: ${{ env.MS_COMMIT }}
      MS_TAG: ${{ env.MS_TAG }}
      RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
      SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh

      - name: Clone VSCode repo
        run: ./get_repo.sh

      - name: Check PR or cron
        env:
          GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
        run: ./check_cron_or_pr.sh

      - name: Check existing VSCodium tags/releases
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          CHECK_ALL: 'yes'
        run: ./check_tags.sh

  compile:
    needs:
      - check
    runs-on: windows-2022
    defaults:
      run:
        shell: bash
    env:
      MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
      MS_TAG: ${{ needs.check.outputs.MS_TAG }}
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
      VSCODE_ARCH: 'x64'
    outputs:
      BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}
        if: env.SHOULD_BUILD == 'yes'

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh

      # - name: Setup GCC
      #   uses: egor-tensin/setup-gcc@v1
      #   with:
      #     version: 10
      #     platform: x64

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'
        if: env.SHOULD_BUILD == 'yes'

      - name: Setup Python 3
        uses: actions/setup-python@v6
        with:
          python-version: '3.11'
        if: env.SHOULD_BUILD == 'yes'

      # - name: Install libkrb5-dev
      #   run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
      #   if: env.SHOULD_BUILD == 'yes'

      - name: Clone VSCode repo
        run: ./get_repo.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Build
        env:
          SHOULD_BUILD_REH: 'no'
          SHOULD_BUILD_REH_WEB: 'no'
        run: ./build.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Compress vscode artifact
        run: |
          find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
          echo "vscode/.build/extensions/node_modules" >> vscode.txt
          echo "vscode/.git" >> vscode.txt
          tar -czf vscode.tar.gz -T vscode.txt
        if: env.SHOULD_BUILD == 'yes'

      - name: Upload vscode artifact
        uses: actions/upload-artifact@v7
        with:
          name: vscode
          path: ./vscode.tar.gz
          retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
        if: env.SHOULD_BUILD == 'yes'

  build:
    needs:
      - check
      - compile
    runs-on: windows-2022
    strategy:
      fail-fast: false
      matrix:
        vscode_arch:
          - x64
          - arm64
    defaults:
      run:
        shell: bash
    env:
      BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
      MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
      MS_TAG: ${{ needs.check.outputs.MS_TAG }}
      RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
      SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
      SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
      VSCODE_ARCH: ${{ matrix.vscode_arch }}
    outputs:
      RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
      SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}
        if: env.SHOULD_BUILD == 'yes'

      - name: Switch to relevant branch
        env:
          PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
        run: ./get_pr.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Setup Node.js environment
        uses: actions/setup-node@v6
        with:
          node-version-file: '.nvmrc'
        if: env.SHOULD_BUILD == 'yes'

      - name: Setup Python 3
        uses: actions/setup-python@v6
        with:
          python-version: '3.11'
        if: env.SHOULD_BUILD == 'yes'

      - name: Check existing VSCodium tags/releases
        env:
          DISABLE_MSI: ${{ vars.DISABLE_STABLE_MSI }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: ./check_tags.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Download vscode artifact
        uses: actions/download-artifact@v8
        with:
          name: vscode
        if: env.SHOULD_BUILD == 'yes'

      - name: Build
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          npm_config_arch: ${{ matrix.vscode_arch }}
          npm_config_target_arch: ${{ matrix.vscode_arch }}
        run: ./build/windows/package.sh
        if: env.SHOULD_BUILD == 'yes'

      - name: Prepare assets
        run: ./prepare_assets.sh
        if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

      - name: Upload unsigned artifacts
        id: upload-unsigned-artifacts
        uses: actions/upload-artifact@v7
        with:
          name: unsigned-${{ matrix.vscode_arch }}
          path: |
            assets/*.exe
            assets/*.msi
          retention-days: 1
        if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

      - name: Signing
        uses: signpath/github-action-submit-signing-request@v2
        with:
          api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
          organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}
          project-slug: ${{ secrets.SIGNPATH_PROJECT_SLUG }}
          signing-policy-slug: ${{ secrets.SIGNPATH_POLICY_SLUG }}
          github-artifact-id: ${{ steps.upload-unsigned-artifacts.outputs.artifact-id }}
          artifact-configuration-slug: ${{ matrix.vscode_arch }}
          wait-for-completion: true
          # 8h to manually approve the request
          wait-for-completion-timeout-in-seconds: 28800
          output-artifact-directory: assets/
        if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

      - name: Prepare checksums
        run: ./prepare_checksums.sh
        if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: ./release.sh
        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Update versions repo
        env:
          FORCE_UPDATE: ${{ github.event.inputs.force_version }}
          GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
          GITHUB_USERNAME: ${{ github.repository_owner }}
        run: ./update_version.sh
        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'

      - name: Upload assets
        uses: actions/upload-artifact@v7
        with:
          name: bin-${{ matrix.vscode_arch }}
          path: assets/
          retention-days: 3
        if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'

  winget:
    needs: build
    runs-on: windows-2022
    defaults:
      run:
        shell: bash
    env:
      APP_IDENTIFIER: VSCodium.VSCodium
    if: needs.build.outputs.SHOULD_DEPLOY == 'yes'

    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ env.GITHUB_BRANCH }}

      - name: Check version
        run: ./stores/winget/check_version.sh
        env:
          RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}

      - name: Release to WinGet
        uses: vedantmgoyal9/winget-releaser@main
        with:
          identifier: ${{ env.APP_IDENTIFIER }}
          version: ${{ env.RELEASE_VERSION }}
          release-tag: ${{ env.RELEASE_VERSION }}
          installers-regex: '\.exe$' # only .exe files
          token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
        if: env.SHOULD_DEPLOY == 'yes'


================================================
FILE: .github/workflows/stale.yml
================================================
name: Stale Issues

on:
  schedule:
    - cron: '0 1 * * *'

permissions:
  issues: write

jobs:
  stale:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/stale@v10
        with:
          days-before-stale: 180
          days-before-close: 30
          stale-issue-label: stale
          operations-per-run: 1024
          stale-issue-message: >
            This issue has been automatically marked as stale. **If this issue is still affecting you, please leave any comment**, and we'll keep it open. If you have any new additional information, please include it with your comment!
          close-issue-message: >
            This issue has been closed due to inactivity, and will not be monitored. If this is a bug and you can reproduce this issue, please open a new issue.
          exempt-issue-labels: discussion,never-stale
          only-pr-labels: needs-information


================================================
FILE: .gitignore
================================================
vscode*
VS*/*
VSCode*
VSCodium*
.DS_Store
*.env
assets/
build/linux/appimage/out
build/linux/appimage/pkg2appimage.AppDir
build/linux/appimage/pkg2appimage-*.AppImage
build/linux/appimage/pkg2appimage.AppImage
build/linux/appimage/squashfs-root
build/linux/appimage/VSCodium
build/windows/msi/releasedir
build/windows/msi/Files*.wxs
build/windows/msi/Files*.wixobj
sourcemaps/
stores/snapcraft/insider/*.snap
stores/snapcraft/stable/*.snap
font-size/node_modules/
font-size/generate-css.js


================================================
FILE: .nvmrc
================================================
22.22.0


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
  and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
  community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or advances of
  any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
  without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
vscodium@protonmail.com.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series of
actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within the
community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].


[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing

:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:

#### Table Of Contents

- [Code of Conduct](#code-of-conduct)
- [Reporting Bugs](#reporting-bugs)
- [Making Changes](#making-changes)

## Code of Conduct

This project and everyone participating in it is governed by the [VSCodium Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.

## Reporting Bugs

### Before Submitting an Issue

Before creating bug reports, please check existing issues and [the Troubleshooting page](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md) as you might find out that you don't need to create one.
When you are creating a bug report, please include as many details as possible. Fill out [the required template](https://github.com/VSCodium/vscodium/issues/new?&labels=bug&&template=bug_report.md), the information it asks for helps us resolve issues faster.

## Making Changes

If you want to make changes, please read [the Build page](./docs/howto-build.md).

### Building VSCodium

To build VSCodium, please follow the command found in the section [`Build Scripts`](./docs/howto-build.md#build-scripts).

### Updating patches

If you want to update the existing patches, please follow the section [`Patch Update Process - Semi-Automated`](./docs/howto-build.md#patch-update-process-semiauto).

### Add a new patch

- first, you need to build VSCodium
- then use the command `./dev/patch.sh <your patch name>`, to initiate a new patch
- when the script pauses at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
- run `npm run watch`
- run `./script/code.sh`
- make your changes
- press any key to continue the script `patch.sh`


================================================
FILE: FUNDING.json
================================================
{
  "drips": {
    "ethereum": {
      "ownedBy": "0x7806393Cb27692C6A52eE3D5338A75cECD168219"
    }
  }
}


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2018-present The VSCodium contributors
Copyright (c) 2018-present Peter Squicciarini
Copyright (c) 2015-present 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.

================================================
FILE: README.md
================================================
<div id="vscodium-logo" align="center">
    <br />
    <img src="./icons/stable/codium_cnl.svg" alt="VSCodium Logo" width="200"/>
    <h1>VSCodium</h1>
    <h3>Free/Libre Open Source Software Binaries of Visual Studio Code</h3>
</div>

<div id="badges" align="center">

[![current release](https://img.shields.io/github/release/vscodium/vscodium.svg)](https://github.com/vscodium/vscodium/releases)
[![license](https://img.shields.io/github/license/VSCodium/vscodium.svg)](https://github.com/VSCodium/vscodium/blob/master/LICENSE)
[![Gitter](https://img.shields.io/gitter/room/vscodium/vscodium.svg)](https://gitter.im/VSCodium/Lobby)
[![codium](https://snapcraft.io//codium/badge.svg)](https://snapcraft.io/codium)
[![codium](https://snapcraft.io//codium/trending.svg?name=0)](https://snapcraft.io/codium)

[![build status (linux)](https://img.shields.io/github/actions/workflow/status/VSCodium/vscodium/stable-linux.yml?branch=master&label=build%28linux%29)](https://github.com/VSCodium/vscodium/actions/workflows/stable-linux.yml?query=branch%3Amaster)
[![build status (macos)](https://img.shields.io/github/actions/workflow/status/VSCodium/vscodium/stable-macos.yml?branch=master&label=build%28macOS%29)](https://github.com/VSCodium/vscodium/actions/workflows/stable-macos.yml?query=branch%3Amaster)
[![build status (windows)](https://img.shields.io/github/actions/workflow/status/VSCodium/vscodium/stable-windows.yml?branch=master&label=build%28windows%29)](https://github.com/VSCodium/vscodium/actions/workflows/stable-windows.yml?query=branch%3Amaster)

</div>

**This is not a fork. This is a repository of scripts to automatically build [Microsoft's `vscode` repository](https://github.com/microsoft/vscode) into freely-licensed binaries with a community-driven default configuration.**

## Table of Contents

- [Download/Install](#download-install)
  - [Install with Brew](#install-with-brew)
  - [Install with Windows Package Manager (WinGet)](#install-with-winget)
  - [Install with Chocolatey](#install-with-choco)
  - [Install with Scoop](#install-with-scoop)
  - [Install with snap](#install-with-snap)
  - [Install with Package Manager](#install-with-package-manager)
  - [Install on Arch Linux](#install-on-arch-linux)
  - [Flatpak Option](#flatpak)
- [Build](#build)
- [Why Does This Exist](#why)
- [More Info](#more-info)
- [Supported Platforms](#supported-platforms)

## <a id="download-install"></a>Download/Install

:tada: :tada:
Download latest release here:
[stable](https://github.com/VSCodium/vscodium/releases) or
[insiders](https://github.com/VSCodium/vscodium-insiders/releases)
:tada: :tada:

[More info / helpful tips are here.](https://github.com/VSCodium/vscodium/blob/master/docs/index.md)


#### <a id="install-with-brew"></a>Install with Brew (Mac)

If you are on a Mac and have [Homebrew](https://brew.sh/) installed:
```bash
# stable
brew install --cask vscodium

# insiders
brew install --cask vscodium@insiders
```

#### <a id="install-with-winget"></a>Install with Windows Package Manager (WinGet)

If you use Windows and have [Windows Package Manager](https://github.com/microsoft/winget-cli) installed:
```cmd
:: stable
winget install -e --id VSCodium.VSCodium

:: insider
winget install -e --id VSCodium.VSCodium.Insiders
```

#### <a id="install-with-choco"></a>Install with Chocolatey (Windows)

If you use Windows and have [Chocolatey](https://chocolatey.org) installed (thanks to [@Thilas](https://github.com/Thilas)):
```cmd
:: stable
choco install vscodium

:: insider
choco install vscodium-insiders
```

#### <a id="install-with-scoop"></a>Install with Scoop (Windows)

If you use Windows and have [Scoop](https://scoop.sh) installed:
```bash
scoop bucket add extras
scoop install vscodium
```

#### <a id="install-with-snap"></a>Install with snap (GNU/Linux)

VSCodium is available in the [Snap Store](https://snapcraft.io/) as [Codium](https://snapcraft.io/codium), thanks to the help of the [Snapcrafters](https://github.com/snapcrafters/codium) community.
If your GNU/Linux distribution has support for [snaps](https://snapcraft.io/docs/installing-snapd):

```bash
snap install codium --classic
```

#### <a id="install-with-package-manager"></a>Install with Package Manager (GNU/Linux)

You can always install using the downloads (deb, rpm, tar) on the releases page for [stable](https://github.com/VSCodium/vscodium/releases) or [insiders](https://github.com/VSCodium/vscodium-insiders/releases), but you can also install using your favorite package manager and get automatic updates.

[@paulcarroty](https://github.com/paulcarroty) has set up a repository with instructions for `apt`, `dnf` and `zypper` [here](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo).

Any issues installing VSCodium using your package manager should be directed to that repository's issue tracker.

#### <a id="install-on-arch-linux"></a>Install on Arch Linux

VSCodium is available in [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository), maintained by [@binex-dsk](https://github.com/binex-dsk) as package [vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/) (stable) and as [vscodium-insiders-bin](https://aur.archlinux.org/packages/vscodium-insiders-bin).

If you want to save disk space by having VSCodium use the Electron system-wide, you also have [vscodium-electron](https://aur.archlinux.org/packages/vscodium-electron),
maintained by [@m00nw4tch3r](https://aur.archlinux.org/account/m00nw4tch3r).

An alternative package [vscodium-git](https://aur.archlinux.org/packages/vscodium-git/), maintained by [@cedricroijakkers](https://github.com/cedricroijakkers), is also available should you wish to compile from source yourself.

#### <a id="flatpak"></a>Flatpak Option (GNU/Linux)

VSCodium is available as a Flatpak app [here](https://flathub.org/apps/details/com.vscodium.codium) and the build repo is [here](https://github.com/flathub/com.vscodium.codium).
If your distribution has support for [flatpak](https://flathub.org), and you have enabled the [flathub repo](https://flatpak.org/setup/):

```bash
flatpak install flathub com.vscodium.codium
flatpak run com.vscodium.codium
```

## <a id="build"></a>Build

Build instructions can be found [here](https://github.com/VSCodium/vscodium/blob/master/docs/howto-build.md)

## <a id="why"></a>Why Does This Exist

This repository contains build files to generate free release binaries of Microsoft's Visual Studio Code. When we speak of "free software", we're talking about freedom, not price.

Microsoft's releases of Visual Studio Code are licensed under [this not-FLOSS license](https://code.visualstudio.com/license) and contain telemetry/tracking. According to [this comment](https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005) from a Visual Studio Code maintainer:

> When we [Microsoft] build Visual Studio Code, we do exactly this. We clone the vscode repository, we lay down a customized product.json that has Microsoft specific functionality (telemetry, gallery, logo, etc.), and then produce a build that we release under our license.
>
> When you clone and build from the vscode repo, none of these endpoints are configured in the default product.json. Therefore, you generate a "clean" build, without the Microsoft customizations, which is by default licensed under the MIT license

This repo exists so that you don't have to download+build from source. The build scripts in this repo clone Microsoft's vscode repo, run the build commands, and upload the resulting binaries to [GitHub releases](https://github.com/VSCodium/vscodium/releases). __These binaries are licensed under the MIT license. Telemetry is disabled.__

If you want to build from source yourself, head over to [Microsoft's vscode repo](https://github.com/Microsoft/vscode) and follow their [instructions](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#build-and-run). This repo exists to make it easier to get the latest version of MIT-licensed Visual Studio Code.

Microsoft's build process (which we are running to build the binaries) does download additional files. Those packages downloaded during build are:

- Pre-built extensions from the GitHub:
  - [ms-vscode.js-debug-companion](https://github.com/microsoft/vscode-js-debug-companion)
  - [ms-vscode.js-debug](https://github.com/microsoft/vscode-js-debug)
  - [ms-vscode.vscode-js-profile-table](https://github.com/microsoft/vscode-js-profile-visualizer)
- From [Electron releases](https://github.com/electron/electron/releases) (using [gulp-atom-electron](https://github.com/joaomoreno/gulp-atom-electron))
  - electron
  - ffmpeg

## <a id="more-info"></a>More Info

### Documentation

For more information on getting all the telemetry disabled, tips for migrating from Visual Studio Code to VSCodium and more, have a look at [the Docs page](https://github.com/VSCodium/vscodium/blob/master/docs/index.md) page.

### Troubleshooting

If you have any issue, please check [the Troubleshooting page](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md) or the existing issues.

### Extensions and the Marketplace

According to the Visual Studio Marketplace [Terms of Use](https://aka.ms/vsmarketplace-ToU), _you may only install and use Marketplace Offerings with Visual Studio Products and Services._ For this reason, VSCodium uses [open-vsx.org](https://open-vsx.org/), an open source registry for Visual Studio Code extensions. See the [Extensions + Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#extensions-marketplace) section on the Docs page for more details.

Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See [this note](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#proprietary-debugging-tools) on the Docs page for what's been found so far and possible workarounds.

### How are the VSCodium binaries built?

If you would like to see the commands we run to build `vscode` into VSCodium binaries, have a look at the workflow files in `.github/workflows` for Windows, GNU/Linux and macOS. These build files call all the other scripts in the repo. If you find something that doesn't make sense, feel free to ask about it [on Gitter](https://gitter.im/VSCodium/Lobby).

The builds are run every day, but exit early if there isn't a new release from Microsoft.

## <a id="supported-platforms"></a>Supported Platforms

The minimal version is limited by the core component Electron, you may want to check its [platform prerequisites](https://www.electronjs.org/docs/latest/development/build-instructions-gn#platform-prerequisites).

- [x] macOS (`zip`, `dmg`) macOS 10.15 or newer x64
- [x] macOS (`zip`, `dmg`) macOS 11.0 or newer arm64
- [x] GNU/Linux x64 (`deb`, `rpm`, `AppImage`, `snap`, `tar.gz`)
- [x] GNU/Linux arm64 (`deb`, `rpm`, `snap`, `tar.gz`)
- [x] GNU/Linux armhf (`deb`, `rpm`, `tar.gz`)
- [x] GNU/Linux riscv64 (`tar.gz`)
- [x] GNU/Linux loong64 (`tar.gz`)
- [x] GNU/Linux ppc64le (`tar.gz`)
- [x] Windows 10 / Server 2012 R2 or newer x64
- [x] Windows 10 / Server 2012 R2 or newer arm64

## <a id="thanks"></a>Special thanks

<table>
  <tr>
    <td><a href="https://github.com/jaredreich" target="_blank">@jaredreich</a></td>
    <td>for the logo</td>
  </tr>
  <tr>
    <td><a href="https://github.com/PalinuroSec" target="_blank">@PalinuroSec</a></td>
    <td>for CDN and domain name</td>
  </tr>
  <tr>
    <td><a href="https://www.macstadium.com" target="_blank"><img src="https://images.prismic.io/macstadium/66fbce64-707e-41f3-b547-241908884716_MacStadium_Logo.png?w=128&q=75" width="128" height="49" alt="MacStadium logo" /></a></td>
    <td>for providing a Mac mini M1</td>
  </tr>
  <tr>
    <td><a href="https://github.com/daiyam" target="_blank">@daiyam</a></td>
    <td>for macOS certificate</td>
  </tr>
  <tr>
    <td><a href="https://signpath.org/" target="_blank"><img src="https://avatars.githubusercontent.com/u/34448643" height="30" alt="SignPath logo" /></a></td>
    <td>free code signing on Windows provided by <a href="https://signpath.io/" target="_blank">SignPath.io</a>, certificate by <a href="https://signpath.org/" target="_blank">SignPath Foundation</a></td>
  </tr>
</table>

## <a id="license"></a>License

[MIT](https://github.com/VSCodium/vscodium/blob/master/LICENSE)


================================================
FILE: announcements-builtin.json
================================================
[
]


================================================
FILE: announcements-extra.json
================================================
[
  {
    "id": "#2668",
    "title": "[Windows] broken update on 1.107, need manual update",
    "url": "https://github.com/VSCodium/vscodium/issues/2668"
  }
]


================================================
FILE: build/alpine/package_reh.sh
================================================
#!/usr/bin/env bash
# shellcheck disable=SC1091

set -ex

if [[ "${CI_BUILD}" == "no" ]]; then
  exit 1
fi

# include common functions
. ./utils.sh

mkdir -p assets

tar -xzf ./vscode.tar.gz

cd vscode || { echo "'vscode' dir not found"; exit 1; }

export VSCODE_PLATFORM='alpine'
export VSCODE_SKIP_NODE_VERSION_CHECK=1

VSCODE_HOST_MOUNT="$( pwd )"
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:alpine-${VSCODE_ARCH}"

export VSCODE_HOST_MOUNT VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME

if [[ -d "../patches/alpine/reh/" ]]; then
  for file in "../patches/alpine/reh/"*.patch; do
    if [[ -f "${file}" ]]; then
      apply_patch "${file}"
    fi
  done
fi

for i in {1..5}; do # try 5 times
  npm ci && break
  if [[ $i == 5 ]]; then
    echo "Npm install failed too many times" >&2
    exit 1
  fi
  echo "Npm install failed $i, trying again..."
done

node build/azure-pipelines/distro/mixin-npm.ts

if [[ "${VSCODE_ARCH}" == "x64" ]]; then
  PA_NAME="linux-alpine"
else
  PA_NAME="alpine-arm64"
fi

if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
  echo "Building REH"
  npm run gulp minify-vscode-reh
  npm run gulp "vscode-reh-${PA_NAME}-min-ci"

  pushd "../vscode-reh-${PA_NAME}"

  echo "Archiving REH"
  tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .

  popd
fi

if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
  echo "Building REH-web"
  npm run gulp minify-vscode-reh-web
  npm run gulp "vscode-reh-web-${PA_NAME}-min-ci"

  pushd "../vscode-reh-web-${PA_NAME}"

  echo "Archiving REH-web"
  tar czf "../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .

  popd
fi

cd ..

npm install -g checksum

sum_file() {
  if [[ -f "${1}" ]]; then
    echo "Calculating checksum for ${1}"
    checksum -a sha256 "${1}" > "${1}".sha256
    checksum "${1}" > "${1}".sha1
  fi
}

cd assets

for FILE in *; do
  if [[ -f "${FILE}" ]]; then
    sum_file "${FILE}"
  fi
done

cd ..


================================================
FILE: build/linux/appimage/build.sh
================================================
#!/usr/bin/env bash

set -ex

CALLER_DIR=$( pwd )

cd "$( dirname "${BASH_SOURCE[0]}" )"

if [[ "${VSCODE_ARCH}" == "x64" ]]; then
  GITHUB_RESPONSE=$( curl --silent --location "https://api.github.com/repos/AppImage/pkg2appimage/releases/latest" )
  APPIMAGE_URL=$( echo "${GITHUB_RESPONSE}" | jq --raw-output '.assets | map(select( .name | test("x86_64.AppImage(?!.zsync)"))) | map(.browser_download_url)[0]' )

  if [[ -z "${APPIMAGE_URL}" ]]; then
    echo "The url for pkg2appimage.AppImage hasn't been found"
    exit 1
  fi

  wget -c "${APPIMAGE_URL}" -O pkg2appimage.AppImage

  chmod +x ./pkg2appimage.AppImage

  ./pkg2appimage.AppImage --appimage-extract && mv ./squashfs-root ./pkg2appimage.AppDir

  # add update's url
  if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
    sed -i 's/generate_type2_appimage/generate_type2_appimage -u "gh-releases-zsync|VSCodium|vscodium-insiders|latest|*.AppImage.zsync"/' pkg2appimage.AppDir/AppRun
  else
    sed -i 's/generate_type2_appimage/generate_type2_appimage -u "gh-releases-zsync|VSCodium|vscodium|latest|*.AppImage.zsync"/' pkg2appimage.AppDir/AppRun
  fi
  # remove check so build in docker can succeed
  sed -i 's/grep docker/# grep docker/' pkg2appimage.AppDir/usr/share/pkg2appimage/functions.sh

  APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"

  if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
    sed -i "s|@@NAME@@|${APP_NAME}-Insiders|g" recipe.yml
    sed -i "s|@@APPNAME@@|${BINARY_NAME}|g" recipe.yml
    sed -i "s|@@ICON@@|${APP_NAME_LC}-insiders|g" recipe.yml
  else
    sed -i "s|@@NAME@@|${APP_NAME}|g" recipe.yml
    sed -i "s|@@APPNAME@@|${BINARY_NAME}|g" recipe.yml
    sed -i "s|@@ICON@@|${APP_NAME_LC}|g" recipe.yml
  fi

  # workaround that enforces x86 ARCH for pkg2appimage having /__w/vscodium/vscodium/build/linux/appimage/VSCodium/VSCodium.AppDir/usr/share/codium/resources/app/node_modules/rc/index.js is of architecture armhf
  export ARCH=x86_64
  bash -ex pkg2appimage.AppDir/AppRun recipe.yml

  rm -f pkg2appimage-*.AppImage
  rm -rf pkg2appimage.AppDir
  rm -rf VSCodium*
fi

cd "${CALLER_DIR}"


================================================
FILE: build/linux/appimage/recipe.yml
================================================
# Based on
# https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml
#
# On a Debian/Ubuntu system:
# wget -c "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage"
# bash -ex pkg2appimage VSCodium

app: @@NAME@@

ingredients:
  packages:
    - code
    - libgconf2-4
  dist: trusty
  sources:
    - deb http://archive.ubuntu.com/ubuntu/ trusty main universe
  script:
    - pwd
    - cp ../../../../vscode/.build/linux/deb/amd64/deb/*.deb .
    - ls @@APPNAME@@_*.deb | cut -d _ -f 2 > VERSION

script:
  - sed -i -e 's|/usr/share/pixmaps/||g' usr/share/applications/@@APPNAME@@.desktop
  - cp usr/share/applications/@@APPNAME@@.desktop .
  - cp usr/share/pixmaps/@@ICON@@.png .
  - /usr/bin/convert @@ICON@@.png -resize 512x512 usr/share/icons/hicolor/512x512/apps/@@ICON@@.png
  - /usr/bin/convert @@ICON@@.png -resize 256x256 usr/share/icons/hicolor/256x256/apps/@@ICON@@.png
  - /usr/bin/convert @@ICON@@.png -resize 128x128 usr/share/icons/hicolor/128x128/apps/@@ICON@@.png
  - /usr/bin/convert @@ICON@@.png -resize 64x64 usr/share/icons/hicolor/64x64/apps/@@ICON@@.png
  - /usr/bin/convert @@ICON@@.png -resize 48x48 usr/share/icons/hicolor/48x48/apps/@@ICON@@.png
  - /usr/bin/convert @@ICON@@.png -resize 32x32 usr/share/icons/hicolor/32x32/apps/@@ICON@@.png
  - ( cd usr/bin/ ; ln -s ../share/@@APPNAME@@/@@APPNAME@@  . )
  - rm -rf usr/lib/x86_64-linux-gnu
  - rm -f lib/x86_64-linux-gnu/libglib*
  - cat > AppRun <<\EOF
  - #!/bin/sh
  - HERE="$(dirname "$(readlink -f "${0}")")"
  - export PATH="${HERE}"/usr/bin/:"${HERE}"/usr/sbin/:"${HERE}"/usr/games/:"${HERE}"/bin/:"${HERE}"/sbin/:"${PATH}"
  - export LD_LIBRARY_PATH="${HERE}"/usr/lib/:"${HERE}"/usr/lib32/:"${HERE}"/usr/lib64/:"${HERE}"/lib/:"${HERE}"/lib/i386-linux-gnu/:"${HERE}"/lib/x86_64-linux-gnu/:"${HERE}"/lib32/:"${HERE}"/lib64/:"${LD_LIBRARY_PATH}"
  - export XDG_DATA_DIRS="${HERE}"/usr/share/:"${XDG_DATA_DIRS}"
  - export PERLLIB="${HERE}"/usr/share/perl5/:"${HERE}"/usr/lib/perl5/:"${PERLLIB}"
  - export GSETTINGS_SCHEMA_DIR="${HERE}"/usr/share/glib-2.0/schemas/:"${GSETTINGS_SCHEMA_DIR}"
  - export QT_PLUGIN_PATH="${HERE}"/usr/lib/qt4/plugins/:"${HERE}"/usr/lib/i386-linux-gnu/qt4/plugins/:"${HERE}"/usr/lib/x86_64-linux-gnu/qt4/plugins/:"${HERE}"/usr/lib32/qt4/plugins/:"${HERE}"/usr/lib64/qt4/plugins/:"${HERE}"/usr/lib/qt5/plugins/:"${HERE}"/usr/lib/i386-linux-gnu/qt5/plugins/:"${HERE}"/usr/lib/x86_64-linux-gnu/qt5/plugins/:"${HERE}"/usr/lib32/qt5/plugins/:"${HERE}"/usr/lib64/qt5/plugins/:"${QT_PLUGIN_PATH}"
  - EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's|%.||g')
  - exec ${EXEC} "$@"
  - EOF


================================================
FILE: build/linux/deps.sh
================================================
#!/usr/bin/env bash

set -ex

sudo apt-get update -y

sudo apt-get install -y libkrb5-dev

if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
  sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu crossbuild-essential-arm64
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
  sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf crossbuild-essential-armhf
fi


================================================
FILE: build/linux/install_gh.sh
================================================
#!/usr/bin/env bash

set -ex

GH_ARCH="amd64"

for i in {1..5}; do
  TAG=$( curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" 2>/dev/null | jq --raw-output '.tag_name' )

  if [[ $? == 0 && "${TAG}" != "null" ]]; then
    break
  fi

  if [[ $i == 5 ]]; then
    echo "GH install failed too many times" >&2
    exit 1
  fi

  echo "GH install failed $i, trying again..."

  sleep $(( 15 * (i + 1)))
done

VERSION="${TAG#v}"

curl --retry 12 --retry-delay 120 -sSL "https://github.com/cli/cli/releases/download/${TAG}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"

tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"

cp "gh_${VERSION}_linux_${GH_ARCH}/bin/gh" /usr/local/bin/

gh --version


================================================
FILE: build/linux/install_nodejs.sh
================================================
#!/usr/bin/env bash

set -ex

NODEJS_VERSION=$( cat .nvmrc )

curl -fsSL "${NODEJS_SITE}${NODEJS_URLROOT}/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-${NODEJS_ARCH}${NODEJS_URLSUFFIX}.tar.xz" -o node.tar.xz

tar -xf node.tar.xz

sudo mv "node-v${NODEJS_VERSION}-linux-${NODEJS_ARCH}${NODEJS_URLSUFFIX}" /usr/local/node

echo "/usr/local/node/bin" >> $GITHUB_PATH


================================================
FILE: build/linux/loong64/electron.sh
================================================
#!/usr/bin/env bash

set -ex

export ELECTRON_VERSION="39.2.3"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"


================================================
FILE: build/linux/loong64/electron.sha256sums
================================================
d26b2189e7466a08c73861d0225c9b28730fdfc30918f3ea70853b43a2581dc4 *chromedriver-v39.2.3-linux-loong64.zip
8cc36f7468f5b2d98cde3f73c10c535555754c54be43e45c320a382c35b8e466 *electron-v39.2.3-linux-loong64.zip
f6e7462d6fd795ae2b08344ee0fdca817eba148b62a62717b3f512c845d96a64 *ffmpeg-v39.2.3-linux-loong64.zip
b122599dc84b81526ba4eecbca4794f3a2d25300242ad3829d1445cb6948f470 *hunspell-dictionaries.zip
76ef17d2810df5e77c5071863e2a375df914cfb7a362ad0582ee0eedca2441b9 *libcxx-headers.zip
9b61ba9f0780a57ee2749f7963759395784eadcaccc54af313de1a540240298e *libcxx-objects-v39.2.3-linux-loong64.zip
9ae64aff9e391eae401142e55654b5b8cf54d0611b1ecb540f2f4e89a2b4f772 *libcxxabi-headers.zip
7d7e6e08c84aa38b74037f5910534918bc792ffbe2ca6d667067f587f27f5118 *mksnapshot-v39.2.3-linux-loong64.zip
db48f8a9d2271e8b3a1c3f26ea1ae9bd489deb1b464b6ae424a15d5df7529fdc *node-v39.2.3-headers.tar.gz


================================================
FILE: build/linux/loong64/ripgrep.sh
================================================
#!/usr/bin/env bash

# When installing @vscode/ripgrep, it will try to download prebuilt ripgrep binary from https://github.com/microsoft/ripgrep-prebuilt,
# however, loong64 is not a supported architecture and x86 will be picked as fallback, so we need to replace it with a native one.

if [ "$#" -ne 1 ]; then
    echo "Usage: $0 <path_to_node_modules>"
    exit 1
fi

RG_PATH="$1/@vscode/ripgrep/bin/rg"
RG_VERSION="14.1.1"

echo "Replacing ripgrep binary with loong64 one"

rm "${RG_PATH}"
curl --silent --fail -L https://github.com/darkyzhou/ripgrep-loongarch64-musl/releases/download/${RG_VERSION}/rg -o "${RG_PATH}"
chmod +x "${RG_PATH}"


================================================
FILE: build/linux/package_bin.sh
================================================
#!/usr/bin/env bash
# shellcheck disable=SC1091

set -ex

if [[ "${CI_BUILD}" == "no" ]]; then
  exit 1
fi

# include common functions
. ./utils.sh

tar -xzf ./vscode.tar.gz

chown -R root:root vscode

cd vscode || { echo "'vscode' dir not found"; exit 1; }

export VSCODE_PLATFORM='linux'
export VSCODE_SKIP_NODE_VERSION_CHECK=1
export VSCODE_SYSROOT_PREFIX='-glibc-2.28-gcc-10.5.0'

if [[ "${VSCODE_ARCH}" == "arm64" || "${VSCODE_ARCH}" == "armhf" ]]; then
  export VSCODE_SKIP_SYSROOT=1
  # export USE_GNUPP2A=1
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
  export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
  export VSCODE_SYSROOT_VERSION='20240129-253798'
  export ELECTRON_SKIP_BINARY_DOWNLOAD=1
  export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
  export VSCODE_SKIP_SETUPENV=1
  export VSCODE_ELECTRON_REPOSITORY='lex-ibm/electron-ppc64le-build-scripts'
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
  export VSCODE_ELECTRON_REPOSITORY='riscv-forks/electron-riscv-releases'
  export ELECTRON_SKIP_BINARY_DOWNLOAD=1
  export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
  export VSCODE_SKIP_SETUPENV=1
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
  export VSCODE_ELECTRON_REPOSITORY='darkyzhou/electron-loong64'
  export ELECTRON_SKIP_BINARY_DOWNLOAD=1
  export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
  export VSCODE_SKIP_SETUPENV=1
fi

if [[ -f "../build/linux/${VSCODE_ARCH}/electron.sh" ]]; then
  # add newline at the end of the file
  echo "" >> build/checksums/electron.txt

  if [[ -f "../build/linux/${VSCODE_ARCH}/electron.sha256sums" ]]; then
    cat "../build/linux/${VSCODE_ARCH}/electron.sha256sums" >> build/checksums/electron.txt
  fi

  # shellcheck disable=SC1090
  source "../build/linux/${VSCODE_ARCH}/electron.sh"

  TARGET=$( npm config get target )

  # Only fails at different major versions
  if [[ "${ELECTRON_VERSION%%.*}" != "${TARGET%%.*}" ]]; then
    # Fail the pipeline if electron target doesn't match what is used.
    echo "Electron ${VSCODE_ARCH} binary version doesn't match target electron version!"
    echo "Releases available at: https://github.com/${VSCODE_ELECTRON_REPOSITORY}/releases"
    exit 1
  fi

  if [[ "${ELECTRON_VERSION}" != "${TARGET}" ]]; then
    # Force version
    replace "s|target=\"${TARGET}\"|target=\"${ELECTRON_VERSION}\"|" .npmrc
  fi
fi

if [[ -d "../patches/linux/client/" ]]; then
  for file in "../patches/linux/client/"*.patch; do
    if [[ -f "${file}" ]]; then
      apply_patch "${file}"
    fi
  done
fi

if [[ -n "${USE_GNUPP2A}" ]]; then
  INCLUDES=$(cat <<EOF
{
  "target_defaults": {
    "conditions": [
      ["OS=='linux'", {
        'cflags_cc!': [ '-std=gnu++20' ],
        'cflags_cc': [ '-std=gnu++2a' ],
      }]
    ]
  }
}
EOF
)

  if [ ! -d "$HOME/.gyp" ]; then
    mkdir -p "$HOME/.gyp"
  fi

  echo "${INCLUDES}" > "$HOME/.gyp/include.gypi"
fi

for i in {1..5}; do # try 5 times
  npm ci --prefix build && break
  if [[ $i == 5 ]]; then
    echo "Npm install failed too many times" >&2
    exit 1
  fi
  echo "Npm install failed $i, trying again..."
done

if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
  if [[ -n "${VSCODE_SKIP_SYSROOT}" ]]; then
    source ./build/azure-pipelines/linux/setup-env.sh --skip-sysroot
  else
    source ./build/azure-pipelines/linux/setup-env.sh
  fi
fi

for i in {1..5}; do # try 5 times
  npm ci && break
  if [[ $i == 5 ]]; then
    echo "Npm install failed too many times" >&2
    exit 1
  fi
  echo "Npm install failed $i, trying again..."
done

node build/azure-pipelines/distro/mixin-npm.ts

# delete native files built in the `compile` step
find .build/extensions -type f -name '*.node' -print -delete

# generate Group Policy definitions
npm run copy-policy-dto --prefix build
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc linux

npm run gulp "vscode-linux-${VSCODE_ARCH}-min-ci"

if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
  bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "../VSCode-linux-${VSCODE_ARCH}/resources/app/node_modules"
fi

find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c

. ../build_cli.sh

cd ..


================================================
FILE: build/linux/package_reh.sh
================================================
#!/usr/bin/env bash
# shellcheck disable=SC1091

set -ex

if [[ "${CI_BUILD}" == "no" ]]; then
  exit 1
fi

# include common functions
. ./utils.sh

mkdir -p assets

tar -xzf ./vscode.tar.gz

cd vscode || { echo "'vscode' dir not found"; exit 1; }

GLIBC_VERSION="2.28"
GLIBCXX_VERSION="3.4.26"
NODE_VERSION="22.21.1"

export VSCODE_NODEJS_URLROOT='/download/release'
export VSCODE_NODEJS_URLSUFFIX=''

if [[ "${VSCODE_ARCH}" == "x64" ]]; then
  VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-x64"

  export VSCODE_SKIP_SETUPENV=1
elif [[ "${VSCODE_ARCH}" == "arm64" ]]; then
  EXPECTED_GLIBC_VERSION="2.30"

  VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-arm64"

  export VSCODE_SKIP_SYSROOT=1
  export USE_GNUPP2A=1
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
  EXPECTED_GLIBC_VERSION="2.30"

  VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-armhf"

  export VSCODE_SKIP_SYSROOT=1
  export USE_GNUPP2A=1
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
  GLIBC_VERSION="2.28"

  VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-ppc64le"
  VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"

  export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
  export VSCODE_SYSROOT_VERSION='20240129-253798'
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
  NODE_VERSION="20.16.0"
  VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-riscv64"

  export VSCODE_SKIP_SETUPENV=1
  export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
  NODE_VERSION="20.16.0"
  VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:beige-devtoolset-loong64"

  export VSCODE_SKIP_SETUPENV=1
  export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
elif [[ "${VSCODE_ARCH}" == "s390x" ]]; then
  GLIBC_VERSION="2.28"

  VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-s390x"
  VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"

  export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
  export VSCODE_SYSROOT_VERSION='20241108'
fi

export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
export VSCODE_PLATFORM='linux'
export VSCODE_SKIP_NODE_VERSION_CHECK=1

if [[ -z "${VSCODE_SYSROOT_PREFIX}" ]]; then
  export VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}-gcc-10.5.0"
else
  export VSCODE_SYSROOT_PREFIX
fi

EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION:=GLIBC_VERSION}"
VSCODE_HOST_MOUNT="$( pwd )"

export VSCODE_HOST_MOUNT
export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME

sed -i "/target/s/\"22.*\"/\"${NODE_VERSION}\"/" remote/.npmrc

if [[ -d "../patches/linux/reh/" ]]; then
  for file in "../patches/linux/reh/"*.patch; do
    if [[ -f "${file}" ]]; then
      apply_patch "${file}"
    fi
  done
fi

if [[ -d "../patches/linux/reh/${VSCODE_ARCH}/" ]]; then
  for file in "../patches/linux/reh/${VSCODE_ARCH}/"*.patch; do
    if [[ -f "${file}" ]]; then
      apply_patch "${file}"
    fi
  done
fi

if [[ -n "${USE_GNUPP2A}" ]]; then
  INCLUDES=$(cat <<EOF
{
  "target_defaults": {
    "conditions": [
      ["OS=='linux'", {
        'cflags_cc!': [ '-std=gnu++20' ],
        'cflags_cc': [ '-std=gnu++2a' ],
      }]
    ]
  }
}
EOF
)

  if [ ! -d "${HOME}/.gyp" ]; then
    mkdir -p "${HOME}/.gyp"
  fi

  echo "${INCLUDES}" > "${HOME}/.gyp/include.gypi"
fi

for i in {1..5}; do # try 5 times
  npm ci --prefix build && break
  if [[ $i == 5 ]]; then
    echo "Npm install failed too many times" >&2
    exit 1
  fi
  echo "Npm install failed $i, trying again..."
done

if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
  if [[ -n "${VSCODE_SKIP_SYSROOT}" ]]; then
    source ./build/azure-pipelines/linux/setup-env.sh --skip-sysroot
  else
    cat ./build/checksums/vscode-sysroot.txt

    source ./build/azure-pipelines/linux/setup-env.sh
  fi

  export VSCODE_SYSROOT_DIR="${VSCODE_REMOTE_SYSROOT_DIR}"
else
  mkdir -p .build/x86_64-linux-gnu/x86_64-linux-gnu/bin

  ln -s $( which objdump ) .build/x86_64-linux-gnu/x86_64-linux-gnu/bin/objdump

  export VSCODE_SYSROOT_DIR=".build"
fi

node build/npm/preinstall.ts

mv .npmrc .npmrc.bak
cp ../npmrc .npmrc

for i in {1..5}; do # try 5 times
  npm ci && break
  if [[ $i == 5 ]]; then
    echo "Npm install failed too many times" >&2
    exit 1
  fi
  echo "Npm install failed $i, trying again..."

  # remove dependencies that fail during cleanup
  rm -rf node_modules/@vscode node_modules/node-pty
done

# if [[ "${VSCODE_ARCH}" == "x64" ]]; then
#   pushd "remote"

#   for LIB in @parcel/watcher @vscode/spdlog kerberos node-pty
#   do
#     pushd "node_modules/${LIB}"

#     CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" npx node-gyp rebuild

#     popd
#   done

#   popd

#   VERIFY_CXX11=1
# fi

mv .npmrc.bak .npmrc

node build/azure-pipelines/distro/mixin-npm.ts

export VSCODE_NODE_GLIBC="-glibc-${GLIBC_VERSION}"

if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
  echo "Building REH"
  npm run gulp minify-vscode-reh
  npm run gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"

  EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh

  # if [[ -n "${VERIFY_CXX11}" ]]; then
  #   SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
  # fi

  pushd "../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"

  if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
    bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "node_modules"
  fi

  echo "Archiving REH"
  tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .

  popd
fi

if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
  echo "Building REH-web"
  npm run gulp minify-vscode-reh-web
  npm run gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"

  EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh

  # if [[ -n "${VERIFY_CXX11}" ]]; then
  #   SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
  # fi

  pushd "../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}"

  if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
    bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "node_modules"
  fi

  echo "Archiving REH-web"
  tar czf "../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .

  popd
fi

cd ..

npm install -g checksum

sum_file() {
  if [[ -f "${1}" ]]; then
    echo "Calculating checksum for ${1}"
    checksum -a sha256 "${1}" > "${1}".sha256
    checksum "${1}" > "${1}".sha1
  fi
}

cd assets

for FILE in *; do
  if [[ -f "${FILE}" ]]; then
    sum_file "${FILE}"
  fi
done

cd ..


================================================
FILE: build/linux/ppc64le/electron.sh
================================================
#!/usr/bin/env bash

set -ex

export ELECTRON_VERSION="39.2.7"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"


================================================
FILE: build/linux/ppc64le/electron.sha256sums
================================================
bacff46523cea806df9788d9e24f7f53fad2317f18afdcbc596b86863dd40805 *chromedriver-v39.2.7-linux-ppc64le.zip
b83820b37325c0a6ce0bbb98344b54f70ef7c2a949eea61bcb423b18c623a742 *electron-v39.2.7-linux-ppc64le-debug.zip
7d3b4ff4320a54572f9e1e0286702a0bed3e1596a2cb34f8fdc455acf3b9234f *electron-v39.2.7-linux-ppc64le-symbols.zip
6974cf1c8a550019b04762222742b8f1d9d76387594a191d3522cd65da075db1 *electron-v39.2.7-linux-ppc64le.zip
40c772eb189d100087b75da6c2ad1aeb044f1d661c90543592546a654b0b6d5b *electron.d.ts
0c923001d08e474d0dcd3b747b4f9a4bfca685d755ec08de8e44556a63f9ad3a *hunspell_dictionaries.zip
ee57f79e88f50f199a6aeb87fa45c83d1bd0f92eb72e00787cfdf4cf11863562 *libcxx-objects-v39.2.7-linux-ppc64le.zip
a8709029737d3073758ccb384161a37d91f16e5a3f8110ca8e2c30f83ef8d7e6 *libcxx_headers.zip
238dcec817528659a86b0cd3d7dabe301e65b4cab25e45c5bbab7642a8849c02 *libcxxabi_headers.zip
be033ed825bd8be92bb6ca86ff81f0907e60aa999aa011f5ddf1360abb19429b *mksnapshot-v39.2.7-linux-ppc64le.zip


================================================
FILE: build/linux/riscv64/electron.sh
================================================
#!/usr/bin/env bash

set -ex

export ELECTRON_VERSION="39.2.7"
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}.riscv1"


================================================
FILE: build/linux/riscv64/electron.sha256sums
================================================
6759ef2bd69a2e31a3f0e17c4e4c0bf239b54f08525572201ae7760851168487 *chromedriver-v39.2.7-linux-riscv64.zip
89562e30982d8ac71fbc1e0f549a4a6e19abd5cb98ea904d5f3cfceb7c61e582 *electron-v39.2.7-linux-riscv64-debug.tar.zst
71c6f265a2ef065f478ef910a06466a21009c02783dcb7053767549a6dbeb80d *electron-v39.2.7-linux-riscv64-symbols.tar.zst
136804dbd04f1c6b9a6047c4e7bb648876214ff453b62fb3bdc81505b6f5aab2 *electron-v39.2.7-linux-riscv64.zip
1059d6cb97b87464b3bd415bb5f96fceaf91d6e3af1c9733724ab9f2e14e2a08 *ffmpeg-v39.2.7-linux-riscv64.zip
224a84d4aaceb5ed8be3c4f65f8404d492dc86ded8ab336c2562dfdd21752068 *hunspell-dictionaries.zip
b6cb4f8902aad5de811efd106ddbdbca79e43cb7c8fa67f7eeddaedf2efd82d5 *libcxx-headers.zip
0664e200ec1eab1ce1957bc6e17ad89f6c0d4d904a9492d64fcf4175cd81e537 *libcxx-objects-v39.2.7-linux-riscv64.zip
96f9b66be7ff11e79ec2e781a0025938eb5ef97cbab429c05e9b45d24d421abf *libcxxabi-headers.zip
be0774857454f81b9407f6b941200f8843a0b3ecb86e2bb072209ef9f9bfe74a *mksnapshot-v39.2.7-linux-riscv64.zip
a8fca541e8f9a18de73c78f6862cbf439723c80c5eb60fe50405dfb751d2ee13 *node-v39.2.7-headers.tar.gz


================================================
FILE: build/linux/riscv64/ripgrep.sh
================================================
#!/usr/bin/env bash

# microsoft/ripgrep-prebuilt doesn't support riscv64.
# Tracking PR: https://github.com/microsoft/ripgrep-prebuilt/pull/41

if [ "$#" -ne 1 ]; then
    echo "Usage: $0 <path_to_node_modules>"
    exit 1
fi

RG_PATH="$1/@vscode/ripgrep/bin/rg"
RG_VERSION="14.1.1-4"

echo "Replacing ripgrep binary with riscv64 one"

rm "${RG_PATH}"
curl --silent --fail -L https://github.com/riscv-forks/ripgrep-riscv64-prebuilt/releases/download/${RG_VERSION}/rg -o "${RG_PATH}"
chmod +x "${RG_PATH}"


================================================
FILE: build/linux/verify_abi_requirements.sh
================================================
#!/usr/bin/env bash

set -e

FILES=$(
  find "${SEARCH_PATH}" -type f -executable -name "node"
  find "${SEARCH_PATH}" -name "*.node" -not -path "*prebuilds*" -not -path "*extensions/node_modules/@parcel/watcher*"
)

echo "Verifying requirements for files: ${FILES}"

for FILE in ${FILES}; do
  CXXABI_VERSION="0.0.0"

  while IFS= read -r LINE; do
    VERSION=${LINE#*_}

    if [[ $( printf "%s\n%s" "${VERSION}" "${CXXABI_VERSION}" | sort -V | tail -n1 ) == "${VERSION}" ]]; then
      CXXABI_VERSION="${VERSION}"
    fi
  done < <( strings "${FILE}" | grep -i ^CXXABI )

  if [[ $( printf "%s\n%s" "${EXPECTED_CXXABI_VERSION}" "${CXXABI_VERSION}" | sort -V | tail -n1 ) == "${EXPECTED_CXXABI_VERSION}" ]]; then
    echo "File ${FILE} has dependency on ABI ${CXXABI_VERSION} <= ${EXPECTED_CXXABI_VERSION}"
  else
    echo "Error: File ${FILE} has dependency on ABI ${CXXABI_VERSION} > ${EXPECTED_CXXABI_VERSION}"
    exit 1
  fi
done


================================================
FILE: build/linux/verify_cxx11_requirements.sh
================================================
#!/usr/bin/env bash

set -e

FILES=$( find "${SEARCH_PATH}" -name "*.node" -not -path "*prebuilds*" -not -path "*extensions/node_modules/@parcel/watcher*" )

echo "Verifying requirements for files: ${FILES}"

for FILE in ${FILES}; do
  if [[ -n "$( strings "${FILE}" | grep cxx11 | tail -n1 )" ]]; then
    echo "Error: File ${FILE} has dependency on CXX11"
    exit 1
  fi
done


================================================
FILE: build/osx/include.gypi
================================================
{
  'target_defaults': {
    'conditions': [
      ['OS=="mac"', {
        'xcode_settings': {
          'OTHER_CPLUSPLUSFLAGS': ['-std=c++20']
        }
      }]
    ]
  }
}


================================================
FILE: build/windows/appx/build.sh
================================================
#!/usr/bin/env bash

set -ex

# Add Windows SDK to path
SDK='/C/Program Files (x86)/Windows Kits/10/bin/10.0.26100.0/x64'
export PATH="${SDK}:${PATH}"

APPX_NAME="${BINARY_NAME//-/_}"

makeappx pack /d "../../../VSCode-win32-${VSCODE_ARCH}/appx/manifest" /p "../../../VSCode-win32-${VSCODE_ARCH}/appx/${APPX_NAME}_${VSCODE_ARCH}.appx" /nv

# Remove the raw manifest folder
rm -rf "../../../VSCode-win32-${VSCODE_ARCH}/appx/manifest"


================================================
FILE: build/windows/msi/build-updates-disabled.sh
================================================
#!/usr/bin/env bash

set -ex

CALLER_DIR=$( pwd )

cd "$( dirname "${BASH_SOURCE[0]}" )"

SCRIPT_DIR=$( pwd )

cd "../../../VSCode-win32-${VSCODE_ARCH}/resources/app"

jsonTmp=$( jq "del(.updateUrl)" product.json )
echo "${jsonTmp}" > product.json && unset jsonTmp

cd "${SCRIPT_DIR}"

./build.sh "updates-disabled"

cd "${CALLER_DIR}"


================================================
FILE: build/windows/msi/build.sh
================================================
#!/usr/bin/env bash

set -ex

CALLER_DIR=$( pwd )

cd "$( dirname "${BASH_SOURCE[0]}" )"

WIN_SDK_MAJOR_VERSION="10"
WIN_SDK_FULL_VERSION="10.0.17763.0"

if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
  PRODUCT_NAME="VSCodium - Insiders"
  PRODUCT_CODE="VSCodiumInsiders"
  PRODUCT_UPGRADE_CODE="1C9B7195-5A9A-43B3-B4BD-583E20498467"
  ICON_DIR="..\\..\\..\\src\\insider\\resources\\win32"
  SETUP_RESOURCES_DIR=".\\resources\\insider"
else
  PRODUCT_NAME="VSCodium"
  PRODUCT_CODE="VSCodium"
  PRODUCT_UPGRADE_CODE="965370CD-253C-4720-82FC-2E6B02A53808"
  ICON_DIR="..\\..\\..\\src\\stable\\resources\\win32"
  SETUP_RESOURCES_DIR=".\\resources\\stable"
fi

PRODUCT_ID=$( powershell.exe -command "[guid]::NewGuid().ToString().ToUpper()" )
PRODUCT_ID="${PRODUCT_ID%%[[:cntrl:]]}"

CULTURE="en-us"
LANGIDS="1033"

SETUP_RELEASE_DIR=".\\releasedir"
BINARY_DIR="..\\..\\..\\VSCode-win32-${VSCODE_ARCH}"
LICENSE_DIR="..\\..\\..\\vscode"
PROGRAM_FILES_86=$( env | sed -n 's/^ProgramFiles(x86)=//p' )

if [[ -z "${1}" ]]; then
	OUTPUT_BASE_FILENAME="VSCodium-${VSCODE_ARCH}-${RELEASE_VERSION}"
else
	OUTPUT_BASE_FILENAME="VSCodium-${VSCODE_ARCH}-${1}-${RELEASE_VERSION}"
fi

if [[ "${VSCODE_ARCH}" == "ia32" ]]; then
   export PLATFORM="x86"
else
   export PLATFORM="${VSCODE_ARCH}"
fi

sed -i "s|@@PRODUCT_UPGRADE_CODE@@|${PRODUCT_UPGRADE_CODE}|g" .\\includes\\vscodium-variables.wxi
sed -i "s|@@PRODUCT_NAME@@|${PRODUCT_NAME}|g" .\\vscodium.xsl

find i18n -name '*.wxl' -print0 | xargs -0 sed -i "s|@@PRODUCT_NAME@@|${PRODUCT_NAME}|g"

BuildSetupTranslationTransform() {
	local CULTURE=${1}
	local LANGID=${2}

	LANGIDS="${LANGIDS},${LANGID}"

	echo "Building setup translation for culture \"${CULTURE}\" with LangID \"${LANGID}\"..."

	"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -reusecab -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" -loc "i18n\\vscodium.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69

	cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\WiLangId.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" Product "${LANGID}"

	"${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\x86\\msitran" -g "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst"

	cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst" "${LANGID}"

	cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi"

	rm -f "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi"
	rm -f "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst"
}

"${WIX}bin\\heat.exe" dir "${BINARY_DIR}" -out "Files-${OUTPUT_BASE_FILENAME}.wxs" -t vscodium.xsl -gg -sfrag -scom -sreg -srd -ke -cg "AppFiles" -var var.ManufacturerName -var var.AppName -var var.AppCodeName -var var.ProductVersion -var var.IconDir -var var.LicenseDir -var var.BinaryDir -dr APPLICATIONFOLDER -platform "${PLATFORM}"
"${WIX}bin\\candle.exe" -arch "${PLATFORM}" vscodium.wxs "Files-${OUTPUT_BASE_FILENAME}.wxs" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -dManufacturerName="VSCodium" -dAppCodeName="${PRODUCT_CODE}" -dAppName="${PRODUCT_NAME}" -dProductVersion="${RELEASE_VERSION%-insider}" -dProductId="${PRODUCT_ID}" -dBinaryDir="${BINARY_DIR}" -dIconDir="${ICON_DIR}" -dLicenseDir="${LICENSE_DIR}" -dSetupResourcesDir="${SETUP_RESOURCES_DIR}" -dCulture="${CULTURE}"
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" -loc "i18n\\vscodium.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69

BuildSetupTranslationTransform de-de 1031
BuildSetupTranslationTransform es-es 3082
BuildSetupTranslationTransform fr-fr 1036
BuildSetupTranslationTransform it-it 1040
# WixUI_Advanced bug: https://github.com/wixtoolset/issues/issues/5909
# BuildSetupTranslationTransform ja-jp 1041
BuildSetupTranslationTransform ko-kr 1042
BuildSetupTranslationTransform ru-ru 1049
BuildSetupTranslationTransform zh-cn 2052
BuildSetupTranslationTransform zh-tw 1028

# Add all supported languages to MSI Package attribute
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\WiLangId.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" Package "${LANGIDS}"

# Remove files we do not need any longer.
rm -rf "${TEMP}\\vscodium-cab-cache"
rm -f "Files-${OUTPUT_BASE_FILENAME}.wxs"
rm -f "Files-${OUTPUT_BASE_FILENAME}.wixobj"
rm -f "vscodium.wixobj"

cd "${CALLER_DIR}"


================================================
FILE: build/windows/msi/i18n/vscodium.de-de.wxl
================================================
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="de-de" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
  <String Id="ProductLanguage">1031</String>
  <String Id="ProductName">@@PRODUCT_NAME@@</String>
  <String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
  <String Id="PackageDescription">Paket mit @@PRODUCT_NAME@@</String>
  <String Id="FeatureStartMenuShortcutTitle">Startmenü-Verknüpfung</String>
  <String Id="FeatureStartMenuShortcutDescription">Startmenü-Symbol erstellen.</String>
  <String Id="FeatureDesktopShortcutTitle">Desktop-Verknüpfung</String>
  <String Id="FeatureDesktopShortcutDescription">Desktop-Symbol erstellen.</String>
  <String Id="FeatureFileTypeAssociationsTitle">Dateizuordnungen</String>
  <String Id="FeatureFileTypeAssociationsDescription">@@PRODUCT_NAME@@ als Editor für unterstützte Dateitypen registrieren.</String>
  <String Id="FeatureAddContextMenuFilesTitle">Dateikontextmenü</String>
  <String Id="FeatureAddContextMenuFilesDescription">Aktion "Mit @@PRODUCT_NAME@@ öffnen" dem Dateikontextmenü von Windows-Explorer hinzufügen.</String>
  <String Id="FeatureAddContextMenuFoldersTitle">Verzeichniskontextmenü</String>
  <String Id="FeatureAddContextMenuFoldersDescription">Aktion "Mit @@PRODUCT_NAME@@ öffnen" dem Verzeichniskontextmenü von Windows-Explorer hinzufügen.</String>
  <String Id="FeatureEnvironmentTitle">Zu PATH hinzufügen</String>
  <String Id="FeatureEnvironmentDescription">@@PRODUCT_NAME@@ zur PATH Variable hinzufügen. Nach dem Neustart verfügbar.</String>
  <String Id="LaunchApplication">@@PRODUCT_NAME@@ ausführen</String>
  <String Id="NewerVersionInstalled">Eine neuere Version von @@PRODUCT_NAME@@ ist bereits installiert.</String>
  <String Id="MinimumNetFramworkRequired">Diese Anwendung erfordert .NET Framework 4.5.2 oder höher. Bitte installieren Sie .NET Framework und führen Sie dieses Installationsprogramm erneut aus.</String>
  <String Id="OSVersionRequired">Windows 7 oder neuer ist erforderlich.</String>
</WixLocalization>


================================================
FILE: build/windows/msi/i18n/vscodium.en-us.wxl
================================================
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="en-us" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
  <String Id="ProductLanguage">1033</String>
  <String Id="ProductName">@@PRODUCT_NAME@@</String>
  <String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
  <String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
  <String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
  <String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
  <String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
  <String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
  <String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
  <String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
  <String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
  <String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file context menu.</String>
  <String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
  <String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory context menu.</String>
  <String Id="FeatureEnvironmentTitle">Add to PATH</String>
  <String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
  <String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
  <String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
  <String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
  <String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>


================================================
FILE: build/windows/msi/i18n/vscodium.es-es.wxl
================================================
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="es-es" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
  <String Id="ProductLanguage">3082</String>
  <String Id="ProductName">@@PRODUCT_NAME@@</String>
  <String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
  <String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
  <String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
  <String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
  <String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
  <String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
  <String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
  <String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
  <String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
  <String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
  <String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
  <String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
  <String Id="FeatureEnvironmentTitle">Add to PATH</String>
  <String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
  <String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
  <String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
  <String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
  <String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>


================================================
FILE: build/windows/msi/i18n/vscodium.fr-fr.wxl
================================================
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="fr-fr" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
  <String Id="ProductLanguage">1036</String>
  <String Id="ProductName">@@PRODUCT_NAME@@</String>
  <String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
  <String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
  <String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
  <String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
  <String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
  <String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
  <String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
  <String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
  <String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
  <String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
  <String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
  <String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
  <String Id="FeatureEnvironmentTitle">Add to PATH</String>
  <String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
  <String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
  <String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
  <String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
  <String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>


================================================
FILE: build/windows/msi/i18n/vscodium.it-it.wxl
================================================
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="it-it" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
  <String Id="ProductLanguage">1040</String>
  <String Id="ProductName">@@PRODUCT_NAME@@</String>
  <String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
  <String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
  <String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
  <String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
  <String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
  <String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
  <String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
  <String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
  <String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
  <String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
  <String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
  <String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
  <String Id="FeatureEnvironmentTitle">Add to PATH</String>
  <String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
  <String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
  <String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
  <String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
  <String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>


================================================
FILE: build/windows/msi/i18n/vscodium.ja-jp.wxl
================================================
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="ja-jp" Codepage="932" xmlns="http://schemas.microsoft.com/wix/2006/localization">
  <String Id="ProductLanguage">1041</String>
  <String Id="ProductName">@@PRODUCT_NAME@@</String>
  <String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
  <String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
  <String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
  <String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
  <String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
  <String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
  <String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
  <String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
  <String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
  <String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
  <String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
  <String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
  <String Id="FeatureEnvironmentTitle">Add to PATH</String>
  <String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
  <String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
  <String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
  <String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
  <String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>


================================================
FILE: build/windows/msi/i18n/vscodium.ko-kr.wxl
================================================
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="ko-kr" Codepage="949" xmlns="http://schemas.microsoft.com/wix/2006/localization">
  <String Id="ProductLanguage">1042</String>
  <String Id="ProductName">@@PRODUCT_NAME@@</String>
  <String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
  <String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
  <String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
  <String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
  <String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
  <String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
  <String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
  <String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
  <String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
  <String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
  <String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
  <String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
  <String Id="FeatureEnvironmentTitle">Add to PATH</String>
  <String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
  <String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
  <String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
  <String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
  <String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>


================================================
FILE: build/windows/msi/i18n/vscodium.ru-ru.wxl
================================================
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="ru-ru" Codepage="1251" xmlns="http://schemas.microsoft.com/wix/2006/localization">
  <String Id="ProductLanguage">1049</String>
  <String Id="ProductName">@@PRODUCT_NAME@@</String>
  <String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
  <String Id="PackageDescription">Пакет с @@PRODUCT_NAME@@</String>
  <String Id="FeatureStartMenuShortcutTitle">Ярлык в меню «Пуск»</String>
  <String Id="FeatureStartMenuShortcutDescription">Создайте значок в меню «Пуск».</String>
  <String Id="FeatureDesktopShortcutTitle">Ярлык рабочего стола</String>
  <String Id="FeatureDesktopShortcutDescription">Создать значок на рабочем столе.</String>
  <String Id="FeatureFileTypeAssociationsTitle">Ассоциации файлов</String>
  <String Id="FeatureFileTypeAssociationsDescription">Зарегистрировать @@PRODUCT_NAME@@ в качестве редактора поддерживаемых типов файлов.</String>
  <String Id="FeatureAddContextMenuFilesTitle">Контекстное меню файлов</String>
  <String Id="FeatureAddContextMenuFilesDescription">Добавить действие «Открыть с помощью @@PRODUCT_NAME@@» в контекстное меню файлов Проводника Windows.</String>
  <String Id="FeatureAddContextMenuFoldersTitle">Контекстное меню каталога</String>
  <String Id="FeatureAddContextMenuFoldersDescription">Добавить действие «Открыть с помощью @@PRODUCT_NAME@@» в контекстное меню каталога Проводника Windows.</String>
  <String Id="FeatureEnvironmentTitle">Добавить в PATH</String>
  <String Id="FeatureEnvironmentDescription">Добавить @@PRODUCT_NAME@@ в переменную среды PATH. Доступно после перезапуска.</String>
  <String Id="LaunchApplication">Запустить @@PRODUCT_NAME@@</String>
  <String Id="NewerVersionInstalled">Новая версия @@PRODUCT_NAME@@ уже установлена.</String>
  <String Id="MinimumNetFramworkRequired">Приложению требуется .NET Framework 4.5.2 или более новая версии. Пожалуйста, установите .NET Framework, затем снова запустите установщик.</String>
  <String Id="OSVersionRequired">Требуется Windows 7 или более новая версия.</String>
</WixLocalization>


================================================
FILE: build/windows/msi/i18n/vscodium.zh-cn.wxl
================================================
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="zh-cn" Codepage="936" xmlns="http://schemas.microsoft.com/wix/2006/localization">
  <String Id="ProductLanguage">2052</String>
  <String Id="ProductName">@@PRODUCT_NAME@@</String>
  <String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
  <String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
  <String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
  <String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
  <String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
  <String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
  <String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
  <String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
  <String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
  <String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
  <String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
  <String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
  <String Id="FeatureEnvironmentTitle">Add to PATH</String>
  <String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
  <String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
  <String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
  <String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
  <String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>


================================================
FILE: build/windows/msi/i18n/vscodium.zh-tw.wxl
================================================
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="zh-tw" Codepage="950" xmlns="http://schemas.microsoft.com/wix/2006/localization">
  <String Id="ProductLanguage">1028</String>
  <String Id="ProductName">@@PRODUCT_NAME@@</String>
  <String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
  <String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
  <String Id="PackageDescription">Package with @@PRODUCT_NAME@@</String>
  <String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
  <String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
  <String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
  <String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
  <String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
  <String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
  <String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
  <String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
  <String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
  <String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
  <String Id="FeatureEnvironmentTitle">Add to PATH</String>
  <String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
  <String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
  <String Id="NewerVersionInstalled">Newer version of @@PRODUCT_NAME@@ is already installed.</String>
  <String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
  <String Id="OSVersionRequired">Windows 7 or later is required.</String>
</WixLocalization>


================================================
FILE: build/windows/msi/includes/vscodium-variables.wxi
================================================
<?xml version="1.0" encoding="utf-8"?>
<Include>
  <!-- Setup UI strings. -->
  <?if $(env.Platform)=x86?>
    <?define ProgramFilesFolder="ProgramFilesFolder" ?>
    <?define Win64="no" ?>
    <?define Arch="(x86)" ?>
  <?else?>
    <?define ProgramFilesFolder="ProgramFiles64Folder" ?>
    <?define Win64="yes" ?>
    <?define Arch="(x64)" ?>
  <?endif?>

  <?define ProductName="!(loc.ProductName)" ?>
  <?define ProductNameWithVersion="!(loc.ProductName) $(var.ProductVersion) $(var.Arch)" ?>
  <?define ProductLanguage="!(loc.ProductLanguage)" ?>
  <?define AppFolderName="$(var.AppName)" ?>
  <?define ProductManufacturerShort="$(var.ManufacturerName)" ?>
  <?define ProductManufacturerLong="$(var.ManufacturerName)" ?>

  <!-- Static settings, DO NOT TOUCH or upgrades will break! -->
  <?define ProductUpgradeCode="{@@PRODUCT_UPGRADE_CODE@@}" ?>
  <?define RTMProductVersion="0.0.1" ?>
</Include>


================================================
FILE: build/windows/msi/vscodium.wxs
================================================
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
  <?include $(sys.CURRENTDIR)includes\vscodium-variables.wxi ?>

  <Product Id="$(var.ProductId)" Name="$(var.ProductNameWithVersion)" Language="$(var.ProductLanguage)" Version="$(var.ProductVersion)" Manufacturer="$(var.ProductManufacturerLong)" UpgradeCode="$(var.ProductUpgradeCode)">
    <Package Description="!(loc.PackageDescription)" Manufacturer="$(var.ProductManufacturerLong)" InstallerVersion="200" Compressed="yes" />
    <Media Id="1" Cabinet="Data1.cab" EmbedCab="yes" CompressionLevel="high" />
    <Property Id="ARPHELPLINK" Value="!(loc.ProductHelpLink)" />
    <Property Id="ARPURLINFOABOUT" Value="!(loc.ProductUrlInfoAbout)" />
    <Property Id="ARPURLUPDATEINFO" Value="!(loc.ProductUrlUpdateInfo)" />
    <Property Id="ALLUSERS" Value="1" />
    <Property Id="ARPPRODUCTICON" Value="code.ico" />
    <SetProperty Id="ARPINSTALLLOCATION" Value="[APPLICATIONFOLDER]" After="CostFinalize" />
    <Icon Id="code.ico" SourceFile="$(var.IconDir)\code.ico" />

    <!-- Microsoft .NET Framework 4.5.2 is required for VSCodium. If you are using Windows 7, please make sure .NET Framework 4.5.2 is installed. -->
    <PropertyRef Id='WIX_IS_NETFRAMEWORK_452_OR_LATER_INSTALLED' />
	<Condition Message="!(loc.MinimumNetFramworkRequired)">
      <![CDATA[Installed OR WIX_IS_NETFRAMEWORK_452_OR_LATER_INSTALLED]]>
    </Condition>

    <!-- Windows 7 or later is required. -->
    <Condition Message="!(loc.OSVersionRequired)"><![CDATA[Installed OR VersionNT >= 601]]></Condition>

    <Upgrade Id="$(var.ProductUpgradeCode)">
      <UpgradeVersion OnlyDetect="yes" Minimum="$(var.ProductVersion)" Property="NEWPRODUCTFOUND" IncludeMinimum="no" />
      <UpgradeVersion Minimum="$(var.RTMProductVersion)" IncludeMinimum="yes" Maximum="$(var.ProductVersion)" Property="UPGRADEFOUND" IncludeMaximum="no" MigrateFeatures="yes" />
    </Upgrade>
    <CustomAction Id="PreventDowngrading" Error="!(loc.NewerVersionInstalled)" />

    <!-- WixUI_Advanced defaults to wrong per user install location "[LocalAppDataFolder]", https://sourceforge.net/p/wix/feature-requests/656/ -->
    <CustomAction Id="WixSetDefaultPerUserFolderRoaming" Property="WixPerUserFolder" Value="[AppDataFolder]Apps\[ApplicationFolderName]" Execute="immediate"/>
    <!-- WixUI_Advanced defaults to "[ProgramFilesFolder][ApplicationFolderName]" what is wrong for x64 applications. Fix the path with an override. https://github.com/wixtoolset/issues/issues/5908 -->
    <CustomAction Id="WixSetDefaultPerMachineFolderPerArch" Property="WixPerMachineFolder" Value="[$(var.ProgramFilesFolder)][ApplicationFolderName]" Execute="immediate"/>

    <InstallExecuteSequence>
      <Custom Action="WixSetDefaultPerUserFolderRoaming" Before="WixSetPerUserFolder" />
      <Custom Action="WixSetDefaultPerMachineFolderPerArch" Before="WixSetPerMachineFolder" />
      <Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWPRODUCTFOUND</Custom>
      <!--
        In general it seems very hard to track what files may have changed
        between vscodium versions. As files are crawled with heat and GUIDs
        are automatically generated some MSI "optimization" features are not
        available. But no real problem, it only takes some more seconds to
        upgrade between versions.

        What need to be done is scheduling a full uninstall before a re-install.
        Therefore the benefit of file installation deltas usable with
        After="InstallFinalize" cannot used.

        Normally only changed files are installed and outdated files are purged
        on InstallFinalize what can speed up the setup file copy process.
      -->
      <RemoveExistingProducts After="InstallInitialize" />
    </InstallExecuteSequence>
    <InstallUISequence>
      <Custom Action="WixSetDefaultPerUserFolderRoaming" Before="WixSetPerUserFolder" />
      <Custom Action="WixSetDefaultPerMachineFolderPerArch" Before="WixSetPerMachineFolder" />
      <Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWPRODUCTFOUND</Custom>
    </InstallUISequence>

    <!--
      RemoveFolderEx requires that we "remember" the path for uninstall.
      This workaround is only required for the uninstall.
    -->
    <Property Id="APPLICATIONFOLDER">
      <RegistrySearch Id="APPLICATIONFOLDER_REGSEARCH" Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)" Name="Path" Type="raw" Win64="$(var.Win64)" />
    </Property>

    <!-- Define the directory structure -->
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="$(var.ProgramFilesFolder)">
        <Directory Id="APPLICATIONFOLDER" Name="$(var.AppFolderName)">
          <Component Id="CleanupMainApplicationFolder" Guid="*">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)" Name="Path" Type="string" Value="[APPLICATIONFOLDER]" KeyPath="yes" />
            <!-- We need to use APPLICATIONFOLDER variable here or RemoveFolderEx will not remove on "install". -->
            <util:RemoveFolderEx On="uninstall" Property="APPLICATIONFOLDER" />
          </Component>

          <Component Id="AddFileTypeAssociationASCX" Guid="C81496CA-9F8C-4C54-84DF-79373CB0A390">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="ascx" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).ascx" Description="ASCX" Icon="XML.ICO">
              <Extension Id="ascx">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationASP" Guid="4776BA1D-A3E5-45A7-B794-5E0E446BD5E0">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="asp" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).asp" Description="ASP" Icon="HTML.ICO">
              <Extension Id="asp">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationASPX" Guid="1F4F0046-60C7-4280-ACC4-248D97B1D731">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="aspx" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).aspx" Description="ASPX" Icon="HTML.ICO">
              <Extension Id="aspx">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationBASH" Guid="BAB4425E-57BC-425B-9C30-46A2FD4491D1">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="bash" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).bash" Description="Bash" Icon="SHELL.ICO">
              <Extension Id="bash">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationBASHLOGIN" Guid="7025510E-E0D0-4004-8E76-E7CCBFDFB46F">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="bash_login" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).bash_login" Description="Bash Login" Icon="SHELL.ICO">
              <Extension Id="bash_login">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationBASHLOGOUT" Guid="D48679A2-9D71-4D93-87E8-7E3D2470507D">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="bash_logout" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).bash_logout" Description="Bash Logout" Icon="SHELL.ICO">
              <Extension Id="bash_logout">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationBASHPROFILE" Guid="33E89E3D-0D76-400B-8C5A-5AD6BA48E38A">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="bash_profile" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).bash_profile" Description="Bash Profile" Icon="SHELL.ICO">
              <Extension Id="bash_profile">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationBASHRC" Guid="6B04B2A7-AFBC-4FDA-B9DD-BA3D5E469A40">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="bashrc" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).bashrc" Description="Bash RC" Icon="SHELL.ICO">
              <Extension Id="bashrc">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationBIB" Guid="AA3D8227-4269-4D52-9689-708668DBDF82">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="bib" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).bib" Description="BibTeX" Icon="DEFAULT.ICO">
              <Extension Id="bib">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationBOWERRC" Guid="8F51CF9D-3050-4AAC-89E9-87FFCB20F306">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="bowerrc" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).bowerrc" Description="Bower RC" Icon="BOWER.ICO">
              <Extension Id="bowerrc">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationC" Guid="4E1B5157-8D22-463C-884F-F0EC1F6BC17B">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="c" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).c" Description="C" Icon="C.ICO">
              <Extension Id="c">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCC" Guid="2D38F6D1-ED21-4F48-AC15-04AB724887B6">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="cc" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).cc" Description="C++" Icon="CPP.ICO">
              <Extension Id="cc">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCLJ" Guid="F66BAB3D-429A-4BE2-9EED-A39143B3F31F">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="clj" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).clj" Description="Clojure" Icon="DEFAULT.ICO">
              <Extension Id="clj">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCLJS" Guid="55B49C2A-3885-4743-AE56-95ADC4D1AC1F">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="cljs" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).cljs" Description="ClojureScript" Icon="DEFAULT.ICO">
              <Extension Id="cljs">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCLJX" Guid="0DBE4BED-89CB-4E5F-A3F3-3BA7A30BF701">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="cljx" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).cljx" Description="CLJX" Icon="DEFAULT.ICO">
              <Extension Id="cljx">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCLOJURE" Guid="49DDEEC1-6D74-4B54-ADC3-D889FF8A8BBB">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="clojure" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).clojure" Description="Clojure" Icon="DEFAULT.ICO">
              <Extension Id="clojure">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCODEWORKSPACE" Guid="804B860E-8DDB-483C-90E9-1836B3D66BEF">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="code-workspace" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).code-workspace" Description="Code Workspace" Icon="DEFAULT.ICO">
              <Extension Id="code-workspace">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCOFFEE" Guid="36A14BE3-B6EA-419C-BCD1-855728353331">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="coffee" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).coffee" Description="CoffeeScript" Icon="DEFAULT.ICO">
              <Extension Id="coffee">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCONFIG" Guid="42CFDC98-9F06-440C-86FC-250E2AA298B9">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="config" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).config" Description="Configuration" Icon="CONFIG.ICO">
              <Extension Id="config">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCPP" Guid="37805F30-6A06-4D0A-BEE4-C3CE21068009">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="cpp" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).cpp" Description="C++" Icon="CPP.ICO">
              <Extension Id="cpp">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCS" Guid="F82F6697-57AC-47BD-BC5B-F17E2249FC50">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="cs" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).cs" Description="C#" Icon="CSHARP.ICO">
              <Extension Id="cs">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCSHTML" Guid="FC5B1912-7A19-4D94-9083-64E6ABDCBCE5">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="cshtml" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).cshtml" Description="CSHTML" Icon="HTML.ICO">
              <Extension Id="cshtml">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCSPROJ" Guid="4FFBB1D3-70A5-4277-A531-C58ACEC8F494">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="csproj" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).csproj" Description="C# Project" Icon="XML.ICO">
              <Extension Id="csproj">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCSS" Guid="A45C20E2-0CB7-468A-BFE6-2C63EF88969E">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="css" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).css" Description="CSS" Icon="CSS.ICO">
              <Extension Id="css">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCSX" Guid="22EB60BA-ADCA-48EF-9DD1-DCDDC30AA808">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="csx" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).csx" Description="C# Script" Icon="CSHARP.ICO">
              <Extension Id="csx">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCTP" Guid="473C6903-0937-46D7-8648-7BFA8D7E6852">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="ctp" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).ctp" Description="CakePHP Template" Icon="DEFAULT.ICO">
              <Extension Id="ctp">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationCXX" Guid="1DC0553A-C8B8-4261-BB3A-3EFCB58AFC78">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="cxx" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).cxx" Description="C++" Icon="CPP.ICO">
              <Extension Id="cxx">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationDOCKERFILE" Guid="40072249-01F2-4F5C-B060-A26E88939C07">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="dockerfile" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).dockerfile" Description="Dockerfile" Icon="DEFAULT.ICO">
              <Extension Id="dockerfile">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationDOT" Guid="B8C2B4B8-A1C5-482A-AA49-F05118875B75">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="dot" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).dot" Description="Dot" Icon="DEFAULT.ICO">
              <Extension Id="dot">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationDTD" Guid="A7CA0834-C58C-4E4B-8D83-38427574F5A5">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="dtd" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).dtd" Description="Document Type Definition" Icon="XML.ICO">
              <Extension Id="dtd">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationEDITORCONFIG" Guid="7FDA5A66-F2BB-43BF-BADD-33BDDFDD96A8">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="editorconfig" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).editorconfig" Description="Editor Config" Icon="CONFIG.ICO">
              <Extension Id="editorconfig">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationEDN" Guid="F2E27707-789D-4FFC-9EEC-945685C42652">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="edn" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).edn" Description="Extensible Data Notation" Icon="DEFAULT.ICO">
              <Extension Id="edn">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationEYAML" Guid="3D8475E0-0985-4CD2-A6E2-FE782D19073E">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="eyaml" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).eyaml" Description="Hiera Eyaml" Icon="YAML.ICO">
              <Extension Id="eyaml">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationEYML" Guid="917B533B-FBF5-42EC-95D4-5EFB877BC3F9">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="eyml" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).eyml" Description="Hiera Eyaml" Icon="YAML.ICO">
              <Extension Id="eyml">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationFS" Guid="CBF222F7-A5ED-42C3-AC68-FDEB37EAC25A">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="fs" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).fs" Description="F#" Icon="DEFAULT.ICO">
              <Extension Id="fs">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationFSI" Guid="38B1C85F-CB43-48C9-A4E9-1445D4E32DFA">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="fsi" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).fsi" Description="F# Signature" Icon="DEFAULT.ICO">
              <Extension Id="fsi">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationFSSCRIPT" Guid="B735F8EF-95CA-40F9-99F5-75A23B151676">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="fsscript" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).fsscript" Description="F# Script" Icon="DEFAULT.ICO">
              <Extension Id="fsscript">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationFSX" Guid="DF73F4D2-F960-46D5-A123-0AF3844E8D87">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="fsx" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).fsx" Description="F# Script" Icon="DEFAULT.ICO">
              <Extension Id="fsx">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationGEMSPEC" Guid="F0F87C8F-E4C8-4A4B-B44A-B196CDC5541A">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="gemspec" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).gemspec" Description="Gemspec" Icon="RUBY.ICO">
              <Extension Id="gemspec">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationGITATTRIBUTES" Guid="7CC51568-1EF4-4B4C-B5A2-112A4D19DC3C">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="gitattributes" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).gitattributes" Description="Git Attributes" Icon="CONFIG.ICO">
              <Extension Id="gitattributes">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationGITCONFIG" Guid="80D83DBC-D225-4198-8AB7-C949F907EFBF">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="gitconfig" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).gitconfig" Description="Git Config" Icon="CONFIG.ICO">
              <Extension Id="gitconfig">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationGITIGNORE" Guid="47E8BAB4-FA09-48F4-A592-E489FD0B2EAD">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="gitignore" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).gitignore" Description="Git Ignore" Icon="CONFIG.ICO">
              <Extension Id="gitignore">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationGO" Guid="6F9AD674-02A4-4B04-90C7-51D73FAE1890">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="go" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).go" Description="Go" Icon="GO.ICO">
              <Extension Id="go">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationH" Guid="409E67FD-4E3D-4B84-B6F0-F4F181FC1934">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="h" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).h" Description="C Header" Icon="C.ICO">
              <Extension Id="h">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationHANDLEBARS" Guid="E1D2E7C7-3985-4DEA-BA1A-EDAEBE6D9274">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="handlebars" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).handlebars" Description="Handlebars" Icon="DEFAULT.ICO">
              <Extension Id="handlebars">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationHBS" Guid="A0847250-24BF-4D60-9D00-F8B1BE2EBE85">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="hbs" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).hbs" Description="Handlebars" Icon="DEFAULT.ICO">
              <Extension Id="hbs">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationHH" Guid="01EC3BA1-F172-482F-ACF5-EB905D5AC01B">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="hh" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).hh" Description="C++ Header" Icon="CPP.ICO">
              <Extension Id="hh">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationHPP" Guid="62C5B05C-BAF8-4AC4-913B-7F579B742977">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="hpp" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).hpp" Description="C++ Header" Icon="CPP.ICO">
              <Extension Id="hpp">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationHTM" Guid="704F9778-E50F-4DB9-A7CB-23171F74F02B">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="htm" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).htm" Description="HTML" Icon="HTML.ICO">
              <Extension Id="htm">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationHTML" Guid="49FC1F09-7861-455D-AEA8-7B712EC28923">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="html" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).html" Description="HTML" Icon="HTML.ICO">
              <Extension Id="html">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationHXX" Guid="CF407366-B61D-4157-B5FC-3A2771F10225">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="hxx" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).hxx" Description="C++ Header" Icon="CPP.ICO">
              <Extension Id="hxx">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationINI" Guid="7DB723AC-8371-40EE-A922-164A0C276761">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="ini" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).ini" Description="INI" Icon="CONFIG.ICO">
              <Extension Id="ini">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationJADE" Guid="5A96835F-2AED-402B-B3A3-541746889384">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="jade" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).jade" Description="Jade" Icon="JADE.ICO">
              <Extension Id="jade">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationJAV" Guid="FDA4470F-CABA-4B7C-A556-350E580D7D2C">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="jav" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).jav" Description="Java" Icon="JAVA.ICO">
              <Extension Id="jav">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationJAVA" Guid="FADDD0C3-A91C-4232-8C96-97F3933EC477">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="java" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).java" Description="Java" Icon="JAVA.ICO">
              <Extension Id="java">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationJS" Guid="7C126CC6-F965-4D65-9EE9-0B9C76E4E89A">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="js" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).js" Description="JavaScript" Icon="JAVASCRIPT.ICO">
              <Extension Id="js">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationJSX" Guid="FBAC73C5-EFEE-4B09-A885-509DAD1C809A">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="jsx" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).jsx" Description="JavaScript" Icon="REACT.ICO">
              <Extension Id="jsx">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationJSCSRC" Guid="5460B0FA-9F3D-4666-A069-36EB351F438F">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="jscsrc" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).jscsrc" Description="JSCS RC" Icon="JAVASCRIPT.ICO">
              <Extension Id="jscsrc">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationJSHINTRC" Guid="B5AEEB20-5A05-444D-B6D1-C0A8A28D2CD4">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="jshintrc" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).jshintrc" Description="JSHint RC" Icon="JAVASCRIPT.ICO">
              <Extension Id="jshintrc">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationJSHTM" Guid="148D02EC-259C-4DD8-B066-EE034A6D32BF">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="jshtm" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).jshtm" Description="JavaScript HTML Template" Icon="HTML.ICO">
              <Extension Id="jshtm">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationJSON" Guid="0F88F7D4-8AA8-4530-875F-90F0B5B416B9">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="json" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).json" Description="JSON" Icon="JSON.ICO">
              <Extension Id="json">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationJSP" Guid="697CBB01-2F32-4B9C-981E-DD497C3E575C">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="jsp" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).jsp" Description="Java Server Pages" Icon="HTML.ICO">
              <Extension Id="jsp">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationLESS" Guid="B52F05EF-C65F-426E-A638-2EBB75851270">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="less" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).less" Description="LESS" Icon="LESS.ICO">
              <Extension Id="less">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationLUA" Guid="CBCF919B-5D83-46F4-B62E-042BBE94B1DA">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="lua" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).lua" Description="Lua" Icon="DEFAULT.ICO">
              <Extension Id="lua">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationM" Guid="6F196166-9636-4548-A7CD-E7E468F321D2">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="m" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).m" Description="Objective C" Icon="DEFAULT.ICO">
              <Extension Id="m">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extension>
            </ProgId>
          </Component>
          <Component Id="AddFileTypeAssociationMAKEFILE" Guid="18AB8E83-235D-4A49-8C2C-FF365BE59CC9">
            <RegistryValue Root="HKLM" Key="SOFTWARE\$(var.ProductManufacturerShort)\$(var.AppName)\Components\FileTypeAssociations" Name="makefile" Type="integer" Value="1" />
            <ProgId Id="$(var.AppCodeName).makefile" Description="Makefile" Icon="DEFAULT.ICO">
              <Extension Id="makefile">
                <Verb Id="open" Command="&amp;Open" Argument="&quot;%1&quot;" TargetFile="VSCODIUM.EXE" />
              </Extensi
Download .txt
gitextract_qyl36xte/

├── .editorconfig
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   └── bug_report.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── insider-linux.yml
│       ├── insider-macos.yml
│       ├── insider-spearhead.yml
│       ├── insider-windows.yml
│       ├── lock.yml
│       ├── stable-linux.yml
│       ├── stable-macos.yml
│       ├── stable-spearhead.yml
│       ├── stable-windows.yml
│       └── stale.yml
├── .gitignore
├── .nvmrc
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── FUNDING.json
├── LICENSE
├── README.md
├── announcements-builtin.json
├── announcements-extra.json
├── build/
│   ├── alpine/
│   │   └── package_reh.sh
│   ├── linux/
│   │   ├── appimage/
│   │   │   ├── build.sh
│   │   │   └── recipe.yml
│   │   ├── deps.sh
│   │   ├── install_gh.sh
│   │   ├── install_nodejs.sh
│   │   ├── loong64/
│   │   │   ├── electron.sh
│   │   │   ├── electron.sha256sums
│   │   │   └── ripgrep.sh
│   │   ├── package_bin.sh
│   │   ├── package_reh.sh
│   │   ├── ppc64le/
│   │   │   ├── electron.sh
│   │   │   └── electron.sha256sums
│   │   ├── riscv64/
│   │   │   ├── electron.sh
│   │   │   ├── electron.sha256sums
│   │   │   └── ripgrep.sh
│   │   ├── verify_abi_requirements.sh
│   │   └── verify_cxx11_requirements.sh
│   ├── osx/
│   │   └── include.gypi
│   └── windows/
│       ├── appx/
│       │   └── build.sh
│       ├── msi/
│       │   ├── build-updates-disabled.sh
│       │   ├── build.sh
│       │   ├── i18n/
│       │   │   ├── vscodium.de-de.wxl
│       │   │   ├── vscodium.en-us.wxl
│       │   │   ├── vscodium.es-es.wxl
│       │   │   ├── vscodium.fr-fr.wxl
│       │   │   ├── vscodium.it-it.wxl
│       │   │   ├── vscodium.ja-jp.wxl
│       │   │   ├── vscodium.ko-kr.wxl
│       │   │   ├── vscodium.ru-ru.wxl
│       │   │   ├── vscodium.zh-cn.wxl
│       │   │   └── vscodium.zh-tw.wxl
│       │   ├── includes/
│       │   │   └── vscodium-variables.wxi
│       │   ├── vscodium.wxs
│       │   └── vscodium.xsl
│       ├── package.sh
│       └── rtf/
│           └── make.sh
├── build.sh
├── build_cli.sh
├── check_cron_or_pr.sh
├── check_tags.sh
├── dev/
│   ├── build.ps1
│   ├── build.sh
│   ├── build_docker.sh
│   ├── cli.sh
│   ├── merge-patches.sh
│   ├── osx/
│   │   └── codesign.env.template
│   ├── patch.sh
│   ├── update_api.sh
│   └── update_patches.sh
├── docs/
│   ├── accounts-authentication.md
│   ├── ext-github-copilot.md
│   ├── extensions-compatibility.md
│   ├── extensions.md
│   ├── getting-started.md
│   ├── howto-build.md
│   ├── index.md
│   ├── migration.md
│   ├── others.md
│   ├── telemetry.md
│   ├── troubleshooting.md
│   └── usage.md
├── font-size/
│   ├── .artifactrc.yml
│   ├── .editorconfig
│   ├── .fixpackrc
│   ├── .gitignore
│   ├── .nvmrc
│   ├── .vscode/
│   │   └── settings.json
│   ├── .xo-config.json
│   ├── generate-css.ts
│   ├── package.json
│   ├── tsconfig.base.json
│   └── tsconfig.json
├── get_pr.sh
├── get_repo.sh
├── icons/
│   ├── README.md
│   └── build_icons.sh
├── npmrc
├── patches/
│   ├── add-remote-url.patch
│   ├── alpine/
│   │   └── reh/
│   │       └── fix-node-docker.patch
│   ├── binary-name.patch
│   ├── brand.patch
│   ├── cli.patch
│   ├── disable-cloud.patch
│   ├── disable-copilot.patch
│   ├── disable-missing-vsda.patch
│   ├── disable-signature-verification.patch
│   ├── disable-update.patch.yet
│   ├── disable-vscodedev.patch
│   ├── ext-from-gh.patch
│   ├── extensions-disable-mangler.patch
│   ├── feat-announcements.patch
│   ├── feat-command-filter.patch
│   ├── feat-experimental-font.patch
│   ├── feat-ext-unsafe.patch
│   ├── feat-user-product.patch
│   ├── fix-build-vsce.patch
│   ├── fix-eol-banner.patch
│   ├── fix-extensions-control-connection.patch
│   ├── fix-gallery.patch
│   ├── fix-keymap.patch
│   ├── fix-npm-preinstall.patch
│   ├── fix-policies.patch
│   ├── fix-remote-libs.patch
│   ├── fix-tunnel-extension-recommendation.patch
│   ├── helper/
│   │   └── settings.patch
│   ├── insider/
│   │   └── system-extensions.patch
│   ├── linux/
│   │   ├── arch-0-support.patch
│   │   ├── arch-1-ppc64le.patch
│   │   ├── arch-2-riscv64.patch
│   │   ├── arch-3-loong64.patch
│   │   ├── arch-4-s390x.patch
│   │   ├── cli.patch
│   │   ├── client/
│   │   │   ├── avoid-crash-16k-page-size.patch
│   │   │   └── disable-remote.patch
│   │   ├── feat-logs-home.patch
│   │   ├── fix-build.patch
│   │   ├── fix-global-policy.patch
│   │   ├── fix-npm-postinstall.patch
│   │   ├── fix-reh-bootstrap.patch
│   │   ├── reh/
│   │   │   └── s390x/
│   │   │       └── package.json.patch
│   │   ├── rpm.patch
│   │   └── update-xdg-path.patch
│   ├── optional-tree-sitter.patch
│   ├── osx/
│   │   ├── fix-codesign.patch.no
│   │   └── fix-emulated-urls.patch
│   ├── remove-mangle.patch
│   ├── report-issue.patch
│   ├── sourcemaps.patch
│   ├── telemetry.patch
│   ├── terminal-suggest.patch
│   ├── update-cache-path.patch
│   ├── update-electron.patch.no
│   ├── use-github-pat.patch
│   ├── user/
│   │   └── readme.txt
│   ├── version-0-release.patch
│   ├── version-1-update.patch
│   └── windows/
│       ├── appx.patch
│       ├── cli.patch
│       └── win7.patch
├── prepare_assets.sh
├── prepare_checksums.sh
├── prepare_src.sh
├── prepare_vscode.sh
├── product.json
├── release.sh
├── release_notes.md
├── src/
│   ├── insider/
│   │   └── resources/
│   │       ├── darwin/
│   │       │   ├── bat.icns
│   │       │   ├── bower.icns
│   │       │   ├── c.icns
│   │       │   ├── code.icns
│   │       │   ├── config.icns
│   │       │   ├── cpp.icns
│   │       │   ├── csharp.icns
│   │       │   ├── css.icns
│   │       │   ├── default.icns
│   │       │   ├── go.icns
│   │       │   ├── html.icns
│   │       │   ├── jade.icns
│   │       │   ├── java.icns
│   │       │   ├── javascript.icns
│   │       │   ├── json.icns
│   │       │   ├── less.icns
│   │       │   ├── markdown.icns
│   │       │   ├── php.icns
│   │       │   ├── powershell.icns
│   │       │   ├── python.icns
│   │       │   ├── react.icns
│   │       │   ├── ruby.icns
│   │       │   ├── sass.icns
│   │       │   ├── shell.icns
│   │       │   ├── sql.icns
│   │       │   ├── typescript.icns
│   │       │   ├── vue.icns
│   │       │   ├── xml.icns
│   │       │   └── yaml.icns
│   │       ├── linux/
│   │       │   ├── code-url-handler.desktop
│   │       │   ├── code.appdata.xml
│   │       │   ├── code.desktop
│   │       │   └── rpm/
│   │       │       └── code.xpm
│   │       └── win32/
│   │           └── VisualElementsManifest.xml
│   └── stable/
│       └── resources/
│           ├── darwin/
│           │   ├── bat.icns
│           │   ├── bower.icns
│           │   ├── c.icns
│           │   ├── code.icns
│           │   ├── config.icns
│           │   ├── cpp.icns
│           │   ├── csharp.icns
│           │   ├── css.icns
│           │   ├── default.icns
│           │   ├── go.icns
│           │   ├── html.icns
│           │   ├── jade.icns
│           │   ├── java.icns
│           │   ├── javascript.icns
│           │   ├── json.icns
│           │   ├── less.icns
│           │   ├── markdown.icns
│           │   ├── php.icns
│           │   ├── powershell.icns
│           │   ├── python.icns
│           │   ├── react.icns
│           │   ├── ruby.icns
│           │   ├── sass.icns
│           │   ├── shell.icns
│           │   ├── sql.icns
│           │   ├── typescript.icns
│           │   ├── vue.icns
│           │   ├── xml.icns
│           │   └── yaml.icns
│           ├── linux/
│           │   ├── code-url-handler.desktop
│           │   ├── code.appdata.xml
│           │   ├── code.desktop
│           │   └── rpm/
│           │       └── code.xpm
│           └── win32/
│               └── VisualElementsManifest.xml
├── stores/
│   ├── snapcraft/
│   │   ├── check_version.sh
│   │   ├── insider/
│   │   │   └── snap/
│   │   │       ├── hooks/
│   │   │       │   └── configure
│   │   │       ├── local/
│   │   │       │   └── bin/
│   │   │       │       └── electron-launch
│   │   │       └── snapcraft.yaml
│   │   └── stable/
│   │       └── snap/
│   │           ├── hooks/
│   │           │   └── configure
│   │           ├── local/
│   │           │   └── bin/
│   │           │       └── electron-launch
│   │           └── snapcraft.yaml
│   └── winget/
│       └── check_version.sh
├── undo_telemetry.sh
├── update_upstream.sh
├── update_version.sh
├── upload_sourcemaps.sh
├── upstream/
│   ├── insider.json
│   └── stable.json
├── utils.sh
└── version.sh
Download .txt
SYMBOL INDEX (16 symbols across 1 files)

FILE: font-size/generate-css.ts
  type Area (line 9) | type Area = {
  constant PX_REGEX (line 16) | const PX_REGEX = /(-?\d+(\.\d+)?)px\b/g;
  constant COEFF_PRECISION (line 17) | const COEFF_PRECISION = 6;
  constant HEADER (line 18) | const HEADER = '/*** Generated for Custom Font Size ***/';
  constant ZEROS (line 19) | const ZEROS = ['margin', 'padding'];
  constant AREAS (line 21) | const AREAS: Record<string, Area> = {
  function formatCoefficient (line 66) | function formatCoefficient(n: number): string { // {{{
  function replacePx (line 71) | function replacePx(area: Area) { // {{{
  function transformPxValue (line 85) | function transformPxValue(value: string, area: Area): string { // {{{
  function processFile (line 89) | async function processFile(filePath: string, areas: Area[]): Promise<Res...
  function processFileArea (line 123) | function processFileArea(postcssResult: Root, generatedRoot: Root, area:...
  function extractOriginal (line 170) | function extractOriginal(content: string): string { // {{{
  function extractStyle (line 180) | function extractStyle(selector: string): string { // {{{
  function mergeSelector (line 186) | function mergeSelector(selectors: string[], prefixes: string[], index: n...
  function prefixSelector (line 213) | function prefixSelector(selector: string, prefixParts: string[]): string...
  function main (line 228) | async function main(): Promise<void> { // {{{
Condensed preview — 253 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,446K chars).
[
  {
    "path": ".editorconfig",
    "chars": 370,
    "preview": "root = true\n\n[*]\nindent_style = space\nindent_size = 2\ntab_width = 2\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_white"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 1270,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n**Describe the "
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 468,
    "preview": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where "
  },
  {
    "path": ".github/workflows/insider-linux.yml",
    "chars": 18211,
    "preview": "name: insider-linux\n\non:\n  workflow_dispatch:\n    inputs:\n      force_version:\n        type: boolean\n        description"
  },
  {
    "path": ".github/workflows/insider-macos.yml",
    "chars": 4010,
    "preview": "name: insider-macos\n\non:\n  workflow_dispatch:\n    inputs:\n      force_version:\n        type: boolean\n        description"
  },
  {
    "path": ".github/workflows/insider-spearhead.yml",
    "chars": 2970,
    "preview": "name: insider-spearhead\n\non:\n  workflow_dispatch:\n    inputs:\n      new_release:\n        type: boolean\n        descripti"
  },
  {
    "path": ".github/workflows/insider-windows.yml",
    "chars": 9825,
    "preview": "name: insider-windows\n\non:\n  workflow_dispatch:\n    inputs:\n      force_version:\n        type: boolean\n        descripti"
  },
  {
    "path": ".github/workflows/lock.yml",
    "chars": 353,
    "preview": "name: Lock Closed Threads\n\non:\n  schedule:\n    - cron: '0 2 * * *'\n\njobs:\n  lock:\n    runs-on: ubuntu-latest\n    steps:\n"
  },
  {
    "path": ".github/workflows/stable-linux.yml",
    "chars": 19205,
    "preview": "name: stable-linux\n\non:\n  workflow_dispatch:\n    inputs:\n      force_version:\n        type: boolean\n        description:"
  },
  {
    "path": ".github/workflows/stable-macos.yml",
    "chars": 3780,
    "preview": "name: stable-macos\n\non:\n  workflow_dispatch:\n    inputs:\n      force_version:\n        type: boolean\n        description:"
  },
  {
    "path": ".github/workflows/stable-spearhead.yml",
    "chars": 2783,
    "preview": "name: stable-spearhead\n\non:\n  workflow_dispatch:\n    inputs:\n      new_release:\n        type: boolean\n        descriptio"
  },
  {
    "path": ".github/workflows/stable-windows.yml",
    "chars": 9406,
    "preview": "name: stable-windows\n\non:\n  workflow_dispatch:\n    inputs:\n      force_version:\n        type: boolean\n        descriptio"
  },
  {
    "path": ".github/workflows/stale.yml",
    "chars": 886,
    "preview": "name: Stale Issues\n\non:\n  schedule:\n    - cron: '0 1 * * *'\n\npermissions:\n  issues: write\n\njobs:\n  stale:\n    runs-on: u"
  },
  {
    "path": ".gitignore",
    "chars": 490,
    "preview": "vscode*\nVS*/*\nVSCode*\nVSCodium*\n.DS_Store\n*.env\nassets/\nbuild/linux/appimage/out\nbuild/linux/appimage/pkg2appimage.AppDi"
  },
  {
    "path": ".nvmrc",
    "chars": 8,
    "preview": "22.22.0\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 4994,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 1767,
    "preview": "# Contributing\n\n:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:\n\n#### Table Of Contents\n\n- [C"
  },
  {
    "path": "FUNDING.json",
    "chars": 107,
    "preview": "{\n  \"drips\": {\n    \"ethereum\": {\n      \"ownedBy\": \"0x7806393Cb27692C6A52eE3D5338A75cECD168219\"\n    }\n  }\n}\n"
  },
  {
    "path": "LICENSE",
    "chars": 1184,
    "preview": "MIT License\n\nCopyright (c) 2018-present The VSCodium contributors\nCopyright (c) 2018-present Peter Squicciarini\nCopyrigh"
  },
  {
    "path": "README.md",
    "chars": 12420,
    "preview": "<div id=\"vscodium-logo\" align=\"center\">\n    <br />\n    <img src=\"./icons/stable/codium_cnl.svg\" alt=\"VSCodium Logo\" widt"
  },
  {
    "path": "announcements-builtin.json",
    "chars": 4,
    "preview": "[\n]\n"
  },
  {
    "path": "announcements-extra.json",
    "chars": 162,
    "preview": "[\n  {\n    \"id\": \"#2668\",\n    \"title\": \"[Windows] broken update on 1.107, need manual update\",\n    \"url\": \"https://github"
  },
  {
    "path": "build/alpine/package_reh.sh",
    "chars": 2007,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091\n\nset -ex\n\nif [[ \"${CI_BUILD}\" == \"no\" ]]; then\n  exit 1\nfi\n\n# include co"
  },
  {
    "path": "build/linux/appimage/build.sh",
    "chars": 2108,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\nCALLER_DIR=$( pwd )\n\ncd \"$( dirname \"${BASH_SOURCE[0]}\" )\"\n\nif [[ \"${VSCODE_ARCH}\" == \"x64"
  },
  {
    "path": "build/linux/appimage/recipe.yml",
    "chars": 2661,
    "preview": "# Based on\n# https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml\n#\n# On a Debian/Ubuntu system:\n# wg"
  },
  {
    "path": "build/linux/deps.sh",
    "chars": 380,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\nsudo apt-get update -y\n\nsudo apt-get install -y libkrb5-dev\n\nif [[ \"${VSCODE_ARCH}\" == \"ar"
  },
  {
    "path": "build/linux/install_gh.sh",
    "chars": 759,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\nGH_ARCH=\"amd64\"\n\nfor i in {1..5}; do\n  TAG=$( curl --retry 12 --retry-delay 30 \"https://ap"
  },
  {
    "path": "build/linux/install_nodejs.sh",
    "chars": 368,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\nNODEJS_VERSION=$( cat .nvmrc )\n\ncurl -fsSL \"${NODEJS_SITE}${NODEJS_URLROOT}/v${NODEJS_VERS"
  },
  {
    "path": "build/linux/loong64/electron.sh",
    "chars": 113,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\nexport ELECTRON_VERSION=\"39.2.3\"\nexport VSCODE_ELECTRON_TAG=\"v${ELECTRON_VERSION}\"\n"
  },
  {
    "path": "build/linux/loong64/electron.sha256sums",
    "chars": 874,
    "preview": "d26b2189e7466a08c73861d0225c9b28730fdfc30918f3ea70853b43a2581dc4 *chromedriver-v39.2.3-linux-loong64.zip\n8cc36f7468f5b2d"
  },
  {
    "path": "build/linux/loong64/ripgrep.sh",
    "chars": 645,
    "preview": "#!/usr/bin/env bash\n\n# When installing @vscode/ripgrep, it will try to download prebuilt ripgrep binary from https://git"
  },
  {
    "path": "build/linux/package_bin.sh",
    "chars": 4121,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091\n\nset -ex\n\nif [[ \"${CI_BUILD}\" == \"no\" ]]; then\n  exit 1\nfi\n\n# include co"
  },
  {
    "path": "build/linux/package_reh.sh",
    "chars": 7185,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091\n\nset -ex\n\nif [[ \"${CI_BUILD}\" == \"no\" ]]; then\n  exit 1\nfi\n\n# include co"
  },
  {
    "path": "build/linux/ppc64le/electron.sh",
    "chars": 113,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\nexport ELECTRON_VERSION=\"39.2.7\"\nexport VSCODE_ELECTRON_TAG=\"v${ELECTRON_VERSION}\"\n"
  },
  {
    "path": "build/linux/ppc64le/electron.sha256sums",
    "chars": 977,
    "preview": "bacff46523cea806df9788d9e24f7f53fad2317f18afdcbc596b86863dd40805 *chromedriver-v39.2.7-linux-ppc64le.zip\nb83820b37325c0a"
  },
  {
    "path": "build/linux/riscv64/electron.sh",
    "chars": 120,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\nexport ELECTRON_VERSION=\"39.2.7\"\nexport VSCODE_ELECTRON_TAG=\"v${ELECTRON_VERSION}.riscv1\"\n"
  },
  {
    "path": "build/linux/riscv64/electron.sha256sums",
    "chars": 1098,
    "preview": "6759ef2bd69a2e31a3f0e17c4e4c0bf239b54f08525572201ae7760851168487 *chromedriver-v39.2.7-linux-riscv64.zip\n89562e30982d8ac"
  },
  {
    "path": "build/linux/riscv64/ripgrep.sh",
    "chars": 506,
    "preview": "#!/usr/bin/env bash\n\n# microsoft/ripgrep-prebuilt doesn't support riscv64.\n# Tracking PR: https://github.com/microsoft/r"
  },
  {
    "path": "build/linux/verify_abi_requirements.sh",
    "chars": 937,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nFILES=$(\n  find \"${SEARCH_PATH}\" -type f -executable -name \"node\"\n  find \"${SEARCH_PATH}\" -"
  },
  {
    "path": "build/linux/verify_cxx11_requirements.sh",
    "chars": 379,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nFILES=$( find \"${SEARCH_PATH}\" -name \"*.node\" -not -path \"*prebuilds*\" -not -path \"*extensi"
  },
  {
    "path": "build/osx/include.gypi",
    "chars": 175,
    "preview": "{\n  'target_defaults': {\n    'conditions': [\n      ['OS==\"mac\"', {\n        'xcode_settings': {\n          'OTHER_CPLUSPLU"
  },
  {
    "path": "build/windows/appx/build.sh",
    "chars": 433,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\n# Add Windows SDK to path\nSDK='/C/Program Files (x86)/Windows Kits/10/bin/10.0.26100.0/x64"
  },
  {
    "path": "build/windows/msi/build-updates-disabled.sh",
    "chars": 336,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\nCALLER_DIR=$( pwd )\n\ncd \"$( dirname \"${BASH_SOURCE[0]}\" )\"\n\nSCRIPT_DIR=$( pwd )\n\ncd \"../.."
  },
  {
    "path": "build/windows/msi/build.sh",
    "chars": 5239,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\nCALLER_DIR=$( pwd )\n\ncd \"$( dirname \"${BASH_SOURCE[0]}\" )\"\n\nWIN_SDK_MAJOR_VERSION=\"10\"\nWIN"
  },
  {
    "path": "build/windows/msi/i18n/vscodium.de-de.wxl",
    "chars": 2234,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<WixLocalization Culture=\"de-de\" Codepage=\"1252\" xmlns=\"http://schemas.microsoft"
  },
  {
    "path": "build/windows/msi/i18n/vscodium.en-us.wxl",
    "chars": 2142,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<WixLocalization Culture=\"en-us\" Codepage=\"1252\" xmlns=\"http://schemas.microsoft"
  },
  {
    "path": "build/windows/msi/i18n/vscodium.es-es.wxl",
    "chars": 2142,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<WixLocalization Culture=\"es-es\" Codepage=\"1252\" xmlns=\"http://schemas.microsoft"
  },
  {
    "path": "build/windows/msi/i18n/vscodium.fr-fr.wxl",
    "chars": 2142,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<WixLocalization Culture=\"fr-fr\" Codepage=\"1252\" xmlns=\"http://schemas.microsoft"
  },
  {
    "path": "build/windows/msi/i18n/vscodium.it-it.wxl",
    "chars": 2142,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<WixLocalization Culture=\"it-it\" Codepage=\"1252\" xmlns=\"http://schemas.microsoft"
  },
  {
    "path": "build/windows/msi/i18n/vscodium.ja-jp.wxl",
    "chars": 2141,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<WixLocalization Culture=\"ja-jp\" Codepage=\"932\" xmlns=\"http://schemas.microsoft."
  },
  {
    "path": "build/windows/msi/i18n/vscodium.ko-kr.wxl",
    "chars": 2141,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<WixLocalization Culture=\"ko-kr\" Codepage=\"949\" xmlns=\"http://schemas.microsoft."
  },
  {
    "path": "build/windows/msi/i18n/vscodium.ru-ru.wxl",
    "chars": 2253,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<WixLocalization Culture=\"ru-ru\" Codepage=\"1251\" xmlns=\"http://schemas.microsoft."
  },
  {
    "path": "build/windows/msi/i18n/vscodium.zh-cn.wxl",
    "chars": 2141,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<WixLocalization Culture=\"zh-cn\" Codepage=\"936\" xmlns=\"http://schemas.microsoft."
  },
  {
    "path": "build/windows/msi/i18n/vscodium.zh-tw.wxl",
    "chars": 2141,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<WixLocalization Culture=\"zh-tw\" Codepage=\"950\" xmlns=\"http://schemas.microsoft."
  },
  {
    "path": "build/windows/msi/includes/vscodium-variables.wxi",
    "chars": 906,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Include>\n  <!-- Setup UI strings. -->\n  <?if $(env.Platform)=x86?>\n    <?define"
  },
  {
    "path": "build/windows/msi/vscodium.wxs",
    "chars": 112657,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Wix xmlns=\"http://schemas.microsoft.com/wix/2006/wi\" xmlns:util=\"http://schemas."
  },
  {
    "path": "build/windows/msi/vscodium.xsl",
    "chars": 19766,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<xsl:stylesheet version=\"1.0\"\n  xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"\n"
  },
  {
    "path": "build/windows/package.sh",
    "chars": 1216,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091\n\nset -ex\n\nif [[ \"${CI_BUILD}\" == \"no\" ]]; then\n  exit 1\nfi\n\ntar -xzf ./v"
  },
  {
    "path": "build/windows/rtf/make.sh",
    "chars": 510,
    "preview": "#!/usr/bin/env bash\n\ncd \"$( dirname \"${BASH_SOURCE[0]}\" )\"/../../../vscode || { echo \"'vscode' dir not found\"; exit 1; }"
  },
  {
    "path": "build.sh",
    "chars": 2552,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091\n\nset -ex\n\n. version.sh\n\nif [[ \"${SHOULD_BUILD}\" == \"yes\" ]]; then\n  echo"
  },
  {
    "path": "build_cli.sh",
    "chars": 3924,
    "preview": "#!/usr/bin/env bash\n\nset -ex\n\ncd cli\n\nexport CARGO_NET_GIT_FETCH_WITH_CLI=\"true\"\nexport VSCODE_CLI_APP_NAME=\"$( echo \"${"
  },
  {
    "path": "check_cron_or_pr.sh",
    "chars": 921,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC2129\n\nset -e\n\nif [[ \"${GITHUB_EVENT_NAME}\" == \"pull_request\" ]]; then\n\techo \""
  },
  {
    "path": "check_tags.sh",
    "chars": 24700,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC2129\n\nset -e\n\nif [[ -z \"${GH_TOKEN}\" ]] && [[ -z \"${GITHUB_TOKEN}\" ]] && [[ -"
  },
  {
    "path": "dev/build.ps1",
    "chars": 210,
    "preview": "# powershell -ExecutionPolicy ByPass -File .\\build\\build.ps1\n\n# first so `bash` is the one installed with `git`, avoid c"
  },
  {
    "path": "dev/build.sh",
    "chars": 3971,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091,SC2129\n\n### Windows\n# to run with Bash: \"C:\\Program Files\\Git\\bin\\bash.e"
  },
  {
    "path": "dev/build_docker.sh",
    "chars": 1016,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091\n\nexists() { type -t \"$1\" &> /dev/null; }\n\nexport APP_NAME=\"VSCodium\"\nexp"
  },
  {
    "path": "dev/cli.sh",
    "chars": 678,
    "preview": "export CARGO_NET_GIT_FETCH_WITH_CLI=\"true\"\nexport VSCODE_CLI_APP_NAME=\"vscodium\"\nexport VSCODE_CLI_BINARY_NAME=\"codium-s"
  },
  {
    "path": "dev/merge-patches.sh",
    "chars": 1154,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nnormalize_file() {\n  if [[ \"${1}\" == *patch ]]; then\n    FILE=\"${1}\"\n  else\n    FILE=\"${1}."
  },
  {
    "path": "dev/osx/codesign.env.template",
    "chars": 131,
    "preview": "CERTIFICATE_OSX_APP_PASSWORD=\nCERTIFICATE_OSX_ID=\nCERTIFICATE_OSX_P12_DATA=\nCERTIFICATE_OSX_P12_PASSWORD=\nCERTIFICATE_OS"
  },
  {
    "path": "dev/patch.sh",
    "chars": 1370,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nnormalize_file() {\n  if [[ \"${1}\" == *patch ]]; then\n    FILE=\"${1}\"\n  else\n    FILE=\"${1}."
  },
  {
    "path": "dev/update_api.sh",
    "chars": 1637,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nexport VSCODE_QUALITY=\"stable\"\n\nwhile getopts \":i\" opt; do\n  case \"$opt\" in\n    i)\n      ex"
  },
  {
    "path": "dev/update_patches.sh",
    "chars": 5513,
    "preview": "#!/usr/bin/env bash\n\nexport VSCODE_QUALITY=\"stable\"\n\nwhile getopts \":i\" opt; do\n  case \"$opt\" in\n    i)\n      export VSC"
  },
  {
    "path": "docs/accounts-authentication.md",
    "chars": 575,
    "preview": "<!-- order: 0 -->\n\n# Accounts authentication\n\n## GitHub\n\nThe GitHub authentication has been patched to use personal acce"
  },
  {
    "path": "docs/ext-github-copilot.md",
    "chars": 878,
    "preview": "<!-- order: 16 -->\n\n# Extension: GitHub Copilot\n\nUnlike Visual Studio Code, in VSCodium, Copilot features are disabled a"
  },
  {
    "path": "docs/extensions-compatibility.md",
    "chars": 2170,
    "preview": "<!-- order: 0 -->\n\n# Extensions compatibility\n\n## Table of Contents\n\n- [Incompatibility](#incompatibility)\n- [Replacemen"
  },
  {
    "path": "docs/extensions.md",
    "chars": 9297,
    "preview": "<!-- order: 15 -->\n\n# Extensions + Marketplace\n\n## Table of Contents\n\n- [Marketplace](#marketplace)\n- [How to use the Op"
  },
  {
    "path": "docs/getting-started.md",
    "chars": 1986,
    "preview": "<!-- order: 5 -->\n\n# Getting Started with VSCodium\n\nThis guide will help you get started with VSCodium.\n\n## Table of Con"
  },
  {
    "path": "docs/howto-build.md",
    "chars": 4063,
    "preview": "<!-- order: 35 -->\n\n# How to build VSCodium\n\n## Table of Contents\n\n- [Dependencies](#dependencies)\n  - [Linux](#dependen"
  },
  {
    "path": "docs/index.md",
    "chars": 4582,
    "preview": "# Documentation\n\n## Table of Contents\n\n- [Getting Started with VSCodium](https://github.com/VSCodium/vscodium/blob/maste"
  },
  {
    "path": "docs/migration.md",
    "chars": 2714,
    "preview": "<!-- order: 20 -->\n\n# Migration\n\n## Table of Contents\n\n- [Manual Migration from Visual Studio Code to VSCodium](#manual-"
  },
  {
    "path": "docs/others.md",
    "chars": 468,
    "preview": "<!-- order: 30 -->\n\n# Other Resources\n\n## Table of Contents\n\n- [What are reh and reh-web archives?](#reh)\n\n## <a id=\"reh"
  },
  {
    "path": "docs/telemetry.md",
    "chars": 4712,
    "preview": "<!-- order: 10 -->\n\n# Getting all telemetry out\n\nThis page explains how VSCodium handles telemetry and how it enhances y"
  },
  {
    "path": "docs/troubleshooting.md",
    "chars": 2876,
    "preview": "<!-- order: 25 -->\n\n# Troubleshooting\n\n## Table of Contents\n\n- [Linux](#linux)\n  - [Fonts showing up as rectangles](#lin"
  },
  {
    "path": "docs/usage.md",
    "chars": 3748,
    "preview": "<!-- order: 25 -->\n\n# Usage\n\n## Table of Contents\n\n- [Sign in with GitHub](#signin-github)\n- [Accounts authentication](h"
  },
  {
    "path": "font-size/.artifactrc.yml",
    "chars": 136,
    "preview": "artifacts:\n  \"@daiyam/artifact-lang-js\":\n    version: 0.9.3\n    requires:\n      - \"22\"\n  \"@daiyam/artifact-lang-ts\":\n   "
  },
  {
    "path": "font-size/.editorconfig",
    "chars": 243,
    "preview": "root = true\n\n[*]\nindent_style = tab\ntab_width = 4\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ninser"
  },
  {
    "path": "font-size/.fixpackrc",
    "chars": 384,
    "preview": "{\n\t\"sortToTop\": [\n\t\t\"name\",\n\t\t\"displayName\",\n\t\t\"description\",\n\t\t\"version\",\n\t\t\"private\",\n\t\t\"author\",\n\t\t\"publisher\",\n\t\t\"li"
  },
  {
    "path": "font-size/.gitignore",
    "chars": 21,
    "preview": "/node_modules/\n/lib/\n"
  },
  {
    "path": "font-size/.nvmrc",
    "chars": 9,
    "preview": "v22.21.1\n"
  },
  {
    "path": "font-size/.vscode/settings.json",
    "chars": 119,
    "preview": "{\n\t\"search.exclude\": {\n\t\t\"package-lock.json\": true,\n\t\t\"lib/**\": true,\n\t},\n\t\"taskExplorer.exclude\": [\n\t\t\".husky\",\n\t],\n}\n"
  },
  {
    "path": "font-size/.xo-config.json",
    "chars": 2946,
    "preview": "{\n\t\"ignores\": [\n\t\t\"*.config.js\",\n\t\t\"*.config.ts\"\n\t],\n\t\"rules\": {\n\t\t\"@typescript-eslint/ban-types\": \"off\",\n\t\t\"@typescript"
  },
  {
    "path": "font-size/generate-css.ts",
    "chars": 7632,
    "preview": "#!/usr/bin/env node\n\nimport path from 'node:path';\nimport process from 'node:process';\nimport fse from '@zokugun/fs-extr"
  },
  {
    "path": "font-size/package.json",
    "chars": 576,
    "preview": "{\n\t\"name\": \"font-size\",\n\t\"description\": \"\",\n\t\"version\": \"1.0.0\",\n\t\"author\": {\n\t\t\"name\": \"Baptiste Augrain\",\n\t\t\"email\": \""
  },
  {
    "path": "font-size/tsconfig.base.json",
    "chars": 5936,
    "preview": "{\n\t\"compilerOptions\": {\n\t\t/* Language and Environment */\n\t\t\"target\": \"ES2022\",\t\t\t\t\t\t\t\t/* Specify ECMAScript target versi"
  },
  {
    "path": "font-size/tsconfig.json",
    "chars": 284,
    "preview": "{\n\t\"extends\": \"./tsconfig.base.json\",\n\t\"compilerOptions\": {\n\t\t/* Basic Options */\n\t\t\"outDir\": \".\",\n\t\t\"rootDir\": \".\",\n\t\t\""
  },
  {
    "path": "get_pr.sh",
    "chars": 604,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\n# git workaround\nif [[ \"${CI_BUILD}\" != \"no\" ]]; then\n  git config --global --add safe.dire"
  },
  {
    "path": "get_repo.sh",
    "chars": 3393,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC2129\n\nset -e\n\n# git workaround\nif [[ \"${CI_BUILD}\" != \"no\" ]]; then\n  git con"
  },
  {
    "path": "icons/README.md",
    "chars": 347,
    "preview": "## Files\n\n| filename                  | color  | width | border |\n| ------------------------- | ------ | ----- | ------ "
  },
  {
    "path": "icons/build_icons.sh",
    "chars": 9033,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091\n\nset -e\n\n# DEBUG\n# set -o xtrace\n\nwhile getopts \":i\" opt; do\n  case \"$op"
  },
  {
    "path": "npmrc",
    "chars": 64,
    "preview": "build_from_source=\"true\"\nlegacy-peer-deps=\"true\"\ntimeout=180000\n"
  },
  {
    "path": "patches/add-remote-url.patch",
    "chars": 1380,
    "preview": "diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts\nindex b935764..68067db 100644\n--- a/build/gulpfile.reh.ts\n+++"
  },
  {
    "path": "patches/alpine/reh/fix-node-docker.patch",
    "chars": 1241,
    "preview": "diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts\nindex cb1a0a5..375851e 100644\n--- a/build/gulpfile.reh.ts\n+++"
  },
  {
    "path": "patches/binary-name.patch",
    "chars": 1587,
    "preview": "diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts\nindex a103f11..cc95785 100644\n--- a/build/gulpfile.vsco"
  },
  {
    "path": "patches/brand.patch",
    "chars": 141119,
    "preview": "diff --git a/extensions/configuration-editing/src/configurationEditingMain.ts b/extensions/configuration-editing/src/con"
  },
  {
    "path": "patches/cli.patch",
    "chars": 11742,
    "preview": "diff --git a/cli/src/commands/serve_web.rs b/cli/src/commands/serve_web.rs\nindex d3f7db8..988024b 100644\n--- a/cli/src/c"
  },
  {
    "path": "patches/disable-cloud.patch",
    "chars": 3093,
    "preview": "diff --git a/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts b/src/vs/workbench/contrib/edit"
  },
  {
    "path": "patches/disable-copilot.patch",
    "chars": 9295,
    "preview": "diff --git a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts b/src/vs/workbench/contrib/chat/browser/action"
  },
  {
    "path": "patches/disable-missing-vsda.patch",
    "chars": 4966,
    "preview": "diff --git a/src/vs/platform/sign/browser/signService.ts b/src/vs/platform/sign/browser/signService.ts\nindex c288b2e..83"
  },
  {
    "path": "patches/disable-signature-verification.patch",
    "chars": 1068,
    "preview": "diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagemen"
  },
  {
    "path": "patches/disable-update.patch.yet",
    "chars": 499,
    "preview": "diff --git a/src/vs/platform/update/common/update.config.contribution.ts b/src/vs/platform/update/common/update.config.c"
  },
  {
    "path": "patches/disable-vscodedev.patch",
    "chars": 7414,
    "preview": "diff --git a/extensions/github/package.json b/extensions/github/package.json\nindex bce90fe..73debf7 100644\n--- a/extensi"
  },
  {
    "path": "patches/ext-from-gh.patch",
    "chars": 493,
    "preview": "diff --git a/build/lib/builtInExtensions.ts b/build/lib/builtInExtensions.ts\nindex d52567b..fe5b988 100644\n--- a/build/l"
  },
  {
    "path": "patches/extensions-disable-mangler.patch",
    "chars": 458,
    "preview": "--- vscode-1.80.1/extensions/mangle-loader.js.old\t2023-07-12 18:45:52.000000000 +0200\n+++ vscode-1.80.1/extensions/mangl"
  },
  {
    "path": "patches/feat-announcements.patch",
    "chars": 4534,
    "preview": "diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts b/src/vs/workbench/co"
  },
  {
    "path": "patches/feat-command-filter.patch",
    "chars": 8114,
    "preview": "diff --git a/src/vs/workbench/contrib/commands/common/commands.contribution.ts b/src/vs/workbench/contrib/commands/commo"
  },
  {
    "path": "patches/feat-experimental-font.patch",
    "chars": 246989,
    "preview": "diff --git a/src/vs/base/browser/ui/actionbar/actionbar.css b/src/vs/base/browser/ui/actionbar/actionbar.css\nindex 467b1"
  },
  {
    "path": "patches/feat-ext-unsafe.patch",
    "chars": 1482,
    "preview": "diff --git a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts b/src/vs/platform/extensionManagement"
  },
  {
    "path": "patches/feat-user-product.patch",
    "chars": 3551,
    "preview": "diff --git a/src/cli.ts b/src/cli.ts\nindex b643e34..2f228ef 100644\n--- a/src/cli.ts\n+++ b/src/cli.ts\n@@ -5,2 +5,4 @@\n \n+"
  },
  {
    "path": "patches/fix-build-vsce.patch",
    "chars": 12807,
    "preview": "diff --git a/build/.moduleignore b/build/.moduleignore\nindex ed36151..022d6ed 100644\n--- a/build/.moduleignore\n+++ b/bui"
  },
  {
    "path": "patches/fix-eol-banner.patch",
    "chars": 3074,
    "preview": "diff --git a/src/vs/workbench/browser/parts/banner/bannerPart.ts b/src/vs/workbench/browser/parts/banner/bannerPart.ts\ni"
  },
  {
    "path": "patches/fix-extensions-control-connection.patch",
    "chars": 913,
    "preview": "diff --git a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts b/src/vs/platform/extensionManagement"
  },
  {
    "path": "patches/fix-gallery.patch",
    "chars": 2226,
    "preview": "diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts\nindex 3954823..f8026cd 100644\n--- a/src/vs/ba"
  },
  {
    "path": "patches/fix-keymap.patch",
    "chars": 5890,
    "preview": "diff --git a/.npmrc b/.npmrc\nindex 2c7c6c1..5d5fc7d 100644\n--- a/.npmrc\n+++ b/.npmrc\n@@ -6,2 +6,3 @@ ignore-scripts=fals"
  },
  {
    "path": "patches/fix-npm-preinstall.patch",
    "chars": 706,
    "preview": "diff --git a/build/npm/preinstall.ts b/build/npm/preinstall.ts\nindex 3476fca..e23329f 100644\n--- a/build/npm/preinstall."
  },
  {
    "path": "patches/fix-policies.patch",
    "chars": 16946,
    "preview": "diff --git a/build/.moduleignore b/build/.moduleignore\nindex ed36151..c955e07 100644\n--- a/build/.moduleignore\n+++ b/bui"
  },
  {
    "path": "patches/fix-remote-libs.patch",
    "chars": 745,
    "preview": "diff --git a/remote/package-lock.json b/remote/package-lock.json\nindex 30a7391..94f839a 100644\n--- a/remote/package-lock"
  },
  {
    "path": "patches/fix-tunnel-extension-recommendation.patch",
    "chars": 706,
    "preview": "diff --git a/src/vs/workbench/contrib/remoteTunnel/electron-browser/remoteTunnel.contribution.ts b/src/vs/workbench/cont"
  },
  {
    "path": "patches/helper/settings.patch",
    "chars": 706,
    "preview": "diff --git a/.vscode/settings.json b/.vscode/settings.json\nindex 7434345..f870f59 100644\n--- a/.vscode/settings.json\n+++"
  },
  {
    "path": "patches/insider/system-extensions.patch",
    "chars": 846,
    "preview": "diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts b/src/vs/workbench/contrib/extens"
  },
  {
    "path": "patches/linux/arch-0-support.patch",
    "chars": 4941,
    "preview": "diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh\nindex f0d5fe6..fdb3707 "
  },
  {
    "path": "patches/linux/arch-1-ppc64le.patch",
    "chars": 14699,
    "preview": "diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh\nindex fdb3707..67bc741 "
  },
  {
    "path": "patches/linux/arch-2-riscv64.patch",
    "chars": 8106,
    "preview": "diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts\nindex f986b4e..557990e 100644\n--- a/build/gulpfile.reh.ts\n+++"
  },
  {
    "path": "patches/linux/arch-3-loong64.patch",
    "chars": 4635,
    "preview": "diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts\nindex ff202a7..74bd1bc 100644\n--- a/build/gulpfile.reh.ts\n+++"
  },
  {
    "path": "patches/linux/arch-4-s390x.patch",
    "chars": 12915,
    "preview": "diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh\nindex 6ff90d4..381150d "
  },
  {
    "path": "patches/linux/cli.patch",
    "chars": 1060,
    "preview": "diff --git a/cli/src/tunnels/code_server.rs b/cli/src/tunnels/code_server.rs\nindex bbabadc..08af0df 100644\n--- a/cli/src"
  },
  {
    "path": "patches/linux/client/avoid-crash-16k-page-size.patch",
    "chars": 706,
    "preview": "diff --git a/src/main.ts b/src/main.ts\nindex c132c9b..51a7290 100644\n--- a/src/main.ts\n+++ b/src/main.ts\n@@ -524,2 +524,"
  },
  {
    "path": "patches/linux/client/disable-remote.patch",
    "chars": 464,
    "preview": "diff --git a/build/npm/dirs.ts b/build/npm/dirs.ts\nindex 48d76e2..270b078 100644\n--- a/build/npm/dirs.ts\n+++ b/build/npm"
  },
  {
    "path": "patches/linux/feat-logs-home.patch",
    "chars": 5978,
    "preview": "diff --git a/src/vs/platform/environment/common/environment.ts b/src/vs/platform/environment/common/environment.ts\nindex"
  },
  {
    "path": "patches/linux/fix-build.patch",
    "chars": 43900,
    "preview": "diff --git a/build/linux/dependencies-generator.ts b/build/linux/dependencies-generator.ts\nindex 874c802..04731cf 100644"
  },
  {
    "path": "patches/linux/fix-global-policy.patch",
    "chars": 411,
    "preview": "diff --git a/src/vs/base/common/policy.ts b/src/vs/base/common/policy.ts\nindex 8141b0f..33599d9 100644\n--- a/src/vs/base"
  },
  {
    "path": "patches/linux/fix-npm-postinstall.patch",
    "chars": 814,
    "preview": "diff --git a/build/npm/postinstall.ts b/build/npm/postinstall.ts\nindex c4bbbf5..2a1c6c5 100644\n--- a/build/npm/postinsta"
  },
  {
    "path": "patches/linux/fix-reh-bootstrap.patch",
    "chars": 980,
    "preview": "diff --git a/src/bootstrap-esm.ts b/src/bootstrap-esm.ts\nindex 54681a2..39f72ad 100644\n--- a/src/bootstrap-esm.ts\n+++ b/"
  },
  {
    "path": "patches/linux/reh/s390x/package.json.patch",
    "chars": 991,
    "preview": "diff --git a/package-lock.json b/package-lock.json\nindex fd395eb..f56bc78 100644\n--- a/package-lock.json\n+++ b/package-l"
  },
  {
    "path": "patches/linux/rpm.patch",
    "chars": 558,
    "preview": "diff --git a/resources/linux/rpm/code.spec.template b/resources/linux/rpm/code.spec.template\nindex a73bc02..242bab0 1006"
  },
  {
    "path": "patches/linux/update-xdg-path.patch",
    "chars": 1279,
    "preview": "diff --git a/extensions/git/src/ipc/ipcServer.ts b/extensions/git/src/ipc/ipcServer.ts\nindex a7142fe..526ca17 100644\n---"
  },
  {
    "path": "patches/optional-tree-sitter.patch",
    "chars": 1523,
    "preview": "diff --git a/build/package-lock.json b/build/package-lock.json\nindex 445e842..1dea5d1 100644\n--- a/build/package-lock.js"
  },
  {
    "path": "patches/osx/fix-codesign.patch.no",
    "chars": 1699,
    "preview": "diff --git a/build/darwin/sign.js b/build/darwin/sign.js\nindex dff30fd..df48bee 100644\n--- a/build/darwin/sign.js\n+++ b/"
  },
  {
    "path": "patches/osx/fix-emulated-urls.patch",
    "chars": 762,
    "preview": "diff --git a/src/vs/workbench/electron-browser/window.ts b/src/vs/workbench/electron-browser/window.ts\nindex d507690..1a"
  },
  {
    "path": "patches/remove-mangle.patch",
    "chars": 1427,
    "preview": "diff --git a/build/lib/compilation.ts b/build/lib/compilation.ts\nindex 948c6b4..66ecdd3 100644\n--- a/build/lib/compilati"
  },
  {
    "path": "patches/report-issue.patch",
    "chars": 5741,
    "preview": "diff --git a/src/vs/workbench/contrib/extensions/electron-browser/extensionsSlowActions.ts b/src/vs/workbench/contrib/ex"
  },
  {
    "path": "patches/sourcemaps.patch",
    "chars": 2556,
    "preview": "diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts\nindex 24462a3..1daa855 100644\n--- a/build/lib/extensions."
  },
  {
    "path": "patches/telemetry.patch",
    "chars": 4031,
    "preview": "diff --git a/src/vs/platform/telemetry/common/telemetryService.ts b/src/vs/platform/telemetry/common/telemetryService.ts"
  },
  {
    "path": "patches/terminal-suggest.patch",
    "chars": 1725,
    "preview": "diff --git a/extensions/terminal-suggest/src/completions/codium-insiders.ts b/extensions/terminal-suggest/src/completion"
  },
  {
    "path": "patches/update-cache-path.patch",
    "chars": 782,
    "preview": "diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateSe"
  },
  {
    "path": "patches/update-electron.patch.no",
    "chars": 17185,
    "preview": "diff --git a/.npmrc b/.npmrc\nindex e4a5cc2..e3be238 100644\n--- a/.npmrc\n+++ b/.npmrc\n@@ -1,3 +1,3 @@\n disturl=\"https://e"
  },
  {
    "path": "patches/use-github-pat.patch",
    "chars": 1349,
    "preview": "diff --git a/extensions/github-authentication/src/common/env.ts b/extensions/github-authentication/src/common/env.ts\nind"
  },
  {
    "path": "patches/user/readme.txt",
    "chars": 106,
    "preview": "store user patches at location patches/user and those will be applied to vscode source git by the scripts\n"
  },
  {
    "path": "patches/version-0-release.patch",
    "chars": 1625,
    "preview": "diff --git a/build/gulpfile.vscode.linux.ts b/build/gulpfile.vscode.linux.ts\nindex c5d2163..b4768b9 100644\n--- a/build/g"
  },
  {
    "path": "patches/version-1-update.patch",
    "chars": 13472,
    "preview": "diff --git a/src/vs/platform/update/common/update.ts b/src/vs/platform/update/common/update.ts\nindex cbeb3a6..bc382cc 10"
  },
  {
    "path": "patches/windows/appx.patch",
    "chars": 2365,
    "preview": "diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts\nindex d3ab651..d067b5b 100644\n--- a/build/gulpfile.vsco"
  },
  {
    "path": "patches/windows/cli.patch",
    "chars": 320,
    "preview": "diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs\nindex 3e0895f..e518ad8 100644\n--- a/cli/src/update_se"
  },
  {
    "path": "patches/windows/win7.patch",
    "chars": 271,
    "preview": "diff --git a/build/win32/code.iss b/build/win32/code.iss\nindex 44c9f2f..454aa09 100644\n--- a/build/win32/code.iss\n+++ b/"
  },
  {
    "path": "prepare_assets.sh",
    "chars": 8291,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091\n\nset -e\n\nAPP_NAME_LC=\"$( echo \"${APP_NAME}\" | awk '{print tolower($0)}' "
  },
  {
    "path": "prepare_checksums.sh",
    "chars": 322,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nnpm install -g checksum\n\nsum_file() {\n  if [[ -f \"${1}\" ]]; then\n    echo \"Calculating chec"
  },
  {
    "path": "prepare_src.sh",
    "chars": 874,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091\n\nset -e\n\nnpm install -g checksum\n\nsum_file() {\n  if [[ -f \"${1}\" ]]; the"
  },
  {
    "path": "prepare_vscode.sh",
    "chars": 11717,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091,2154\n\nset -e\n\nif [[ \"${VSCODE_QUALITY}\" == \"insider\" ]]; then\n  cp -rp s"
  },
  {
    "path": "product.json",
    "chars": 15367,
    "preview": "{\n  \"extensionAllowedBadgeProviders\": [\n    \"api.bintray.com\",\n    \"api.travis-ci.com\",\n    \"api.travis-ci.org\",\n    \"ap"
  },
  {
    "path": "release.sh",
    "chars": 3991,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091\n\nset -ex\n\nif [[ -z \"${GH_TOKEN}\" ]] && [[ -z \"${GITHUB_TOKEN}\" ]] && [[ "
  },
  {
    "path": "release_notes.md",
    "chars": 16004,
    "preview": "update vscode to [@@MS_TAG@@](@@MS_URL@@)\n\n@@RELEASE_NOTES@@\n\n## x86 64bits\n\n<table>\n  <tr>\n    <td rowspan=\"8\">Windows<"
  },
  {
    "path": "src/insider/resources/linux/code-url-handler.desktop",
    "chars": 322,
    "preview": "[Desktop Entry]\nName=@@NAME_LONG@@ - URL Handler\nComment=Code Editing. Redefined.\nGenericName=Text Editor\nExec=@@EXEC@@ "
  },
  {
    "path": "src/insider/resources/linux/code.appdata.xml",
    "chars": 648,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component type=\"desktop\">\n\t<id>@@NAME@@.desktop</id>\n\t<metadata_license>@@LICENS"
  },
  {
    "path": "src/insider/resources/linux/code.desktop",
    "chars": 677,
    "preview": "[Desktop Entry]\nName=@@NAME_LONG@@\nComment=Code Editing. Redefined.\nGenericName=Text Editor\nExec=@@EXEC@@ %F\nIcon=@@ICON"
  },
  {
    "path": "src/insider/resources/linux/rpm/code.xpm",
    "chars": 2106168,
    "preview": "/* XPM */\nstatic char *code[] = {\n/* columns rows colors chars-per-pixel */\n\"1024 1024 219 2 \",\n\"   c #7FB57FB57FB5\",\n\"."
  },
  {
    "path": "src/insider/resources/win32/VisualElementsManifest.xml",
    "chars": 379,
    "preview": "<Application xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n\t\t<VisualElements\n\t\t\t\tBackgroundColor=\"#2D2D30\"\n\t\t\t\t"
  },
  {
    "path": "src/stable/resources/linux/code-url-handler.desktop",
    "chars": 322,
    "preview": "[Desktop Entry]\nName=@@NAME_LONG@@ - URL Handler\nComment=Code Editing. Redefined.\nGenericName=Text Editor\nExec=@@EXEC@@ "
  },
  {
    "path": "src/stable/resources/linux/code.appdata.xml",
    "chars": 648,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component type=\"desktop\">\n\t<id>@@NAME@@.desktop</id>\n\t<metadata_license>@@LICENS"
  },
  {
    "path": "src/stable/resources/linux/code.desktop",
    "chars": 730,
    "preview": "[Desktop Entry]\nName=@@NAME_LONG@@\nComment=Code Editing. Redefined.\nGenericName=Text Editor\nGenericName[ar]=محرر نصوص\nEx"
  },
  {
    "path": "src/stable/resources/linux/rpm/code.xpm",
    "chars": 2105332,
    "preview": "/* XPM */\nstatic char *code[] = {\n/* columns rows colors chars-per-pixel */\n\"1024 1024 181 2 \",\n\"   c #7FB57FB57FB5\",\n\"."
  },
  {
    "path": "src/stable/resources/win32/VisualElementsManifest.xml",
    "chars": 368,
    "preview": "<Application xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n\t\t<VisualElements\n\t\t\t\tBackgroundColor=\"#2D2D30\"\n\t\t\t\t"
  },
  {
    "path": "stores/snapcraft/check_version.sh",
    "chars": 1551,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC2129\n\nset -e\n\nexport SHOULD_BUILD=\"no\"\nexport SHOULD_DEPLOY_TO_RELEASE=\"no\"\ne"
  },
  {
    "path": "stores/snapcraft/insider/snap/hooks/configure",
    "chars": 152,
    "preview": "#!/usr/bin/env bash\nset -eu\n\nwayland_native=\"$(snapctl get wayland-native)\"\nif [[ -z \"$wayland_native\" ]]; then\n    snap"
  },
  {
    "path": "stores/snapcraft/insider/snap/local/bin/electron-launch",
    "chars": 9277,
    "preview": "#!/usr/bin/env bash\n\n# On Fedora $SNAP is under /var and there is some magic to map it to /snap.\n# We need to handle tha"
  },
  {
    "path": "stores/snapcraft/insider/snap/snapcraft.yaml",
    "chars": 3753,
    "preview": "name: codium-insiders\nadopt-info: codium-insiders\nsummary: Code editing. Redefined.\ndescription: |\n  Binary releases of "
  },
  {
    "path": "stores/snapcraft/stable/snap/hooks/configure",
    "chars": 152,
    "preview": "#!/usr/bin/env bash\nset -eu\n\nwayland_native=\"$(snapctl get wayland-native)\"\nif [[ -z \"$wayland_native\" ]]; then\n    snap"
  },
  {
    "path": "stores/snapcraft/stable/snap/local/bin/electron-launch",
    "chars": 9277,
    "preview": "#!/usr/bin/env bash\n\n# On Fedora $SNAP is under /var and there is some magic to map it to /snap.\n# We need to handle tha"
  },
  {
    "path": "stores/snapcraft/stable/snap/snapcraft.yaml",
    "chars": 3481,
    "preview": "name: codium\nadopt-info: codium\nsummary: Code editing. Redefined.\ndescription: |\n  Binary releases of Visual Studio Code"
  },
  {
    "path": "stores/winget/check_version.sh",
    "chars": 736,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nVERSIONS=$( curl --silent \"https://api.github.com/repos/microsoft/winget-pkgs/contents/mani"
  },
  {
    "path": "undo_telemetry.sh",
    "chars": 1304,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091,SC2016\n\nset -ex\n\n# list of urls to match:\n# - mobile.events.data.microso"
  },
  {
    "path": "update_upstream.sh",
    "chars": 832,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC2129\n\nset -e\n\nif [[ \"${SHOULD_BUILD}\" != \"yes\" ]]; then\n  echo \"Will not upda"
  },
  {
    "path": "update_version.sh",
    "chars": 7128,
    "preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1091\n\nset -e\n\nif [[ \"${SHOULD_BUILD}\" != \"yes\" && \"${FORCE_UPDATE}\" != \"true\""
  },
  {
    "path": "upload_sourcemaps.sh",
    "chars": 2418,
    "preview": "#!/usr/bin/env bash\n\nset -e\n\nnpm install -g checksum github-release-cli\n\nmkdir -p sourcemaps\ncd sourcemaps\n\nSOURCE_DIR=\""
  },
  {
    "path": "upstream/insider.json",
    "chars": 79,
    "preview": "{\n  \"tag\": \"1.110.0\",\n  \"commit\": \"0870c2a0c7c0564e7631bfed2675573a94ba4455\"\n}\n"
  },
  {
    "path": "upstream/stable.json",
    "chars": 79,
    "preview": "{\n  \"tag\": \"1.110.1\",\n  \"commit\": \"61b3d0ab13be7dda2389f1d3e60a119c7f660cc3\"\n}\n"
  },
  {
    "path": "utils.sh",
    "chars": 1767,
    "preview": "#!/usr/bin/env bash\n\nAPP_NAME=\"${APP_NAME:-VSCodium}\"\nAPP_NAME_LC=\"$( echo \"${APP_NAME}\" | awk '{print tolower($0)}' )\"\n"
  },
  {
    "path": "version.sh",
    "chars": 545,
    "preview": "#!/usr/bin/env bash\n\nif [[ -z \"${BUILD_SOURCEVERSION}\" ]]; then\n\n    if type -t \"sha1sum\" &> /dev/null; then\n      BUILD"
  }
]

// ... and 58 more files (download for full content)

About this extraction

This page contains the full source code of the VSCodium/vscodium GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 253 files (5.1 MB), approximately 1.4M tokens, and a symbol index with 16 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!