[
  {
    "path": ".editorconfig",
    "content": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# EditorConfig is awesome: https://EditorConfig.org\n\nroot = true\n\n[*]\nend_of_line = lf\ncharset = utf-8\ninsert_final_newline = true\n\n[*.{lua,tera}]\nindent_style = tab\n\n[*.{diff,md}]\ntrim_trailing_whitespace = false\nindent_style = space\nindent_size = 4\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "content": "name: Bug report\ndescription: Report a problem with Catppuccin\nlabels: [bug]\nbody:\n  - type: textarea\n    attributes:\n      label: \"Description\"\n      description: \"A short description of the problem you are reporting.\"\n    validations:\n      required: true\n  - type: textarea\n    attributes:\n      label: \"Neovim version\"\n      description: \"Output of `nvim --version` (Catppuccin requires neovim >= 0.8)\"\n      render: markdown\n      placeholder: |\n        NVIM v0.9.0\n        Build type: Release\n        LuaJIT 2.1.0-beta3\n    validations:\n      required: true\n  - type: input\n    attributes:\n      label: \"Terminal and multiplexer\"\n      placeholder: \"kitty 0.29.2 with tmux 3.3a\"\n    validations:\n      required: true\n  - type: markdown\n    attributes:\n      value: |\n        # FOR TMUX USERS\n        FOLLOW THESE GIST BEFORE OPENING THE ISSUE\n        - [Enable true color support](https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6) to fix the [abnormal colors](https://github.com/catppuccin/nvim/issues/415)\n        - [Enable italic font support](https://gist.github.com/gyribeiro/4192af1aced7a1b555df06bd3781a722) to fix the [incorrect if, then, else, end highlights](https://github.com/catppuccin/nvim/issues/428)\n  - type: input\n    attributes:\n      label: \"Catppuccin version / branch / rev\"\n      placeholder: \"catppuccin v1.4.0\"\n    validations:\n      required: true\n  - type: textarea\n    attributes:\n      label: \"Steps to reproduce\"\n      description: \"Steps to reproduce using the minimal config provided below.\"\n      placeholder: |\n        1. `nvim -u repro.lua`\n        2. ...\n    validations:\n      required: true\n  - type: textarea\n    attributes:\n      label: \"Expected behavior\"\n      description: \"A description of the behavior you expected:\"\n    validations:\n      required: true\n  - type: textarea\n    attributes:\n      label: \"Actual behavior\"\n      description: \"Observed behavior (may optionally include logs, images, or videos).\"\n    validations:\n      required: true\n  - type: textarea\n    attributes:\n      label: Repro\n      description: Minimal `init.lua` to reproduce this issue. Save as `repro.lua` and run with `nvim -u repro.lua`\n      value: |\n        -- DO NOT change the paths and don't remove the colorscheme\n        local root = vim.fn.fnamemodify(\"./.repro\", \":p\")\n\n        -- set stdpaths to use .repro\n        for _, name in ipairs({ \"config\", \"data\", \"state\", \"cache\" }) do\n          vim.env[(\"XDG_%s_HOME\"):format(name:upper())] = root .. \"/\" .. name\n        end\n\n        -- bootstrap lazy\n        local lazypath = root .. \"/plugins/lazy.nvim\"\n        if not vim.loop.fs_stat(lazypath) then\n          vim.fn.system({ \"git\", \"clone\", \"--filter=blob:none\", \"https://github.com/folke/lazy.nvim.git\", lazypath })\n        end\n        vim.opt.runtimepath:prepend(lazypath)\n\n        -- install plugins\n        local plugins = {\n          \"catppuccin/nvim\",\n          -- add any other plugins here\n        }\n        require(\"lazy\").setup(plugins, {\n          root = root .. \"/plugins\",\n        })\n\n        vim.cmd.colorscheme(\"catppuccin-nvim\")\n        -- add anything else here\n      render: Lua\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "content": "blank_issues_enabled: false\ncontact_links:\n   - name: Question\n     url: https://discord.com/servers/catppuccin-907385605422448742\n     about: Join our discord server for real-time answers and more!\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "content": "---\nname: Feature request\nabout: \"Suggest an idea for the project\"\ntitle: \"\"\nlabels: enhancement\nassignees: \"\"\n---\n\n**Is your feature request related to a problem? Please describe.**\nA clear and concise description of what the problem is.\nEx. I'm always frustrated when [...]. My workflow is like this [...]\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n\n**Describe alternatives you've considered**\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here."
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "content": "🎉 First off, thanks for taking the time to contribute! 🎉\n\nHere are some guidelines:\n- Format code using [stylua](https://github.com/johnnymorganz/stylua).\n- New plugin integration should be added in alphabetical order:\n  - to the [README](https://github.com/catppuccin/nvim#integrations) (vimdoc is auto-generated).\n  - to [types.lua](https://github.com/catppuccin/nvim/blob/main/lua/catppuccin/types.lua)\n- Create a topic branch on your fork for your specific PR.\n- Use [conventionalcommits.org's](https://www.conventionalcommits.org/en/v1.0.0/)\n  rules for explicit and meaningful commit messages.\n- If it's your first time contributing to a project, then read\n  [About pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)\n  on Github's docs.\n\nHere are some tips:\n- Use `vim.g.catppuccin_debug = true` to get live config re-loading\n"
  },
  {
    "path": ".github/workflows/formatting.yml",
    "content": "name: StyLua\non:\n  pull_request:\n  push:\n    paths-ignore:\n      - \"*.md\"\n    branches:\n      - main\n\njobs:\n  stylua:\n    name: StyLua\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v5\n      - uses: JohnnyMorganz/stylua-action@v4\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }}\n          version: latest\n          args: --check --config-path=stylua.toml .\n"
  },
  {
    "path": ".github/workflows/neovim.yml",
    "content": "---\nname: Neovim\non:\n  pull_request:\n  push:\n    paths-ignore:\n      - \"*.md\"\n    branches:\n      - main\n\njobs:\n  ubuntu:\n    name: Ubuntu\n    runs-on: ubuntu-latest\n\n    steps:\n      - uses: actions/checkout@v5\n      - name: Install Neovim\n        uses: MunifTanjim/setup-neovim-action@v1\n      - name: Run neovim\n        run: |\n          nvim --version\n          nvim --headless -u tests/init.lua +q\n  macos:\n    name: Macos\n    runs-on: macos-latest\n\n    steps:\n      - uses: actions/checkout@v5\n      - name: Install Neovim\n        run: |\n          wget -q https://github.com/neovim/neovim/releases/download/nightly/nvim-macos-x86_64.tar.gz\n          xattr -c ./nvim-macos-x86_64.tar.gz\n          tar xzvf nvim-macos-x86_64.tar.gz &> /dev/null\n          ln -s $(pwd)/nvim-macos-x86_64/bin/nvim /usr/local/bin/nvim\n      - name: Run neovim\n        run: |\n          nvim --version\n          nvim --headless -u tests/init.lua +q\n  windows:\n    name: Windows\n    runs-on: windows-latest\n    steps:\n      - uses: actions/checkout@v5\n      - name: Install Neovim\n        run: |\n          C:\\msys64\\usr\\bin\\wget.exe -q https://github.com/neovim/neovim/releases/download/nightly/nvim-win64.zip\n          7z x nvim-win64.zip\n          Add-Content $env:GITHUB_PATH \".\\nvim-win64\\bin\\\"\n      - name: Run neovim\n        run: |\n          nvim --version\n          nvim --headless -u tests/init.lua +q\n"
  },
  {
    "path": ".github/workflows/patch.yml",
    "content": "name: Patch\non:\n  workflow_dispatch:\n  pull_request:\n    branches: [main]\n\njobs:\n  docs:\n    name: generate vimdoc\n    runs-on: ubuntu-latest\n    permissions:\n      contents: write\n\n    steps:\n      - uses: actions/checkout@v5\n        with:\n          ref: ${{ github.head_ref }}\n      - name: panvimdoc\n        uses: kdheepak/panvimdoc@main\n        with:\n          vimdoc: catppuccin\n          description: \"Soothing pastel theme for NeoVim\"\n          pandoc: \"README.md\"\n          toc: true\n          version: \"nvim >= 0.8.0\"\n          treesitter: true\n      - uses: stefanzweifel/git-auto-commit-action@v7\n        with:\n          commit_message: \"docs: auto generate vimdoc\"\n  integration-table-gen:\n    needs: [docs]\n    name: update integration table\n    runs-on: ubuntu-latest\n    permissions:\n      contents: write\n\n    steps:\n      - uses: actions/checkout@v5\n        with:\n          ref: ${{ github.head_ref }}\n      - name: Install Neovim\n        uses: MunifTanjim/setup-neovim-action@v1\n      - name: Update integration table\n        run: |\n          nvim -l scripts/generate_integration_mappings_table.lua\n      - uses: stefanzweifel/git-auto-commit-action@v7\n        with:\n          commit_message: \"chore: auto generate integration table\"\n"
  },
  {
    "path": ".github/workflows/release.yml",
    "content": "name: release\n\non:\n  push:\n    branches: [main]\n  workflow_dispatch:\n\njobs:\n  release:\n    name: release\n    runs-on: ubuntu-latest\n    steps:\n      - uses: googleapis/release-please-action@v4\n        id: release\n        with:\n          release-type: simple\n          package-name: catppuccin\n      - uses: actions/checkout@v5\n      - name: tag stable versions\n        if: ${{ steps.release.outputs.release_created }}\n        run: |\n          git config user.name github-actions[bot]\n          git config user.email 41898282+github-actions[bot]@users.noreply.github.com\n          git remote add gh-token \"https://${{ secrets.GITHUB_TOKEN }}@github.com/googleapis/release-please-action.git\"\n          git tag -d stable || true\n          git push origin :stable || true\n          git tag -a stable -m \"Last Stable Release\"\n          git push origin stable\n"
  },
  {
    "path": ".github/workflows/tests.yml",
    "content": "---\nname: Tests\non:\n  pull_request:\n  push:\n    paths-ignore:\n      - \"*.md\"\n    branches:\n      - main\n  workflow_dispatch:\n  schedule:\n    - cron: '0 0 * * *' # Run every day at midnight UTC\n\njobs:\n  ubuntu:\n    name: Plenary\n    runs-on: ubuntu-latest\n\n    steps:\n      - uses: actions/checkout@v5\n        with:\n          path: nvim\n      - uses: actions/checkout@v5\n        with:\n          ref: user-configs\n          path: user-configs\n      - run: |\n          mv user-configs/tests/* nvim/tests/\n      - name: Install Neovim\n        uses: MunifTanjim/setup-neovim-action@v1\n      - name: Fetch dependencies\n        run: |\n          git clone --depth 1 https://github.com/nvim-lua/plenary.nvim ~/.local/share/nvim/site/pack/vendor/start/plenary.nvim\n          ln -s $(pwd) ~/.local/share/nvim/site/pack/vendor/start\n      - name: Run tests\n        working-directory: ./nvim\n        run: |\n          nvim --version\n          [ ! -d tests ] && exit 0\n          nvim --headless -u tests/minimal_init.vim -c \"PlenaryBustedDirectory tests/ {minimal_init = 'tests/minimal_init.vim', sequential = true}\"\n"
  },
  {
    "path": ".gitignore",
    "content": "doc/tags\n.vscode/\n.DS_Store\n.repro\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Changelog\n\n## [1.11.0](https://github.com/catppuccin/nvim/compare/v1.10.0...v1.11.0) (2025-07-31)\n\n\n### Features\n\n* automatic integration detection ([#871](https://github.com/catppuccin/nvim/issues/871)) ([44bd5ea](https://github.com/catppuccin/nvim/commit/44bd5ea20a1eccba71ee39e436d2fdf5017f1f80))\n* **blink-cmp:** add `style` option ([#867](https://github.com/catppuccin/nvim/issues/867)) ([fa42eb5](https://github.com/catppuccin/nvim/commit/fa42eb5e26819ef58884257d5ae95dd0552b9a66))\n* **blink-cmp:** improved support ([#862](https://github.com/catppuccin/nvim/issues/862)) ([d0972f1](https://github.com/catppuccin/nvim/commit/d0972f1de6fa771654bb881879afc27d3ddb7421))\n* **buffon:** add buffon.nvim integration ([#855](https://github.com/catppuccin/nvim/issues/855)) ([ae1bac4](https://github.com/catppuccin/nvim/commit/ae1bac4c8026f705ef54677c0353be922480bea5))\n* **buffon:** add to auto integration list ([#878](https://github.com/catppuccin/nvim/issues/878)) ([82f3dce](https://github.com/catppuccin/nvim/commit/82f3dcedc9acc242d2d4f98abca02e2f10a75248))\n* make bg of `FloatBorder` same as `NormalFloat` ([#877](https://github.com/catppuccin/nvim/issues/877)) ([aac17a6](https://github.com/catppuccin/nvim/commit/aac17a6b20931e6aa6ca036c63a6f59e8c92135a))\n* **markview:** add markview integration ([#854](https://github.com/catppuccin/nvim/issues/854)) ([961ec64](https://github.com/catppuccin/nvim/commit/961ec64a14e4b329475fc20226a59a28eb040303))\n* **snacks:** add nvchad style for snacks.picker ([#858](https://github.com/catppuccin/nvim/issues/858)) ([84336e0](https://github.com/catppuccin/nvim/commit/84336e08415858f6d835835e81a4f79e585463c6))\n* **snacks:** add snacks.picker support ([#853](https://github.com/catppuccin/nvim/issues/853)) ([be1e5e6](https://github.com/catppuccin/nvim/commit/be1e5e6308bb9d016bf5c1565e0f1d5e46400d7a))\n* **telescope:** add `nvchad_outlined` style ([aac17a6](https://github.com/catppuccin/nvim/commit/aac17a6b20931e6aa6ca036c63a6f59e8c92135a))\n\n\n### Bug Fixes\n\n* add missing table based integrations to fix auto integration detection ([#890](https://github.com/catppuccin/nvim/issues/890)) ([6d0d9ae](https://github.com/catppuccin/nvim/commit/6d0d9ae1907443be5dd89ca06875ac14ba3bb655))\n* adjust default integration settings ([#863](https://github.com/catppuccin/nvim/issues/863)) ([62dbc84](https://github.com/catppuccin/nvim/commit/62dbc841f48046dfe1be74179e92f53e1c33952c))\n* **avante:** link background and border hl ([#865](https://github.com/catppuccin/nvim/issues/865)) ([387b4b1](https://github.com/catppuccin/nvim/commit/387b4b19568cbda82c1d6def9ded31fd6ae7fb99))\n* **cursor:** update cursor color to rosewater / base ([#857](https://github.com/catppuccin/nvim/issues/857)) ([a0c769b](https://github.com/catppuccin/nvim/commit/a0c769bc7cd04bbbf258b3d5f01e2bdce744108d))\n* **editor:** link `FloatTitle` bg to `NormalFloat` ([#882](https://github.com/catppuccin/nvim/issues/882)) ([d7b413f](https://github.com/catppuccin/nvim/commit/d7b413fdc2c2dfcff1404c0ef1e16c6d8314b20f))\n* enable auto detected integrations with table options ([#886](https://github.com/catppuccin/nvim/issues/886)) ([5fa8d24](https://github.com/catppuccin/nvim/commit/5fa8d240944c47261f5e9172dc3dbc790fecaed2))\n* **fzf:** link normal and title to defaults ([#883](https://github.com/catppuccin/nvim/issues/883)) ([0cf15ba](https://github.com/catppuccin/nvim/commit/0cf15babf716ed56593da425a236245f709dcbfb))\n* **markview:** adjust highlights ([#860](https://github.com/catppuccin/nvim/issues/860)) ([30b1a81](https://github.com/catppuccin/nvim/commit/30b1a81c9f7a5d1b5616da0afff1bfe9aa26e622))\n* **markview:** incorrect heading bg when using transparent bg ([56a9dfd](https://github.com/catppuccin/nvim/commit/56a9dfd1e05868cf3189369aad87242941396563))\n* **mini.picker:** border and match styling ([#889](https://github.com/catppuccin/nvim/issues/889)) ([94f6e8a](https://github.com/catppuccin/nvim/commit/94f6e8a06b6bb7b8e5529cf9f93adb4654534241))\n* **octo:** clear OctoFilePanelFileName hl group ([#875](https://github.com/catppuccin/nvim/issues/875)) ([784e529](https://github.com/catppuccin/nvim/commit/784e529c790b451abd0c169f055fc5ae89af039f))\n* **render-markdown:** incorrect heading bg when using transparent bg ([56a9dfd](https://github.com/catppuccin/nvim/commit/56a9dfd1e05868cf3189369aad87242941396563))\n\n## [1.10.0](https://github.com/catppuccin/nvim/compare/v1.9.0...v1.10.0) (2025-05-04)\n\n\n### Features\n\n* add background highlight to LSP signature help ([#771](https://github.com/catppuccin/nvim/issues/771)) ([de096dd](https://github.com/catppuccin/nvim/commit/de096dd4bc88be563617db50594b2dabe7f1bd86))\n* **blink-cmp:** add integration ([#777](https://github.com/catppuccin/nvim/issues/777)) ([abceb64](https://github.com/catppuccin/nvim/commit/abceb64a223aaada38c21e744763d111e73aaf0a))\n* **blink-cmp:** support `BlinkCmpLabelMatch` hl ([#802](https://github.com/catppuccin/nvim/issues/802)) ([637d99e](https://github.com/catppuccin/nvim/commit/637d99e638bc6f1efedac582f6ccab08badac0c6))\n* **blink.cmp:** highlight `BlinkCmpKindCopilot` as `teal` ([#813](https://github.com/catppuccin/nvim/issues/813)) ([bd80c25](https://github.com/catppuccin/nvim/commit/bd80c256606770395b901f7c0b849517957da882))\n* **copilot:** add integration ([#803](https://github.com/catppuccin/nvim/issues/803)) ([b71eacb](https://github.com/catppuccin/nvim/commit/b71eacb06842c493a490d24730f0a7c1fe82b61c))\n* **gitgutter:** add LineNr highlights ([#833](https://github.com/catppuccin/nvim/issues/833)) ([4bb938b](https://github.com/catppuccin/nvim/commit/4bb938bbba41d306db18bf0eb0633a5f28fd7ba0))\n* **gitsign:** improve gitsign inline add and delete colors ([#808](https://github.com/catppuccin/nvim/issues/808)) ([4965db2](https://github.com/catppuccin/nvim/commit/4965db2d6155c25db4e8417465fc2703fdf4c2b7))\n* **integrations:** add support for gitgraph.nvim ([#822](https://github.com/catppuccin/nvim/issues/822)) ([58f1a92](https://github.com/catppuccin/nvim/commit/58f1a926a018b226ce2fd67e0878f1fc9bc45bb7))\n* **integrations:** remove normalnvim ([#828](https://github.com/catppuccin/nvim/issues/828)) ([be45e04](https://github.com/catppuccin/nvim/commit/be45e0456b8faf37bd0cfed3c26617cbdad4152b))\n* **integrations:** update mini.indentscope ([#821](https://github.com/catppuccin/nvim/issues/821)) ([0b2437b](https://github.com/catppuccin/nvim/commit/0b2437bcc12b4021614dc41fcea9d0f136d94063))\n* **PmenuExtra:** add support for PmenuExtra highlights ([#851](https://github.com/catppuccin/nvim/issues/851)) ([b01060e](https://github.com/catppuccin/nvim/commit/b01060ef9e0a9d39681d18eafd91bc4a88114681))\n* **reactive:** add cursor color for normal mode ([#834](https://github.com/catppuccin/nvim/issues/834)) ([5b5e3ae](https://github.com/catppuccin/nvim/commit/5b5e3aef9ad7af84f463d17b5479f06b87d5c429))\n* **render-markdown:** change code block background to `mantle` ([#774](https://github.com/catppuccin/nvim/issues/774)) ([7be452e](https://github.com/catppuccin/nvim/commit/7be452ee067978cdc8b2c5f3411f0c71ffa612b9))\n* **signify:** add vim-signify integration ([#850](https://github.com/catppuccin/nvim/issues/850)) ([54fb7f4](https://github.com/catppuccin/nvim/commit/54fb7f43e1eeadd2401a002d4856760c3f12a55c))\n* **snacks:** add indent highlights ([#827](https://github.com/catppuccin/nvim/issues/827)) ([57c4077](https://github.com/catppuccin/nvim/commit/57c4077c4c1eb8430de4ae001738aa55f0a79fd8))\n* **snacks:** add integration ([#807](https://github.com/catppuccin/nvim/issues/807)) ([f8a155a](https://github.com/catppuccin/nvim/commit/f8a155ab5891c5d2fb709b7e85627f1783d5a5d9))\n\n\n### Bug Fixes\n\n* **blink-cmp:** follow `Pmenu` highlights ([#799](https://github.com/catppuccin/nvim/issues/799)) ([35d8057](https://github.com/catppuccin/nvim/commit/35d8057137af463c9f41f169539e9b190d57d269))\n* **colorful-winsep:** respect transparent_background configuration ([#775](https://github.com/catppuccin/nvim/issues/775)) ([9e6ec28](https://github.com/catppuccin/nvim/commit/9e6ec281f58038e5b30ce9a8828e6f9f9d744a27))\n* **dap-ui:** add colors for *NC hlgroups of UI controls ([#783](https://github.com/catppuccin/nvim/issues/783)) ([d9ee9a3](https://github.com/catppuccin/nvim/commit/d9ee9a35f46f0a2bda9a15b5a763fee4095428fd))\n* **editor:** add missing background for `TabLineFill` ([#757](https://github.com/catppuccin/nvim/issues/757)) ([bfdd6b3](https://github.com/catppuccin/nvim/commit/bfdd6b3833e991fa45c3d5931ffed853dca60fab))\n* **editor:** make TabLine more readable ([#760](https://github.com/catppuccin/nvim/issues/760)) ([4fd72a9](https://github.com/catppuccin/nvim/commit/4fd72a9ab64b393c2c22b168508fd244877fec96))\n* **editor:** more \"modern\" tabline ([#776](https://github.com/catppuccin/nvim/issues/776)) ([5ea0888](https://github.com/catppuccin/nvim/commit/5ea0888e9003f1457d13685ac76f046af26a5524))\n* **gitsigns:** respect transparent option for gitsigns ([#844](https://github.com/catppuccin/nvim/issues/844)) ([2dfca93](https://github.com/catppuccin/nvim/commit/2dfca93e077a1568cc9d4a9d88eaabcf5fd4142c))\n* **kitty:** respect `transparent_background` option ([#786](https://github.com/catppuccin/nvim/issues/786)) ([08efbef](https://github.com/catppuccin/nvim/commit/08efbefa415fbe8ae48799cddc6a5783d2465375))\n* match fzf-lua highlights to telescope ([#812](https://github.com/catppuccin/nvim/issues/812)) ([f67b886](https://github.com/catppuccin/nvim/commit/f67b886d65a029f12ffa298701fb8f1efd89295d))\n* **nvim-surround:** bg conflicts with document highlight ([#800](https://github.com/catppuccin/nvim/issues/800)) ([a4c64d7](https://github.com/catppuccin/nvim/commit/a4c64d7605f6eb95674e322bbbedfaa00aab7904))\n* **octo:** incorrect highlight backgrounds ([#836](https://github.com/catppuccin/nvim/issues/836)) ([7ab1a6e](https://github.com/catppuccin/nvim/commit/7ab1a6ec70a664ecb95d84669efc20aaf4f4ed1b))\n* respect transparent option for gitsigns integration ([#826](https://github.com/catppuccin/nvim/issues/826)) ([ebfb647](https://github.com/catppuccin/nvim/commit/ebfb6471cc4faa107234def49c308e95e44fd056))\n* **syntax:** use `overlay2` for comments ([#768](https://github.com/catppuccin/nvim/issues/768)) ([147e7cf](https://github.com/catppuccin/nvim/commit/147e7cfb5b7ec05702468c332cf7e378d935abd3))\n\n\n### Reverts\n\n* fix(kitty): respect `transparent_background` option ([#794](https://github.com/catppuccin/nvim/issues/794)) ([65bf0b1](https://github.com/catppuccin/nvim/commit/65bf0b16f57a3db70d6a93ac68882dd9a31d0565))\n\n## [1.9.0](https://github.com/catppuccin/nvim/compare/v1.8.0...v1.9.0) (2024-08-09)\n\n\n### Features\n\n* add fzf-lua integration ([#746](https://github.com/catppuccin/nvim/issues/746)) ([05206bb](https://github.com/catppuccin/nvim/commit/05206bbb6d500a339cd55a9486532c3871a4455e))\n* add lir.nvim and lir-git-status.nvim integration ([#705](https://github.com/catppuccin/nvim/issues/705)) ([d3907de](https://github.com/catppuccin/nvim/commit/d3907deedf74d1d5bd3bb990bff2db2ebc916c56))\n* add markdown.nvim integration ([ba41328](https://github.com/catppuccin/nvim/commit/ba413282677e1027a42d6ff585115d3e1df12b66))\n* add vim-dadbod-ui integration ([#747](https://github.com/catppuccin/nvim/issues/747)) ([4db4c77](https://github.com/catppuccin/nvim/commit/4db4c77cc17d23aa90b393f3e550ce99b9e903d5))\n* **render-markdown:** add highlights for callouts ([03a2f35](https://github.com/catppuccin/nvim/commit/03a2f354456373c199eb7829fd14120cc2099108))\n* **terminal:** highlight `TermCursor` and `TermCursorNC` ([#749](https://github.com/catppuccin/nvim/issues/749)) ([548b2a2](https://github.com/catppuccin/nvim/commit/548b2a25415bb60e05c536b7658aa8ffbfeb3e45))\n\n## [1.8.0](https://github.com/catppuccin/nvim/compare/v1.7.0...v1.8.0) (2024-07-25)\n\n\n### Features\n\n* add `grug-far.nvim` integration ([#735](https://github.com/catppuccin/nvim/issues/735)) ([07f1ee8](https://github.com/catppuccin/nvim/commit/07f1ee861394c163d1f1d3e1926eb309e0c81027))\n* **bufferline:** add `indicator_visible` and `modified_visible` ([#716](https://github.com/catppuccin/nvim/issues/716)) ([cc8e290](https://github.com/catppuccin/nvim/commit/cc8e290d4c0d572171243087f8541e49be2c8764))\n* **csv:** built-in rainbow highlighting ([#720](https://github.com/catppuccin/nvim/issues/720)) ([67565cd](https://github.com/catppuccin/nvim/commit/67565cd353fa543fa30cb738570c2e4c87da3e9c))\n* **diffview:** add diffview integrations ([#700](https://github.com/catppuccin/nvim/issues/700)) ([182f256](https://github.com/catppuccin/nvim/commit/182f25640f85a3da2f1f22b088848d896a50fcce))\n* **feline:** add lazy.nvim updates module, replace deprecated API ([#725](https://github.com/catppuccin/nvim/issues/725)) ([47bd419](https://github.com/catppuccin/nvim/commit/47bd419c0cb776cb0a67ebb525891eca44020b59))\n* **feline:** allow to hide lazy.nvim updates ([#731](https://github.com/catppuccin/nvim/issues/731)) ([7946d1a](https://github.com/catppuccin/nvim/commit/7946d1a195c66fed38b3e34f9fa8e0c5a2da0700))\n* **integration:** add colorful-winsep.nvim ([#701](https://github.com/catppuccin/nvim/issues/701)) ([30481d6](https://github.com/catppuccin/nvim/commit/30481d659b6524e6bcae0756201d737e5bc1f209))\n* **mini:** add new highlight groups ([#721](https://github.com/catppuccin/nvim/issues/721)) ([6827a67](https://github.com/catppuccin/nvim/commit/6827a6763888f73df686f32c0e5ffb5b6b754d7b))\n* **nvim-surround:** add integration ([#733](https://github.com/catppuccin/nvim/issues/733)) ([3f16c6d](https://github.com/catppuccin/nvim/commit/3f16c6d1f25bcb641f7b59f7108b9f4533974c41))\n* support new \"Ok\" diagnostics ([5215ea5](https://github.com/catppuccin/nvim/commit/5215ea59df6d0a7e27da9a5cd1165e06d1b04cbe))\n* **treesitter-content:** highlight line number ([#709](https://github.com/catppuccin/nvim/issues/709)) ([4edca6b](https://github.com/catppuccin/nvim/commit/4edca6bed2ccc2715317725985c692ef0a992a50))\n\n\n### Bug Fixes\n\n* **dapui:** border match bg color ([#727](https://github.com/catppuccin/nvim/issues/727)) ([4ea0173](https://github.com/catppuccin/nvim/commit/4ea01738dc7b872f0081e7093e46d418d8d4c5a1))\n* **defaults:** Enable mini integration by default ([894efb5](https://github.com/catppuccin/nvim/commit/894efb557728e532aa98b98029d16907a214ec05))\n* **leap:** highlight group for LeapLabel ([2d3419c](https://github.com/catppuccin/nvim/commit/2d3419c2aead379b7d1854d32458f20ffaa58562))\n* **neogit:** link WinSeparator ([#713](https://github.com/catppuccin/nvim/issues/713)) ([afccb3d](https://github.com/catppuccin/nvim/commit/afccb3d2377a3d6f0f65405899c9c23b1fd7cc28))\n* small typo in feline.lua file ([#719](https://github.com/catppuccin/nvim/issues/719)) ([c0bea77](https://github.com/catppuccin/nvim/commit/c0bea773a09e49e123136b099bce9ddc1bf395d2))\n* **treesitter:** highlight paths in `.gitignore` as text ([#736](https://github.com/catppuccin/nvim/issues/736)) ([4374588](https://github.com/catppuccin/nvim/commit/4374588df4e99d403a359cda2ddececcf645d8a9))\n\n## [1.7.0](https://github.com/catppuccin/nvim/compare/v1.6.0...v1.7.0) (2024-04-13)\n\n\n### Features\n\n* add ability to toggle default integrations ([#687](https://github.com/catppuccin/nvim/issues/687)) ([e60e400](https://github.com/catppuccin/nvim/commit/e60e400c411519f29e203185ddda121d4ec8ef57))\n* add support for `outline.nvim` plugin ([#647](https://github.com/catppuccin/nvim/issues/647)) ([048c18f](https://github.com/catppuccin/nvim/commit/048c18fc531703815f5e10765ea46ce9b2c75ae4))\n* **defaults:** enable neotree ([c536623](https://github.com/catppuccin/nvim/commit/c536623eac60f8443c93ae4ca0e03b51574b5f50))\n* **defaults:** enable treesitter context ([dc392c0](https://github.com/catppuccin/nvim/commit/dc392c067739326c3cff380a8c52b0f31319e6dd)), closes [#683](https://github.com/catppuccin/nvim/issues/683)\n* **feline:** fix feline integration ([#685](https://github.com/catppuccin/nvim/issues/685)) ([07679af](https://github.com/catppuccin/nvim/commit/07679af1af4f446655682ee2557b5840ac551504))\n* **feline:** improve feline lsp display ([#688](https://github.com/catppuccin/nvim/issues/688)) ([f66654d](https://github.com/catppuccin/nvim/commit/f66654d5d5190865333e8e46474c1593302c558e))\n* **integration:** add reactive.nvim integration ([#654](https://github.com/catppuccin/nvim/issues/654)) ([151e478](https://github.com/catppuccin/nvim/commit/151e478edf8108cfd451a3cbd44d0a20503e7b42))\n* **lsp:** add highlight for `LspCodeLensSeparator` ([#693](https://github.com/catppuccin/nvim/issues/693)) ([02bdd74](https://github.com/catppuccin/nvim/commit/02bdd749931a5d739063562e57531c118e081882))\n* set `[@comment](https://github.com/comment).warning` that does not affect readability in gitcommit ([#675](https://github.com/catppuccin/nvim/issues/675)) ([045e349](https://github.com/catppuccin/nvim/commit/045e3499d9ec8d84635fb08877ae44fd33f6a38d))\n* **treesitter:** add styles.miscs to disable hardcoded italics ([#659](https://github.com/catppuccin/nvim/issues/659)) ([c0de3b4](https://github.com/catppuccin/nvim/commit/c0de3b46811fe1ce3912e2245a9dfbea6b41c300))\n* **treesitter:** follow upstream captures ([#630](https://github.com/catppuccin/nvim/issues/630)) ([f288876](https://github.com/catppuccin/nvim/commit/f288876c6d05d3bb91b0e72b8031fe9e26ef05b8))\n* **treesitter:** follow upstream captures ([#694](https://github.com/catppuccin/nvim/issues/694)) ([08c6417](https://github.com/catppuccin/nvim/commit/08c6417bdc3b29e5f8c53e2cfe4067f288d49a54))\n* use a more distinguishable color for todos ([#645](https://github.com/catppuccin/nvim/issues/645)) ([657cc4f](https://github.com/catppuccin/nvim/commit/657cc4f35cf193cadac7e5471eb802c97e7a1b59))\n\n\n### Bug Fixes\n\n* **compile:** string.dump isn't deterministic ([836de8b](https://github.com/catppuccin/nvim/commit/836de8bc1898250b69332e66cbe993058870f849)), closes [#664](https://github.com/catppuccin/nvim/issues/664)\n* **dropbar:** correct keyword highlight link ([#652](https://github.com/catppuccin/nvim/issues/652)) ([afab7ec](https://github.com/catppuccin/nvim/commit/afab7ec2a79c7127627dede79c0018b6e45663d0))\n* ensure consistency between JSX and HTML markup ([#660](https://github.com/catppuccin/nvim/issues/660)) ([9703f22](https://github.com/catppuccin/nvim/commit/9703f227bfab20d04bcee62d2f08f1795723b4ae))\n* **flavour:** g:catppuccin_flavour backwards compatibility ([fc98570](https://github.com/catppuccin/nvim/commit/fc98570d85ae772e56dc42cf8d7d6a497a909bdb))\n* **flavour:** respect terminal's background ([#696](https://github.com/catppuccin/nvim/issues/696)) ([d5760c5](https://github.com/catppuccin/nvim/commit/d5760c53ae3b48f0f539298ec4165adc5c0afb19))\n* **illuminate:** update type ([#690](https://github.com/catppuccin/nvim/issues/690)) ([30930f9](https://github.com/catppuccin/nvim/commit/30930f9656cffd068bcf52ced70cdfffd1e83a44))\n* **integrations:** respect default options ([c2e6f8e](https://github.com/catppuccin/nvim/commit/c2e6f8e7eb8d0ebf55700c89bdf842809aeecf09))\n* **neotree:** add `NeoTreeModified` ([#642](https://github.com/catppuccin/nvim/issues/642)) ([6853cc8](https://github.com/catppuccin/nvim/commit/6853cc8e6efc76e85e10ec153d05fc2520653508))\n* **neotree:** blend sidebar with win separator ([56fb982](https://github.com/catppuccin/nvim/commit/56fb98218d22d5c326387bf9e4076227e7372e6b)), closes [#670](https://github.com/catppuccin/nvim/issues/670)\n* repair treesitter underlined text (`Underline` -&gt; `Underlined`) ([#663](https://github.com/catppuccin/nvim/issues/663)) ([42b687c](https://github.com/catppuccin/nvim/commit/42b687c42a35633366ed45e562bf921fb914048b))\n* respect background variable on startup ([6b7a4df](https://github.com/catppuccin/nvim/commit/6b7a4dfdf241c8be0af6ec691b302e85cce03cab))\n* **semantic_tokens:** namespace -&gt; module ([196f301](https://github.com/catppuccin/nvim/commit/196f301de06090c40d7f98297675ac38ae7d6675))\n* **treesitter:** some captures missing leading `@` ([#650](https://github.com/catppuccin/nvim/issues/650)) ([bc1f215](https://github.com/catppuccin/nvim/commit/bc1f2151f23227ba02ac203c2c59ad693352a741))\n* use external index for lsp counting ([c3572a9](https://github.com/catppuccin/nvim/commit/c3572a968a79b64bd0ef16f2c3e93014f112e66d))\n* wrong color shown when using color_overrides ([#658](https://github.com/catppuccin/nvim/issues/658)) ([b76ada8](https://github.com/catppuccin/nvim/commit/b76ada82bf2019d5e343018b4104cc9266900c16)), closes [#657](https://github.com/catppuccin/nvim/issues/657)\n\n## [1.6.0](https://github.com/catppuccin/nvim/compare/v1.5.0...v1.6.0) (2023-12-28)\n\n\n### Features\n\n* add `WinSeparator` highlight group ([#623](https://github.com/catppuccin/nvim/issues/623)) ([988c0b2](https://github.com/catppuccin/nvim/commit/988c0b2dde4140572ed37c6b8b5d5deac0219f9f))\n* **bufferline:** support `no_underline` option ([#601](https://github.com/catppuccin/nvim/issues/601)) ([f7638a1](https://github.com/catppuccin/nvim/commit/f7638a1a65cbffdd01a9ddac0018a20ec4be29e2))\n* **dashboard:** add highlight groups for `doom` theme ([#593](https://github.com/catppuccin/nvim/issues/593)) ([3bdd5e8](https://github.com/catppuccin/nvim/commit/3bdd5e8296971f8c7ba5e499dac8247c3d621508))\n* **integrations:** enable dap & dap_ui by default ([64dc309](https://github.com/catppuccin/nvim/commit/64dc309bc157779691be38bbfc5123584e0a4a85))\n* **lualine:** darken lualine `b` section for better readability ([#606](https://github.com/catppuccin/nvim/issues/606)) ([32ee05d](https://github.com/catppuccin/nvim/commit/32ee05d014a4611555c7f56a73283efb4718d9c5))\n* **mini.indentscope:** add scope color ([#592](https://github.com/catppuccin/nvim/issues/592)) ([795f639](https://github.com/catppuccin/nvim/commit/795f639ac50d6b8400c1d5868fca54844d579f37))\n* **neogit:** support new highlight groups ([#610](https://github.com/catppuccin/nvim/issues/610)) ([f90c7c0](https://github.com/catppuccin/nvim/commit/f90c7c0c467722dc7acacbae3c3904720e09efb6))\n* **notify:** add `NotifyBackground` hl group ([#637](https://github.com/catppuccin/nvim/issues/637)) ([c7cf3af](https://github.com/catppuccin/nvim/commit/c7cf3afe2eb6d9058eec4abb3ace2c1da006478a))\n\n\n### Bug Fixes\n\n* **airline:** missing refresh function ([dcef0a0](https://github.com/catppuccin/nvim/commit/dcef0a062de380885193fb0f919217d58b979753)), closes [#594](https://github.com/catppuccin/nvim/issues/594)\n* **dashboard:** `orange` -&gt; `peach` ([54002a1](https://github.com/catppuccin/nvim/commit/54002a1adfd543f54352b3ec79d4e62c4163e9ee))\n* **flash:** link `FlashPrompt` to `NormalFloat` ([#605](https://github.com/catppuccin/nvim/issues/605)) ([40dc9f0](https://github.com/catppuccin/nvim/commit/40dc9f0621c55bd40da4ad0731fac44d15bb393a))\n* **lualine:** match lualine mode colors for insert and terminal ([#597](https://github.com/catppuccin/nvim/issues/597)) ([ea52fe8](https://github.com/catppuccin/nvim/commit/ea52fe8a0b1e4a820df0d0cf9a6a5a0e18c3eaa0))\n* **neogit:** remove `NeogitCursorLine` from integration ([#613](https://github.com/catppuccin/nvim/issues/613)) ([5e4be43](https://github.com/catppuccin/nvim/commit/5e4be43e1a6acb044d5c55cd10f22461c40656ed))\n* **neogit:** remove diff context highlight fg ([1b40f07](https://github.com/catppuccin/nvim/commit/1b40f072305be71b73c730ff5c7d881e638fd040)), closes [#627](https://github.com/catppuccin/nvim/issues/627)\n* **neogit:** tweak diff context highlighting ([#614](https://github.com/catppuccin/nvim/issues/614)) ([cc717ac](https://github.com/catppuccin/nvim/commit/cc717acba29259d578548973c41448b092453c52))\n* **neotree:** change color of untracked files ([#608](https://github.com/catppuccin/nvim/issues/608)) ([d7521f6](https://github.com/catppuccin/nvim/commit/d7521f6050b94cb0e23067f63829d86886f870fe))\n* **neotree:** make popup titlebar text visible ([#618](https://github.com/catppuccin/nvim/issues/618)) ([919d1f7](https://github.com/catppuccin/nvim/commit/919d1f786338ebeced798afbf28cd085cd54542a))\n* **noice:** respect transparency ([#632](https://github.com/catppuccin/nvim/issues/632)) ([4fbab1f](https://github.com/catppuccin/nvim/commit/4fbab1f01488718c3d54034a473d0346346b90e3))\n* **selene:** allow mixed tables ([#611](https://github.com/catppuccin/nvim/issues/611)) ([9f3c13b](https://github.com/catppuccin/nvim/commit/9f3c13bbcf16fcaec3a429c03743a13e5923f3e3))\n* sync focused and unfocused winbars ([#628](https://github.com/catppuccin/nvim/issues/628)) ([079500a](https://github.com/catppuccin/nvim/commit/079500a625f3ae5aa6efb758f1a17fe4c7a57e52))\n* **vim:** resolve deprecation of nested [[ ([7a4bcda](https://github.com/catppuccin/nvim/commit/7a4bcdadafc59a5bedbd866c643fa486d8cca4a1))\n\n## [1.5.0](https://github.com/catppuccin/nvim/compare/v1.4.0...v1.5.0) (2023-09-29)\n\n\n### Features\n\n* add kitty detection ([d3da439](https://github.com/catppuccin/nvim/commit/d3da43907d1896ba3e68a62f18820d1d12574317))\n* add ufo integration ([1f53686](https://github.com/catppuccin/nvim/commit/1f536869b1a2ca1710fc892db84d7e8bbc6ad8d9))\n* add workaround for kitty transparent issue ([#579](https://github.com/catppuccin/nvim/issues/579)) ([f36fa5c](https://github.com/catppuccin/nvim/commit/f36fa5cdce162450df88298a16631eeed16b68a3))\n* **compile:** use indexed cmd ([85e9360](https://github.com/catppuccin/nvim/commit/85e93601e0f0b48aa2c6bbfae4d0e9d7a1898280))\n* **illuminate:** enabled by default and optional lsp option ([5b44baa](https://github.com/catppuccin/nvim/commit/5b44baa4aff0ff45c042620ee960d283a79807a1)), closes [#571](https://github.com/catppuccin/nvim/issues/571)\n* **indent-blankline:** update to v3, add scope color ([#585](https://github.com/catppuccin/nvim/issues/585)) ([f04336b](https://github.com/catppuccin/nvim/commit/f04336ba4a2400ee2c5250068b39541652c0962f))\n* **integrations:** add NormalNvim ([0e3c128](https://github.com/catppuccin/nvim/commit/0e3c128eea8a7de692778d52b8429817df5c9040)), closes [#580](https://github.com/catppuccin/nvim/issues/580)\n* **integrations:** add notifier.nvim ([d029098](https://github.com/catppuccin/nvim/commit/d029098e124f6201a07298c0c1c499ed8d5aef76)), closes [#574](https://github.com/catppuccin/nvim/issues/574)\n* **lib:** soft deprecate highlighter ([8202348](https://github.com/catppuccin/nvim/commit/82023485fec1703d6f700a4b2a92fd431d4882f4))\n* **syntax:** respect style guide part 3 ([#576](https://github.com/catppuccin/nvim/issues/576)) ([81096ca](https://github.com/catppuccin/nvim/commit/81096cabe67f360acb06d64c0f7db8dd840afeba))\n\n\n### Bug Fixes\n\n* **coc:** improve inlay hints ([#582](https://github.com/catppuccin/nvim/issues/582)) ([3d9a5ed](https://github.com/catppuccin/nvim/commit/3d9a5ed556e289bce6c1fb0af89ec838360641b2))\n* **editor:** invisible fold with transparent ([1c15c5e](https://github.com/catppuccin/nvim/commit/1c15c5e51a998c9198d63c6d2b75e9d1e4a84541)), closes [#577](https://github.com/catppuccin/nvim/issues/577)\n* **template:** broken tmux italic gist link ([128e0d2](https://github.com/catppuccin/nvim/commit/128e0d27946491da979e2e04f5a4acf330ccdefd))\n* **treesitter:** invalid string in type builtin ([135f9b0](https://github.com/catppuccin/nvim/commit/135f9b01386fa18da6d75c16ceb83e1aa3669430))\n* **ufo:** use folded ellipsis ([846388d](https://github.com/catppuccin/nvim/commit/846388d137590e653390ce2f84fea5351a7516ac))\n* **vim:** add vim.env index ([1786287](https://github.com/catppuccin/nvim/commit/17862877792db104d48c3260aec0ace92d55f863))\n\n\n### Performance Improvements\n\n* **compile:** reduce else statement ([a937d54](https://github.com/catppuccin/nvim/commit/a937d546f4783a1ff67f84043d2d7871ad4ecd83))\n\n## [1.4.0](https://github.com/catppuccin/nvim/compare/v1.3.0...v1.4.0) (2023-08-21)\n\n\n### Features\n\n* add ability to enable/disable all integrations by default ([#552](https://github.com/catppuccin/nvim/issues/552)) ([737f60a](https://github.com/catppuccin/nvim/commit/737f60a3a25c79d9bb9574092f6c6c958a3d747a))\n* add flash.nvim integration ([#550](https://github.com/catppuccin/nvim/issues/550)) ([381eddd](https://github.com/catppuccin/nvim/commit/381edddc4ad12126cfa7276818bca07c3d5606ed))\n* enable neogit by default ([91f9f6f](https://github.com/catppuccin/nvim/commit/91f9f6fb413caff2bd06e326ec174deee1c1b7a9)), closes [#568](https://github.com/catppuccin/nvim/issues/568)\n* **flash:** enable by default ([#551](https://github.com/catppuccin/nvim/issues/551)) ([a84ee18](https://github.com/catppuccin/nvim/commit/a84ee1848bfac4601771805396552bdbaa0a0e91))\n* **gitsigns:** Support GitSignsCurrentLineBlame highlights ([#567](https://github.com/catppuccin/nvim/issues/567)) ([3fdd394](https://github.com/catppuccin/nvim/commit/3fdd3942567503d23b65ccc21e7d7757334defd5))\n* **lspsaga:** support v0.3 ([#543](https://github.com/catppuccin/nvim/issues/543)) ([3ffd2f5](https://github.com/catppuccin/nvim/commit/3ffd2f511f3dc6c01258923d7170ccaf1445634b))\n* **lspsaga:** upstream new hl groups ([#544](https://github.com/catppuccin/nvim/issues/544)) ([e0dd3f9](https://github.com/catppuccin/nvim/commit/e0dd3f9bb1513c98ab4ef9404ea26e18babf858a))\n* **neogit:** update highlights ([#545](https://github.com/catppuccin/nvim/issues/545)) ([#549](https://github.com/catppuccin/nvim/issues/549)) ([371430f](https://github.com/catppuccin/nvim/commit/371430f32f2637d2dd5796399b3982d4cada61d8))\n* **telescope:** make nvchad style great again ([#538](https://github.com/catppuccin/nvim/issues/538)) ([51961da](https://github.com/catppuccin/nvim/commit/51961da41e8189ca6f9ed73f37dfa83087b4e65c))\n* **treesitter-context:** add color for normal background ([#564](https://github.com/catppuccin/nvim/issues/564)) ([b1caff9](https://github.com/catppuccin/nvim/commit/b1caff988fb395c0aae585cecff58b1ffa0a21c6))\n\n\n### Bug Fixes\n\n* don't highlight fg of `PmenuSel` ([#554](https://github.com/catppuccin/nvim/issues/554)) ([6425df1](https://github.com/catppuccin/nvim/commit/6425df128d46f2db2cccf9aa7a66ca2823c1d153))\n* highlight NonText characters ([#547](https://github.com/catppuccin/nvim/issues/547)) ([bfe91df](https://github.com/catppuccin/nvim/commit/bfe91dfb3a19ffd4445e43611fcde68acbb3fed4))\n* **integration_default:** hotfix for [#559](https://github.com/catppuccin/nvim/issues/559) ([4913a8b](https://github.com/catppuccin/nvim/commit/4913a8b47554a89a71ed44da39fc1f6e5c2841c3))\n* **integration_default:** override `enabled` key only if integration has one ([#559](https://github.com/catppuccin/nvim/issues/559)) ([9709f82](https://github.com/catppuccin/nvim/commit/9709f8251a40e874238d6f9436cf4fba654b60e1))\n* **noice:** set background blend to 0 for mini popups ([#556](https://github.com/catppuccin/nvim/issues/556)) ([2d50a4e](https://github.com/catppuccin/nvim/commit/2d50a4e3aecffea4144801bb3c0a3cf7b88fdd6b))\n* **nvim-window-picker:** missing table keys ([#569](https://github.com/catppuccin/nvim/issues/569)) ([b9e4dae](https://github.com/catppuccin/nvim/commit/b9e4dae160bf9bc28d4ceb6d29a7e0134b107724))\n* **options:** disable deprecated ts_rainbow and ts_rainbow2 by default ([096385d](https://github.com/catppuccin/nvim/commit/096385dd024ecd1332659916fd7f09d7d18d7374))\n* **telescope:** keep consistency between the two styles ([#540](https://github.com/catppuccin/nvim/issues/540)) ([dfbc8e2](https://github.com/catppuccin/nvim/commit/dfbc8e2b478a65104d34556698067f2d40f1c227))\n* **telescope:** respect transparency ([#542](https://github.com/catppuccin/nvim/issues/542)) ([f36af06](https://github.com/catppuccin/nvim/commit/f36af062e3242f333b12fe9b730053fdda36e000))\n* **treesitter:** avoid possible nil ([17ae783](https://github.com/catppuccin/nvim/commit/17ae783b88bb7ae73dc004370473138d9d43ee46))\n* **types:** make all options besides nested `enabled` optional ([#565](https://github.com/catppuccin/nvim/issues/565)) ([490078b](https://github.com/catppuccin/nvim/commit/490078b1593c6609e6a50ad5001e7902ea601824))\n\n## [1.3.0](https://github.com/catppuccin/nvim/compare/v1.2.0...v1.3.0) (2023-07-10)\n\n\n### Features\n\n* auto-sync upstream palettes ([#507](https://github.com/catppuccin/nvim/issues/507)) ([8426d3b](https://github.com/catppuccin/nvim/commit/8426d3bfd55f4dc68ae451a82927d2ff88e47e95))\n* **debug:** add auto compile on save ([c9cc5a9](https://github.com/catppuccin/nvim/commit/c9cc5a997f1dae3f35b4bdd62f35958fee363ab4))\n* **dropbar:** add new highlight groups ([4f22a1e](https://github.com/catppuccin/nvim/commit/4f22a1e78460ae06e78a1085a8e0e6cc8027aef2)), closes [#503](https://github.com/catppuccin/nvim/issues/503)\n* **integration:** add dropbar.nvim ([#499](https://github.com/catppuccin/nvim/issues/499)) ([e86aeb8](https://github.com/catppuccin/nvim/commit/e86aeb8ca0f03e97192074fba9dc6c836f953a83))\n* **integrations:** accept both boolean and table config ([#534](https://github.com/catppuccin/nvim/issues/534)) ([f0b947a](https://github.com/catppuccin/nvim/commit/f0b947ab8cfdb9ca7ba6230b30bbc1ed48dd30a1))\n* **integrations:** add rainbow_delimiters.nvim support ([#530](https://github.com/catppuccin/nvim/issues/530)) ([cc8d3ab](https://github.com/catppuccin/nvim/commit/cc8d3abc944d78cb6bf2a4cc88871ab383c4da62))\n* **markdown:** add rainbow headlines ([#493](https://github.com/catppuccin/nvim/issues/493)) ([cc517bd](https://github.com/catppuccin/nvim/commit/cc517bdcb66a0f8dee90bab10ccdd651fa967bbe))\n* **native_lsp:** add ability to disable background for inlay hints ([#518](https://github.com/catppuccin/nvim/issues/518)) ([b032ced](https://github.com/catppuccin/nvim/commit/b032cedb90c42a7bfbfbe2f91479505330f4a396))\n* **native_lsp:** support inlay hints ([#516](https://github.com/catppuccin/nvim/issues/516)) ([d32b0bb](https://github.com/catppuccin/nvim/commit/d32b0bb5b1033920de5026e326869838aba856ee))\n* **navic:** change text color ([278bfeb](https://github.com/catppuccin/nvim/commit/278bfeb61bd627dc2a8885180a0441a1ebe65a41))\n* **semantic_tokens:** add some lsp semantic tokens ([#512](https://github.com/catppuccin/nvim/issues/512)) ([506a4aa](https://github.com/catppuccin/nvim/commit/506a4aa13443e0104ea49b99947cc09488d0791d))\n* **telescope:** telescope flat style support ([#521](https://github.com/catppuccin/nvim/issues/521)) ([fc73faa](https://github.com/catppuccin/nvim/commit/fc73faa37bda393e3c4f846fb3e810a6ac8aae16))\n* **types:** add type annotations ([#495](https://github.com/catppuccin/nvim/issues/495)) ([1d3eda1](https://github.com/catppuccin/nvim/commit/1d3eda15703ba70f57e94e6451db55914ff7017f))\n* **workflows:** auto-sync upstream palettes ([e9fbeec](https://github.com/catppuccin/nvim/commit/e9fbeec106562475e82bae79304b6a421eee73f3))\n\n\n### Bug Fixes\n\n* calling palette before setup ([841d8ab](https://github.com/catppuccin/nvim/commit/841d8abf3be39de833d95a592a1fbbb1b9851296))\n* **feline:** disable lsp status on nightly ([#510](https://github.com/catppuccin/nvim/issues/510)) ([9aaf5b4](https://github.com/catppuccin/nvim/commit/9aaf5b4ce5cd256695d8bbddb65869d19919abde))\n* **feline:** use new `vim.lsp.status()` method ([#509](https://github.com/catppuccin/nvim/issues/509)) ([57ee09d](https://github.com/catppuccin/nvim/commit/57ee09dd532bd442b53d65c2b2f35550960981ed))\n* **lsp:** do not link `LspInlayHint` to `Comment` directly ([#517](https://github.com/catppuccin/nvim/issues/517)) ([5dc566c](https://github.com/catppuccin/nvim/commit/5dc566c4206f383657d67500253559d3be82c421))\n* **mapper:** remove unnecessary globals ([#529](https://github.com/catppuccin/nvim/issues/529)) ([c75562c](https://github.com/catppuccin/nvim/commit/c75562cbc954136f279ced91661251543b6f2a20))\n* **native_lsp:** boolean logic ([#526](https://github.com/catppuccin/nvim/issues/526)) ([8d02781](https://github.com/catppuccin/nvim/commit/8d02781a638123394f9bc160aad47a9560a113f9))\n* **tests:** shadowing variable ([15043d3](https://github.com/catppuccin/nvim/commit/15043d363729f1ef20e615c41bbd8b7e92c1453e))\n* **treesitter_context:** underline content if `transparent_background` is true ([#519](https://github.com/catppuccin/nvim/issues/519)) ([6ecc158](https://github.com/catppuccin/nvim/commit/6ecc158dbf365d2cd290b58993296c42b3111965))\n* **which-key:** wrong separator highlight group ([d438c01](https://github.com/catppuccin/nvim/commit/d438c0141609338140b18363a9a1e8eb8bb17130))\n* **workflows:** stylua format ([2df7036](https://github.com/catppuccin/nvim/commit/2df7036c5c303c9184869936e40ca18935e4afcb))\n"
  },
  {
    "path": "LICENSE.md",
    "content": "MIT License\n\nCopyright (c) 2021 Catppuccin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "<!-- panvimdoc-ignore-start -->\n\n<h3 align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/1544x1544_circle.png\" width=\"100\" alt=\"Logo\"/><br/>\n    <img src=\"https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png\" height=\"30\" width=\"0px\"/>\n    Catppuccin for <a href=\"https://github.com/neovim/neovim\">Neovim</a>\n    <img src=\"https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png\" height=\"30\" width=\"0px\"/>\n</h3>\n\n<p align=\"center\">\n    <a href=\"https://github.com/catppuccin/nvim/stargazers\"><img src=\"https://img.shields.io/github/stars/catppuccin/nvim?colorA=363a4f&colorB=b7bdf8&style=for-the-badge\"></a>\n    <a href=\"https://github.com/catppuccin/nvim/issues\"><img src=\"https://img.shields.io/github/issues/catppuccin/nvim?colorA=363a4f&colorB=f5a97f&style=for-the-badge\"></a>\n    <a href=\"https://github.com/catppuccin/nvim/contributors\"><img src=\"https://img.shields.io/github/contributors/catppuccin/nvim?colorA=363a4f&colorB=a6da95&style=for-the-badge\"></a>\n</p>\n\n<p align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/56817415/213472445-091e54fb-091f-4448-a631-fa6b2ba7d8a5.png\"/>\n</p>\n\n<p align=\"center\">\nThis port of <a href=\"https://github.com/catppuccin/\">Catppuccin</a> is special because it was the first one and the one that originated the project itself. Given this, it's important to acknowledge that it all didn't come to be what it is now out of nowhere. So, if you are interested in knowing more about the initial stages of the theme, you can find it under the <a href=\"https://github.com/catppuccin/nvim/tree/v0.1\">v0.1</a> tag.\n</p>\n\n## Previews\n\n<details>\n<summary>🌻 Latte</summary>\n<img src=\"https://user-images.githubusercontent.com/56817415/213473391-603bdc68-68f4-4877-a15a-b469040928b5.png\"/>\n</details>\n<details>\n<summary>🪴 Frappé</summary>\n<img src=\"https://user-images.githubusercontent.com/56817415/213473368-16931b70-fd84-4a89-a698-1b1bca1f82de.png\"/>\n</details>\n<details>\n<summary>🌺 Macchiato</summary>\n<img src=\"https://user-images.githubusercontent.com/56817415/213473285-7bd858be-6947-4d9e-8c01-2573cbc7e76c.png\"/>\n</details>\n<details>\n<summary>🌿 Mocha</summary>\n<img src=\"https://user-images.githubusercontent.com/56817415/213471997-34837219-88cc-4db2-baca-e25813a89789.png\"/>\n</details>\n\n<!-- panvimdoc-ignore-end -->\n\n## Features\n\n- Supports [Neovim](https://github.com/neovim/neovim/) >= 0.8\n- Highly configurable with 4 different flavours and [the ability to create your own!](https://github.com/catppuccin/nvim/discussions/323)\n- [Compiled](https://github.com/catppuccin/nvim#Compile) configuration for [fast startup time](https://www.reddit.com/r/neovim/comments/xxfpt3/catppuccinnvim_now_startup_in_1ms/)\n- Integrations with lsp, treesitter and [a bunch of plugins](https://github.com/catppuccin/nvim#integrations)\n- Support for [many other applications](https://github.com/catppuccin/catppuccin)\n\n## Installation\n\n[lazy.nvim](https://github.com/folke/lazy.nvim)\n```lua\n{ \"catppuccin/nvim\", name = \"catppuccin\", priority = 1000 }\n```\n\n[mini.deps](https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-deps.md)\n```lua\nadd({ source = \"catppuccin/nvim\", name = \"catppuccin\" })\n```\n\n[packer.nvim](https://github.com/wbthomason/packer.nvim)\n```lua\nuse { \"catppuccin/nvim\", as = \"catppuccin\" }\n```\n\nwith Neovim 0.12's `vim.pack`\n\n```lua\nvim.pack.add({ src = \"https://github.com/catppuccin/nvim\", name = \"catppuccin\" })\n```\n\n### vim support\n\nSupport for vim is provided through the `vim` branch.\n\n```vim\nPlug 'catppuccin/nvim', { 'branch': 'vim', 'as': 'catppuccin' }\n```\n\n> ![NOTE]\n> Keep in mind that vim support has been dropped\n> ([#949](https://github.com/catppuccin/nvim/pull/949)) and this branch won't\n> receive further updates unless necessary. For full vim support see\n> [catppuccin/vim](https://github.com/catppuccin/vim)\n\n## Usage\n\n```vim\ncolorscheme catppuccin-nvim \" catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha\n```\n\n```lua\nvim.cmd.colorscheme \"catppuccin-nvim\"\n```\n\n## Configuration\n\nThere is no need to call `setup` if you don't want to change the default options and settings.\n\n```lua\nrequire(\"catppuccin\").setup({\n    flavour = \"auto\", -- latte, frappe, macchiato, mocha\n    background = { -- :h background\n        light = \"latte\",\n        dark = \"mocha\",\n    },\n    transparent_background = false, -- disables setting the background color.\n    float = {\n        transparent = false, -- enable transparent floating windows\n        solid = false, -- use solid styling for floating windows, see |winborder|\n    },\n    show_end_of_buffer = false, -- shows the '~' characters after the end of buffers\n    term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`)\n    dim_inactive = {\n        enabled = false, -- dims the background color of inactive window\n        shade = \"dark\",\n        percentage = 0.15, -- percentage of the shade to apply to the inactive window\n    },\n    no_italic = false, -- Force no italic\n    no_bold = false, -- Force no bold\n    no_underline = false, -- Force no underline\n    styles = { -- Handles the styles of general hi groups (see `:h highlight-args`):\n        comments = { \"italic\" }, -- Change the style of comments\n        conditionals = { \"italic\" },\n        loops = {},\n        functions = {},\n        keywords = {},\n        strings = {},\n        variables = {},\n        numbers = {},\n        booleans = {},\n        properties = {},\n        types = {},\n        operators = {},\n        -- miscs = {}, -- Uncomment to turn off hard-coded styles\n    },\n    lsp_styles = { -- Handles the style of specific lsp hl groups (see `:h lsp-highlight`).\n        virtual_text = {\n            errors = { \"italic\" },\n            hints = { \"italic\" },\n            warnings = { \"italic\" },\n            information = { \"italic\" },\n            ok = { \"italic\" },\n        },\n        underlines = {\n            errors = { \"underline\" },\n            hints = { \"underline\" },\n            warnings = { \"underline\" },\n            information = { \"underline\" },\n            ok = { \"underline\" },\n        },\n        inlay_hints = {\n            background = true,\n        },\n    },\n    color_overrides = {},\n    custom_highlights = {},\n    default_integrations = true,\n    auto_integrations = false,\n    integrations = {\n        cmp = true,\n        gitsigns = true,\n        nvimtree = true,\n        notify = false,\n        mini = {\n            enabled = true,\n            indentscope_color = \"\",\n        },\n        -- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)\n    },\n})\n\n-- setup must be called before loading\nvim.cmd.colorscheme \"catppuccin-nvim\"\n```\n\n## Customization\n\n### Getting colors\n\n```lua\nlocal latte = require(\"catppuccin.palettes\").get_palette \"latte\"\nlocal frappe = require(\"catppuccin.palettes\").get_palette \"frappe\"\nlocal macchiato = require(\"catppuccin.palettes\").get_palette \"macchiato\"\nlocal mocha = require(\"catppuccin.palettes\").get_palette \"mocha\"\n```\n\nReturns a table where the key is the name of the color and the value is the hex code.\n\n### Overwriting colors\n\nColors can be overwritten using `color_overrides`, see https://github.com/catppuccin/nvim/discussions/323 for inspiration:\n\n```lua\nrequire(\"catppuccin\").setup {\n    color_overrides = {\n        all = {\n            text = \"#ffffff\",\n        },\n        latte = {\n            base = \"#ff0000\",\n            mantle = \"#242424\",\n            crust = \"#474747\",\n        },\n        frappe = {},\n        macchiato = {},\n        mocha = {},\n    }\n}\n```\n\n### Overwriting highlight groups\n\nGlobal highlight groups can be overwritten, for example:\n\n```lua\nrequire(\"catppuccin\").setup {\n    custom_highlights = function(colors)\n        return {\n            Comment = { fg = colors.flamingo },\n            TabLineSel = { bg = colors.pink },\n            CmpBorder = { fg = colors.surface2 },\n            Pmenu = { bg = colors.none },\n        }\n    end\n}\n```\n\nHighlight groups per flavour can also be overwritten, for example:\n\n```lua\nrequire(\"catppuccin\").setup {\n    highlight_overrides = {\n        all = function(colors)\n            return {\n                NvimTreeNormal = { fg = colors.none },\n                CmpBorder = { fg = \"#3e4145\" },\n            }\n        end,\n        latte = function(latte)\n            return {\n                Normal = { fg = latte.base },\n            }\n        end,\n        frappe = function(frappe)\n            return {\n                [\"@comment\"] = { fg = frappe.surface2, style = { \"italic\" } },\n            }\n        end,\n        macchiato = function(macchiato)\n            return {\n                LineNr = { fg = macchiato.overlay1 },\n            }\n        end,\n        mocha = function(mocha)\n            return {\n                Comment = { fg = mocha.flamingo },\n            }\n        end,\n    },\n}\n```\n\n## Integrations\n\nCatppuccin provides theme support for other plugins in the Neovim ecosystem and extended Neovim functionality through _integrations_.\n\nTo enable/disable an integration you just need to set it to true/false, for example:\n\n```lua\nrequire(\"catppuccin\").setup({\n    integrations = {\n        cmp = true,\n        gitsigns = true,\n        nvimtree = true,\n        notify = false,\n        mini = {\n            enabled = true,\n            indentscope_color = \"\",\n        },\n    }\n})\n```\n\nSome integrations are enabled by default, you can control this behaviour with `default_integrations` option.\n\n```lua\nrequire(\"catppuccin\").setup({\n    default_integrations = false,\n})\n```\n\nIf you use [lazy.nvim](https://github.com/folke/lazy.nvim) as your package manager, you can use the `auto_integrations` option to let catppuccin automatically detect installed plugins and enable their respective integrations.\n\n```lua\nrequire(\"catppuccin\").setup({\n    auto_integrations = true,\n})\n```\n\nBelow is a list of supported plugins and their corresponding integration module.\n\n> [!Important]\n> If you'd like to see the full list of highlight groups modified by Catppuccin, see the [`lua/catppuccin/groups/integrations/`](https://github.com/catppuccin/nvim/tree/main/lua/catppuccin/groups/integrations) directory.\n\n<table>\n<tr>\n<td> <b>Plugin</b> </td> <td> <b>Default</b> </td>\n</tr>\n\n<!-- aerial.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/stevearc/aerial.nvim\">aerial.nvim</a> </td>\n<td>\n\n```lua\naerial = false\n```\n\n</td>\n</tr>\n<!-- aerial.nvim -->\n\n<!-- alpha.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/goolord/alpha-nvim\">alpha-nvim</a> </td>\n<td>\n\n```lua\nalpha = true\n```\n\n</td>\n</tr>\n<!-- alpha.nvim -->\n\n<!-- artio.nvim -->\n</tr>\n<tr\n<tr>\n<td> <a href=\"https://github.com/comfysage/artio.nvim\">artio.nvim</a> </td>\n<td>\n\n```lua\nartio = true\n```\n\n</td>\n\n</tr>\n<!-- artio.nvim -->\n\n<!-- barbar.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/romgrk/barbar.nvim\">barbar.nvim</a> </td>\n<td>\n\n```lua\nbarbar = false\n```\n\n</td>\n</tr>\n<!-- barbar.nvim -->\n\n<!-- barbecue.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/utilyre/barbecue.nvim\">barbecue.nvim</a> </td>\n<td>\n\n```lua\nbarbecue = {\n    dim_dirname = true, -- directory name is dimmed by default\n    bold_basename = true,\n    dim_context = false,\n    alt_background = false,\n},\n```\n\n<details> <summary>Special</summary>\n\nUse this to set it up:\n\n```lua\nrequire(\"barbecue\").setup {\n  theme = \"catppuccin-nvim\", -- catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha\n}\n```\n</details>\n\n</td>\n</tr>\n<!-- barbecue.nvim -->\n\n<!-- beacon.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/DanilaMihailov/beacon.nvim\">beacon.nvim</a> </td>\n<td>\n\n```lua\nbeacon = false\n```\n\n</td>\n</tr>\n<!-- beacon.nvim -->\n\n<!-- blink.cmp -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/Saghen/blink.cmp\">blink.cmp</a> </td>\n<td>\n\n```lua\nblink_cmp = {\n    style = 'bordered',\n}\n```\n\n</td>\n</tr>\n<!-- blink.cmp -->\n\n<!-- blink.indent -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/saghen/blink.indent\">blink.indent</a> </td>\n<td>\n\n```lua\nblink_indent = true\n```\n\n</td>\n</tr>\n<!-- blink.indent -->\n\n<!-- blink.pairs -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/saghen/blink.pairs\">blink.pairs</a> </td>\n<td>\n\n```lua\nblink_pairs = true\n```\n\n<details> <summary>Special</summary>\n\nUse this to set it up:\n\n```lua\nrequire(\"blink.pairs\").setup {\n    highlights = {\n        groups = {\n            \"BlinkPairsRed\",\n            \"BlinkPairsYellow\",\n            \"BlinkPairsBlue\",\n            \"BlinkPairsOrange\",\n            \"BlinkPairsGreen\",\n            \"BlinkPairsPurple\",\n            \"BlinkPairsCyan\",\n        },\n    },\n}\n```\n</details>\n\n</td>\n</tr>\n<!-- blink.pairs -->\n\n<!-- bufferline.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/akinsho/bufferline.nvim\">bufferline.nvim</a> </td>\n<td>\n\n<details> <summary>Special</summary>\n\nUpdate your bufferline config to use the Catppuccin components:\n\n> [!NOTE]\n> bufferline needs to be loaded after setting up Catppuccin or it will highlight incorrectly\n\n```lua\nuse \"akinsho/bufferline.nvim\" {\n  after = \"catppuccin\",\n  config = function()\n    require(\"bufferline\").setup {\n      highlights = require(\"catppuccin.special.bufferline\").get_theme()\n    }\n  end\n}\n```\n\nConfigurations are self-explanatory, see `:h bufferline-highlights` for detailed explanations:\n\n```lua\nlocal mocha = require(\"catppuccin.palettes\").get_palette \"mocha\"\nbufferline.setup {\n    highlights = require(\"catppuccin.special.bufferline\").get_theme {\n        styles = { \"italic\", \"bold\" },\n        custom = {\n            all = {\n                fill = { bg = \"#000000\" },\n            },\n            mocha = {\n                background = { fg = mocha.text },\n            },\n            latte = {\n                background = { fg = \"#000000\" },\n            },\n        },\n    },\n}\n```\n\n</details>\n\n</td>\n</tr>\n<!-- bufferline.nvim -->\n\n<!-- buffon.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/francescarpi/buffon.nvim\">buffon.nvim</a> </td>\n<td>\n\n```lua\nbuffon = false\n```\n\n</td>\n</tr>\n<!-- buffon.nvim -->\n\n<!-- coc.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/neoclide/coc.nvim\">coc.nvim</a> </td>\n<td>\n\n```lua\ncoc_nvim = false\n```\n\n<details> <summary>Special</summary>\n\nSetting `enabled` to `true` enables this integration.\n\n```lua\ncoc_nvim = true,\n```\n> [!Note]\n> coc.nvim by default link to native lsp highlight groups so `lsp_styles` options will also apply to coc\n\nIn the nested tables you can set the style for the diagnostics, both `virtual_text` (what you see on the side) and `underlines` (what points directly at the thing (e.g. an error)).\n\n```lua\nlsp_styles = {\n    virtual_text = {\n        errors = { \"italic\" },\n        hints = { \"italic\" },\n        warnings = { \"italic\" },\n        information = { \"italic\" },\n        ok = { \"italic\" },\n    },\n    underlines = {\n        errors = { \"underline\" },\n        hints = { \"underline\" },\n        warnings = { \"underline\" },\n        information = { \"underline\" },\n        ok = { \"underline\" },\n    },\n    inlay_hints = {\n        background = true,\n    },\n},\n```\n\n</details>\n\n</td>\n</tr>\n<!-- coc.nvim -->\n\n<!-- colorful-winsep.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/nvim-zh/colorful-winsep.nvim\">colorful-winsep.nvim</a>\n</td>\n<td>\n\n```lua\ncolorful_winsep = {\n    enabled = false,\n    color = \"red\",\n}\n```\n</td>\n</tr>\n<!-- colorful_winsep.nvim -->\n\n<!-- dashboard-nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/glepnir/dashboard-nvim\">dashboard-nvim</a> </td>\n<td>\n\n```lua\ndashboard = true\n```\n\n</td>\n</tr>\n<!-- dashboard-nvim -->\n\n<!-- diffview.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/sindrets/diffview.nvim\">diffview.nvim</a> </td>\n<td>\n\n```lua\ndiffview = false\n```\n\n</td>\n</tr>\n<!-- diffview.nvim -->\n\n<!-- dropbar.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/Bekaboo/dropbar.nvim\">dropbar.nvim</a> </td>\n<td>\n\n```lua\ndropbar = {\n    enabled = false,\n    color_mode = false, -- enable color for kind's texts, not just kind's icons\n},\n```\n\n</td>\n</tr>\n<!-- dropbar.nvim -->\n\n<!-- feline.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/freddiehaddad/feline.nvim/\">feline.nvim</a> </td>\n<td>\n\n</details>\n\n<details> <summary>Special</summary>\n\nUpdate your Feline config to use the Catppuccin components:\n\n```lua\nlocal ctp_feline = require('catppuccin.special.feline')\n\nctp_feline.setup()\n\nrequire(\"feline\").setup({\n    components = ctp_feline.get_statusline(),\n})\n```\n\nNotice that calling `setup()` is optional. You may pass a lua table in order to change assets, settings and the colors per vim mode.\n\nHere are the defaults:\n\n```lua\nlocal clrs = require(\"catppuccin.palettes\").get_palette()\nlocal ctp_feline = require('catppuccin.special.feline')\nlocal U = require \"catppuccin.utils.colors\"\n\nctp_feline.setup({\n    assets = {\n        left_separator = \"\",\n        right_separator = \"\",\n        mode_icon = \"\",\n        dir = \"󰉖\",\n        file = \"󰈙\",\n        lsp = {\n            server = \"󰅡\",\n            error = \"\",\n            warning = \"\",\n            info = \"\",\n            hint = \"\",\n        },\n        git = {\n            branch = \"\",\n            added = \"\",\n            changed = \"\",\n            removed = \"\",\n        },\n    },\n    sett = {\n        text = U.vary_color({ latte = latte.base }, clrs.surface0),\n        bkg = U.vary_color({ latte = latte.crust }, clrs.surface0),\n        diffs = clrs.mauve,\n        extras = clrs.overlay1,\n        curr_file = clrs.maroon,\n        curr_dir = clrs.flamingo,\n        show_modified = false, -- show if the file has been modified\n        show_lazy_updates = false -- show the count of updatable plugins from lazy.nvim\n                                  -- need to set checker.enabled = true in lazy.nvim first\n                                  -- the icon is set in ui.icons.plugin in lazy.nvim\n    },\n    mode_colors = {\n        [\"n\"] = { \"NORMAL\", clrs.lavender },\n        [\"no\"] = { \"N-PENDING\", clrs.lavender },\n        [\"i\"] = { \"INSERT\", clrs.green },\n        [\"ic\"] = { \"INSERT\", clrs.green },\n        [\"t\"] = { \"TERMINAL\", clrs.green },\n        [\"v\"] = { \"VISUAL\", clrs.flamingo },\n        [\"V\"] = { \"V-LINE\", clrs.flamingo },\n        [\"\u0016\"] = { \"V-BLOCK\", clrs.flamingo },\n        [\"R\"] = { \"REPLACE\", clrs.maroon },\n        [\"Rv\"] = { \"V-REPLACE\", clrs.maroon },\n        [\"s\"] = { \"SELECT\", clrs.maroon },\n        [\"S\"] = { \"S-LINE\", clrs.maroon },\n        [\"\u0013\"] = { \"S-BLOCK\", clrs.maroon },\n        [\"c\"] = { \"COMMAND\", clrs.peach },\n        [\"cv\"] = { \"COMMAND\", clrs.peach },\n        [\"ce\"] = { \"COMMAND\", clrs.peach },\n        [\"r\"] = { \"PROMPT\", clrs.teal },\n        [\"rm\"] = { \"MORE\", clrs.teal },\n        [\"r?\"] = { \"CONFIRM\", clrs.mauve },\n        [\"!\"] = { \"SHELL\", clrs.green },\n    },\n    view = {\n        lsp = {\n            progress = true, -- if true the status bar will display an lsp progress indicator\n            name = false, -- if true the status bar will display the lsp servers name, otherwise it will display the text \"Lsp\"\n            exclude_lsp_names = {}, -- lsp server names that should not be displayed when name is set to true\n            separator = \"|\", -- the separator used when there are multiple lsp servers\n        },\n    }\n})\n```\n\n> [!Warning]\n> Currently feline [doesn't officially support custom themes](https://github.com/feline-nvim/feline.nvim/issues/302). In order for `:colorscheme catppuccin-<flavour>` to work you could add this autocmd as a workaround:\n\n```lua\nvim.api.nvim_create_autocmd(\"ColorScheme\", {\n    pattern = \"*\",\n    callback = function()\n        package.loaded[\"feline\"] = nil\n        package.loaded[\"catppuccin.special.feline\"] = nil\n        require(\"feline\").setup {\n            components = require(\"catppuccin.special.feline\").get_statusline(),\n        }\n    end,\n})\n```\n\n</details>\n\n</td>\n</tr>\n<!-- feline.nvim -->\n\n<!-- fern.vim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/lambdalisue/fern.vim\">fern.vim</a> </td>\n<td>\n\n```lua\nfern = false\n```\n\n</td>\n</tr>\n<!-- fern.vim -->\n\n<!-- fidget.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/j-hui/fidget.nvim\">fidget.nvim</a> </td>\n<td>\n\n```lua\nfidget = false\n```\n\n<details> <summary>Special</summary>\nSet `notification.window.winblend` to `0`:\n\n```lua\nrequire(\"fidget\").setup {\n    notification = {\n        window = {\n            winblend = 0,\n        },\n    }\n    -- ... the rest of your fidget config\n}\n```\n\n</details>\n\n</td>\n</tr>\n<!-- fidget.nvim -->\n\n<!-- flash.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/folke/flash.nvim\">flash.nvim</a> </td>\n<td>\n\n```lua\nflash = true\n```\n<!-- flash.nvim -->\n\n<!-- fzf-lua -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/ibhagwan/fzf-lua\">fzf-lua</a> </td>\n<td>\n\n```lua\nfzf = true\n```\n\n</td>\n</tr>\n<!-- fzf-lua -->\n\n<!-- gitgraph.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/isakbm/gitgraph.nvim\">gitgraph.nvim</a> </td>\n<td>\n\n```lua\ngitgraph = false\n```\n<!-- gitgraph.nvim -->\n\n<!-- gitsigns.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/lewis6991/gitsigns.nvim\">gitsigns.nvim</a> </td>\n<td>\n\n```lua\ngitsigns = true\n```\n\n<details> <summary>Special</summary>\n\n```lua\ngitsigns = {\n  enabled = true,\n  -- align with the transparent_background option by default\n  transparent = false,\n}\n ```\n\n</details>\n<!-- gitsigns.nvim -->\n\n<!-- grug-far.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/MagicDuck/grug-far.nvim\">grug-far.nvim</a> </td>\n<td>\n\n```lua\ngrug_far = false\n```\n<!-- grug-far.nvim -->\n\n<!-- harpoon -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/ThePrimeagen/harpoon\">harpoon</a> </td>\n<td>\n\n```lua\nharpoon = false\n```\n<!-- harpoon -->\n\n<!-- headlines.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/lukas-reineke/headlines.nvim\">headlines.nvim</a> </td>\n<td>\n\n```lua\nheadlines = false\n```\n<!-- headlines.nvim -->\n\n<!-- hop.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/phaazon/hop.nvim\">hop.nvim</a> </td>\n<td>\n\n```lua\nhop = false\n```\n<!-- hop.nvim -->\n\n<!-- indent-blankline.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/lukas-reineke/indent-blankline.nvim\">indent-blankline.nvim</a> </td>\n<td>\n\n```lua\nindent_blankline = {\n    enabled = true,\n    scope_color = \"\", -- catppuccin color (eg. `lavender`) Default: text\n    colored_indent_levels = false,\n},\n\n```\n\n<details> <summary>Special</summary>\n\n`colored_indent_levels` enables char highlights per indent level. Follow the instructions [here](https://github.com/lukas-reineke/indent-blankline.nvim#multiple-indent-colors) to set the latter up.\n\n</details>\n\n<!-- indent-blankline.nvim -->\n\n<!-- leap.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/ggandor/leap.nvim\">leap.nvim</a> </td>\n<td>\n\n```lua\nleap = false\n```\n<!-- leap.nvim -->\n\n<!-- lightline.vim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/itchyny/lightline.vim\">lightline.vim</a> </td>\n<td>\n\n<details> <summary>Special</summary>\n\n```vim\nlet g:lightline = {'colorscheme': 'catppuccin'}\n```\n\n</details>\n<!-- lightline.vim -->\n\n<!-- lightspeed.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/ggandor/lightspeed.nvim\">lightspeed.nvim</a> </td>\n<td>\n\n```lua\nlightspeed = false\n```\n<!-- lightspeed.nvim -->\n\n<!-- lir.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/tamago324/lir.nvim\">lir.nvim</a> </td>\n<td>\n\n```lua\nlir = {\n    enabled = false,\n    git_status = false\n}\n```\n<!-- lir.nvim -->\n\n<!-- lspsaga.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/glepnir/lspsaga.nvim\">lspsaga.nvim</a> </td>\n<td>\n\n```lua\nlsp_saga = false\n```\n\n<details> <summary>Special</summary>\n\nFor custom Lsp Kind Icon and Color\n\n```lua\nrequire(\"lspsaga\").setup {\n    ui = {\n        kind = require(\"catppuccin.groups.integrations.lsp_saga\").custom_kind(),\n    },\n}\n```\n\n</details>\n</tr>\n<!-- lspsaga.nvim -->\n\n<!-- lualine.nvim -->\n<tr>\n<td> <a href=\"https://github.com/nvim-lualine/lualine.nvim\">lualine.nvim</a> </td>\n<td>\n\n```lua\n-- transparent_bg = opts.transparent_background and \"NONE\" or C.mantle\nlualine = {\n    normal = {\n        a = { bg = C.blue, fg = C.mantle, gui = \"bold\" },\n        b = { bg = C.surface0, fg = C.blue },\n        c = { bg = transparent_bg, fg = C.text },\n    },\n\n    insert = {\n        a = { bg = C.green, fg = C.base, gui = \"bold\" },\n        b = { bg = C.surface0, fg = C.green },\n    },\n\n    terminal = {\n        a = { bg = C.green, fg = C.base, gui = \"bold\" },\n        b = { bg = C.surface0, fg = C.green },\n    },\n\n    command = {\n        a = { bg = C.peach, fg = C.base, gui = \"bold\" },\n        b = { bg = C.surface0, fg = C.peach },\n    },\n    visual = {\n        a = { bg = C.mauve, fg = C.base, gui = \"bold\" },\n        b = { bg = C.surface0, fg = C.mauve },\n    },\n    replace = {\n        a = { bg = C.red, fg = C.base, gui = \"bold\" },\n        b = { bg = C.surface0, fg = C.red },\n    },\n    inactive = {\n        a = { bg = transparent_bg, fg = C.blue },\n        b = { bg = transparent_bg, fg = C.surface1, gui = \"bold\" },\n        c = { bg = transparent_bg, fg = C.overlay0 },\n    },\n},\n```\n\n<details> <summary>Special</summary>\n\nTo implement color overrides in the `integrations.lualine` spec:\n```lua\n-- In your catppuccin config (integrations): \nlualine = {\n    -- lualine color overrides in the following hierarchy: Catppuccin Flavor -> Mode -> Lualine Section\n    -- The Catppuccin flavor entry can be any Catpuccin flavor or \"all\" to apply to all flavors\n    -- The flavor entry can be either a table or a function which consumes the current Catppuccin palette, just like custom_highlights and color_overrides\n    all = function(colors)\n        ---@type CtpIntegrationLualineOverride\n        return {\n            -- Specifying a normal-mode status line override for section a's background and b's foreground to use lavender like the main Catppuccin theme\n            normal = { \n                a = { bg = colors.lavender, gui = \"italic\" },\n                b = { fg = colors.lavender },\n            }\n        }\n    end,\n    -- A macchiato-specific override, which takes priority over 'all'. Also using the direct table syntax instead of function in case you do not rely on dynamic palette colors\n    macchiato = { \n        normal = { \n            a = { bg = \"#abcdef\" },\n        }\n    },\n},\n--  And in your lualine config:\nrequire('lualine').setup {\n    options = {\n        -- lualine will integrate with catppuccin by name or automatically via `vim.g.colors_name` by setting this to \"auto\" \n        theme = \"catppuccin-nvim\"\n        -- ... the rest of your lualine config\n    }\n}\n```\n\n</details>\n\n<!-- lualine.nvim -->\n\n<!-- markview.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/OXY2DEV/markview.nvim\">markview.nvim</a> </td>\n<td>\n\n```lua\nmarkview = false\n```\n\n</td>\n</tr>\n<!-- markview.nvim -->\n\n<!-- mason.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/williamboman/mason.nvim\">mason.nvim</a> </td>\n<td>\n\n```lua\nmason = false\n```\n\n</td>\n</tr>\n<!-- mason.nvim -->\n\n<!-- mini.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/echasnovski/mini.nvim\">mini.nvim</a> </td>\n<td>\n\n```lua\nmini = {\n    enabled = true,\n    indentscope_color = \"\", -- catppuccin color (eg. `lavender`) Default: text\n},\n```\n\n</td>\n</tr>\n<!-- mini.nvim -->\n\n<!-- neo-tree.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/nvim-neo-tree/neo-tree.nvim\">neo-tree.nvim</a> </td>\n<td>\n\n```lua\nneotree = true\n```\n\n</td>\n</tr>\n<!-- neo-tree.nvim -->\n\n<!-- neogit -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/NeogitOrg/neogit\">neogit</a> </td>\n<td>\n\n```lua\nneogit = true\n```\n\n</td>\n</tr>\n<!-- neogit -->\n\n<!-- neotest -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/nvim-neotest/neotest\">neotest</a> </td>\n<td>\n\n```lua\nneotest = false\n```\n\n</td>\n</tr>\n<!-- neotest -->\n\n<!-- noice.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/folke/noice.nvim\">noice.nvim</a> </td>\n<td>\n\n```lua\nnoice = false\n```\n\n</td>\n</tr>\n<!-- noice.nvim -->\n\n<!-- notifier.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/vigoux/notifier.nvim\">notifier.nvim</a> </td>\n<td>\n\n```lua\nnotifier = false\n```\n\n</td>\n</tr>\n<!-- notifier.nvim -->\n\n<!-- nvim-cmp -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/hrsh7th/nvim-cmp\">nvim-cmp</a> </td>\n<td>\n\n```lua\ncmp = true\n```\n\n</td>\n</tr>\n<!-- nvim-cmp -->\n\n<!-- nvim-copilot-vim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/github/copilot.vim\">copilot.vim</a> </td>\n<td>\n\n```lua\ncopilot_vim = false,\n```\n\n</td>\n</tr>\n<!-- nvim-copilot-vim -->\n\n<!-- nvim-dap -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/mfussenegger/nvim-dap\">nvim-dap</a> </td>\n<td>\n\n```lua\ndap = true\n```\n\n<details> <summary>Special</a> </summary>\n\n```lua\nlocal sign = vim.fn.sign_define\n\nsign(\"DapBreakpoint\", { text = \"●\", texthl = \"DapBreakpoint\", linehl = \"\", numhl = \"\"})\nsign(\"DapBreakpointCondition\", { text = \"●\", texthl = \"DapBreakpointCondition\", linehl = \"\", numhl = \"\"})\nsign(\"DapLogPoint\", { text = \"◆\", texthl = \"DapLogPoint\", linehl = \"\", numhl = \"\"})\n```\n\n</details>\n\n</td>\n</tr>\n<!-- nvim-dap -->\n\n<!-- nvim-dap-ui -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/rcarriga/nvim-dap-ui\">nvim-dap-ui</a> </td>\n<td>\n\n```lua\ndap_ui = true\n```\n\n</td>\n</tr>\n<!-- nvim-dap-ui -->\n\n<!-- navic -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/SmiteshP/nvim-navic\">navic</a> </td>\n<td>\n\n```lua\nnavic = {\n    enabled = false,\n    custom_bg = \"NONE\", -- \"lualine\" will set background to mantle\n},\n\n```\n<details> <summary>Special</summary>\n\n```lua\n-- You NEED to enable highlight in nvim-navic setting or it won't work\nrequire(\"nvim-navic\").setup {\n    highlight = true\n}\n```\n\n</details>\n\n</td>\n</tr>\n<!-- navic -->\n\n<!-- nvim-notify -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/rcarriga/nvim-notify\">nvim-notify</a> </td>\n<td>\n\n```lua\nnotify = false\n```\n\n</td>\n</tr>\n<!-- nvim-notify -->\n\n<!-- nvim-surround -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/kylechui/nvim-surround\">nvim-surround</a> </td>\n<td>\n\n```lua\nnvim_surround = false\n```\n\n</td>\n</tr>\n<!-- nvim-surround -->\n\n<!-- nvim-tree.lua -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/kyazdani42/nvim-tree.lua\">nvim-tree.lua</a> </td>\n<td>\n\n```lua\nnvimtree = true\n```\n\n</td>\n</tr>\n<!-- nvim-tree.lua -->\n\n<!-- nvim-treesitter-context -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/nvim-treesitter/nvim-treesitter-context\">nvim-treesitter-context</a> </td>\n<td>\n\n```lua\ntreesitter_context = true\n```\n\n</td>\n</tr>\n<!-- nvim-treesitter-context -->\n\n<!-- nvim-ts-rainbow2 -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/HiPhish/nvim-ts-rainbow2\">nvim-ts-rainbow2</a> </td>\n<td>\n\n```lua\nts_rainbow2 = false\n```\n\n</td>\n</tr>\n<!-- nvim-ts-rainbow2 -->\n\n<!-- nvim-ts-rainbow -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/p00f/nvim-ts-rainbow\">nvim-ts-rainbow</a> </td>\n<td>\n\n```lua\nts_rainbow = false\n```\n\n</td>\n</tr>\n<!-- nvim-ts-rainbow -->\n\n<!-- nvim-ufo -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/kevinhwang91/nvim-ufo\">nvim-ufo</a> </td>\n<td>\n\n```lua\nufo = true\n```\n\n</td>\n</tr>\n<!-- nvim-ufo -->\n\n<!-- nvim-window-picker -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/s1n7ax/nvim-window-picker\">nvim-window-picker</a> </td>\n<td>\n\n```lua\nwindow_picker = false\n```\n<!-- nvim-window-picker -->\n\n<!-- octo.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/pwntester/octo.nvim\">octo.nvim</a> </td>\n<td>\n\n```lua\nocto = false\n```\n\n</td>\n</tr>\n<!-- octo.nvim -->\n\n<!-- overseer.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/stevearc/overseer.nvim\">overseer.nvim</a> </td>\n<td>\n\n```lua\noverseer = false\n```\n\n</td>\n</tr>\n<!-- overseer.nvim -->\n\n<!-- pounce.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/rlane/pounce.nvim\">pounce.nvim</a> </td>\n<td>\n\n```lua\npounce = false\n```\n\n</td>\n</tr>\n<!-- pounce.nvim -->\n\n<!-- rainbow-delimiters.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/HiPhish/rainbow-delimiters.nvim\">rainbow-delimiters.nvim</a> </td>\n<td>\n\n```lua\nrainbow_delimiters = true\n```\n\n</td>\n</tr>\n<!-- rainbow-delimiters.nvim -->\n\n<!-- reactive.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/rasulomaroff/reactive.nvim\">reactive.nvim</a> </td>\n<td>\n\n<details> <summary>Special</summary>\n\nThere're 2 available presets (`cursor` and `cursorline`) for every flavour.\n\nHere is how you can use them.\n\n```lua\nrequire('reactive').setup {\n  load = { 'catppuccin-mocha-cursor', 'catppuccin-mocha-cursorline' }\n}\n```\n\nTo use another flavour just replace `mocha` with the one you want to use.\n\n</details>\n\n</td>\n</tr>\n<!-- reactive.nvim -->\n\n<!-- render-markdown.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/MeanderingProgrammer/render-markdown.nvim\">render-markdown.nvim</a> </td>\n<td>\n\n```lua\nrender_markdown = true\n```\n\n</td>\n</tr>\n<!-- render-markdown.nvim -->\n\n<!-- snacks.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/folke/snacks.nvim\">snacks.nvim</a> </td>\n<td>\n\n```lua\nsnacks = {\n    enabled = false,\n    indent_scope_color = \"\", -- catppuccin color (eg. `lavender`) Default: overlay2\n}\n```\n\n</td>\n</tr>\n<!-- snacks.nvim -->\n\n<!-- symbols-outline.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/simrat39/symbols-outline.nvim\">symbols-outline.nvim</a> </td>\n<td>\n\n> [!NOTE]\n> This plugin has been archived by the author, consider using [outline.nvim](https://github.com/hedyhli/outline.nvim)\n\n```lua\nsymbols_outline = false\n```\n\n</td>\n</tr>\n<!-- symbols-outline.nvim -->\n\n<!-- telekasten.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/renerocksai/telekasten.nvim\">telekasten.nvim</a> </td>\n<td>\n\n```lua\ntelekasten = false\n```\n\n</td>\n</tr>\n<!-- telekasten.nvim -->\n\n<!-- telescope.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/nvim-telescope/telescope.nvim\">telescope.nvim</a> </td>\n<td>\n\n```lua\ntelescope = {\n    enabled = true,\n}\n```\n\n</td>\n</tr>\n<!-- telescope.nvim -->\n\n<!-- trouble.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/folke/trouble.nvim\">trouble.nvim</a> </td>\n<td>\n\n```lua\nlsp_trouble = false\n```\n\n</td>\n</tr>\n<!-- trouble.nvim -->\n\n<!-- vim-airline -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/vim-airline/vim-airline\">vim-airline</a> </td>\n<td>\n\n<details> <summary>Special</summary>\n\n```vim\nlet g:airline_theme = 'catppuccin'\n```\n\n</details>\n\n</td>\n</tr>\n<!-- vim-airline -->\n\n<!-- vim-clap -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/liuchengxu/vim-clap\">vim-clap</a> </td>\n<td>\n\n<details> <summary>Special</summary>\n\nUse this to set it up:\n\n```vim\nlet g:clap_theme = 'catppuccin'\n```\n\n</details>\n\n</td>\n</tr>\n<!-- vim-clap -->\n\n<!-- vim-dadbod-ui -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/kristijanhusak/vim-dadbod-ui\">vim-dadbod-ui</a> </td>\n<td>\n\n```lua\ndadbod_ui = false\n```\n\n</td>\n</tr>\n<!-- vim-dadbod-ui -->\n\n<!-- vim-gitgutter -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/airblade/vim-gitgutter\">vim-gitgutter</a> </td>\n<td>\n\n```lua\ngitgutter = false\n```\n\n</td>\n</tr>\n<!-- vim-gitgutter -->\n\n<!-- vim-illuminate -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/RRethy/vim-illuminate\">vim-illuminate</a> </td>\n<td>\n\n```lua\nilluminate = {\n    enabled = true,\n    lsp = false\n}\n```\n\n</td>\n</tr>\n<!-- vim-illuminate -->\n\n<!-- vim-sandwich -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/machakann/vim-sandwich\">vim-sandwich</a> </td>\n<td>\n\n```lua\nsandwich = false\n```\n\n</td>\n</tr>\n<!-- vim-sandwich -->\n\n<!-- vim-signify -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/mhinz/vim-signify\">vim-signify</a> </td>\n<td>\n\n```lua\nsignify = false\n```\n\n</td>\n</tr>\n<!-- vim-signify -->\n\n<!-- vim-sneak -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/justinmk/vim-sneak\">vim-sneak</a> </td>\n<td>\n\n```lua\nvim_sneak = false\n```\n\n</td>\n</tr>\n<!-- vim-sneak -->\n\n<!-- vimwiki -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/vimwiki/vimwiki\">vimwiki</a> </td>\n<td>\n\n```lua\nvimwiki = false\n```\n\n</td>\n</tr>\n<!-- vimwiki -->\n\n<!-- which-key.nvim -->\n</tr>\n<tr>\n<td> <a href=\"https://github.com/folke/which-key.nvim\">which-key.nvim</a> </td>\n<td>\n\n```lua\nwhich_key = false\n```\n\n</td>\n</tr>\n<!-- which-key.nvim -->\n\n</table>\n\n## Compile\n\nCatppuccin is a highly customizable and configurable colorscheme. This does\nhowever come at the cost of complexity and execution time. Catppuccin can pre\ncompute the results of your configuration and store the results in a compiled\nLua file. We use these pre-cached values to set it's highlights.\n\nBy default, Catppuccin writes the compiled results into the system's cache\ndirectory. See below if you'd like to change the cache directory:\n\n```lua\nrequire(\"catppuccin\").setup({ -- Note: On windows we replace `/` with `\\` by default\n    compile_path = vim.fn.stdpath \"cache\" .. \"/catppuccin\"\n})\n```\n\n## 🙋 FAQ\n\n### Why do my Treesitter highlights look incorrect?\n\nPlease disable `additional_vim_regex_highlighting`:\n\n```lua\nrequire(\"nvim-treesitter.configs\").setup {\n    highlight = {\n        enable = true,\n        additional_vim_regex_highlighting = false\n    },\n}\n```\n\n### Why aren't my colors the same as the previews?\n\nCatppuccin requires that your terminal supports true color, meaning that your\nterminal can display the full range of 16 million colors.\n\n- Supported: iterm2 (macOS), kitty, wezterm, alacritty, [see full list...](https://github.com/termstandard/colors#truecolor-support-in-output-devices)\n- Unsupported: Terminal.app (macOS), Terminus, Terminology, [see full list...](https://github.com/termstandard/colors#not-supporting-truecolor)\n\nIf you use tmux, make sure to enable [true color\nsupport](https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6)\nand [italic font\nsupport](https://gist.github.com/gyribeiro/4192af1aced7a1b555df06bd3781a722).\nThis will prevent issues raised in\n[#415](https://github.com/catppuccin/nvim/issues/415) and\n[#428](https://github.com/catppuccin/nvim/issues/428).\n\n## 💝 Thanks to\n\n**Current Maintainer(s)**\n\n- [vollowx](https://github.com/vollowx)\n- [robin](https://github.com/comfysage)\n\n**Previous Maintainer(s)**\n\n- [Pocco81](https://github.com/Pocco81)\n- [nullchilly](https://github.com/nullchilly)\n- [mrtnvgr](https://github.com/mrtnvgr)\n\n<!-- panvimdoc-ignore-start -->\n\n&nbsp;\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true\" /></p>\n<p align=\"center\">Copyright &copy; 2021-present <a href=\"https://github.com/catppuccin\" target=\"_blank\">Catppuccin Org</a>\n<p align=\"center\"><a href=\"https://github.com/catppuccin/catppuccin/blob/main/LICENSE\"><img src=\"https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8\"/></a></p>\n\n<!-- panvimdoc-ignore-end -->\n"
  },
  {
    "path": "after/queries/css/highlights.scm",
    "content": ";; extends\n[\n(class_name)\n] @property.class\n\n[\n (id_name)\n ] @property.id\n\n[\n (declaration\n\t (plain_value) @string.plain)\n ]\n[\n (tag_name)\n ] @type.tag\n"
  },
  {
    "path": "after/queries/javascript/highlights.scm",
    "content": ";; extends\n[\n\"export\"\n] @keyword.export\n"
  },
  {
    "path": "after/queries/typescript/highlights.scm",
    "content": ";; extends\n[\n\"export\"\n] @keyword.export\n"
  },
  {
    "path": "colors/catppuccin-frappe.lua",
    "content": "require(\"catppuccin\").load \"frappe\"\n"
  },
  {
    "path": "colors/catppuccin-latte.lua",
    "content": "require(\"catppuccin\").load \"latte\"\n"
  },
  {
    "path": "colors/catppuccin-macchiato.lua",
    "content": "require(\"catppuccin\").load \"macchiato\"\n"
  },
  {
    "path": "colors/catppuccin-mocha.lua",
    "content": "require(\"catppuccin\").load \"mocha\"\n"
  },
  {
    "path": "colors/catppuccin-nvim.vim",
    "content": "lua require(\"catppuccin\").load()\n"
  },
  {
    "path": "colors/catppuccin.lua",
    "content": "require(\"catppuccin\").load()\n"
  },
  {
    "path": "doc/catppuccin.txt",
    "content": "*catppuccin.txt*                              Soothing pastel theme for NeoVim\n\n==============================================================================\nTable of Contents                               *catppuccin-table-of-contents*\n\n  - Features                                             |catppuccin-features|\n  - Installation                                     |catppuccin-installation|\n  - Usage                                                   |catppuccin-usage|\n  - Configuration                                   |catppuccin-configuration|\n  - Customization                                   |catppuccin-customization|\n  - Integrations                                     |catppuccin-integrations|\n  - Compile                                               |catppuccin-compile|\n  - 🙋 FAQ                                             |catppuccin-🙋-faq|\n  - 💝 Thanks to                                 |catppuccin-💝-thanks-to|\n\nFEATURES                                                 *catppuccin-features*\n\n- Supports Neovim <https://github.com/neovim/neovim/> >= 0.8\n- Highly configurable with 4 different flavours and the ability to create your own! <https://github.com/catppuccin/nvim/discussions/323>\n- Compiled <https://github.com/catppuccin/nvim#Compile> configuration for fast startup time <https://www.reddit.com/r/neovim/comments/xxfpt3/catppuccinnvim_now_startup_in_1ms/>\n- Integrations with lsp, treesitter and a bunch of plugins <https://github.com/catppuccin/nvim#integrations>\n- Support for many other applications <https://github.com/catppuccin/catppuccin>\n\n\nINSTALLATION                                         *catppuccin-installation*\n\nlazy.nvim <https://github.com/folke/lazy.nvim>\n\n>lua\n    { \"catppuccin/nvim\", name = \"catppuccin\", priority = 1000 }\n<\n\nmini.deps\n<https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-deps.md>\n\n>lua\n    add({ source = \"catppuccin/nvim\", name = \"catppuccin\" })\n<\n\npacker.nvim <https://github.com/wbthomason/packer.nvim>\n\n>lua\n    use { \"catppuccin/nvim\", as = \"catppuccin\" }\n<\n\nwith Neovim 0.12’s `vim.pack`\n\n>lua\n    vim.pack.add({ src = \"https://github.com/catppuccin/nvim\", name = \"catppuccin\" })\n<\n\n\nVIM SUPPORT ~\n\nSupport for vim is provided through the `vim` branch.\n\n>vim\n    Plug 'catppuccin/nvim', { 'branch': 'vim', 'as': 'catppuccin' }\n<\n\n\n  ![NOTE] Keep in mind that vim support has been dropped (#949\n  <https://github.com/catppuccin/nvim/pull/949>) and this branch won’t receive\n  further updates unless necessary. For full vim support see catppuccin/vim\n  <https://github.com/catppuccin/vim>\n\nUSAGE                                                       *catppuccin-usage*\n\n>vim\n    colorscheme catppuccin-nvim \" catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha\n<\n\n>lua\n    vim.cmd.colorscheme \"catppuccin-nvim\"\n<\n\n\nCONFIGURATION                                       *catppuccin-configuration*\n\nThere is no need to call `setup` if you don’t want to change the default\noptions and settings.\n\n>lua\n    require(\"catppuccin\").setup({\n        flavour = \"auto\", -- latte, frappe, macchiato, mocha\n        background = { -- :h background\n            light = \"latte\",\n            dark = \"mocha\",\n        },\n        transparent_background = false, -- disables setting the background color.\n        float = {\n            transparent = false, -- enable transparent floating windows\n            solid = false, -- use solid styling for floating windows, see |winborder|\n        },\n        show_end_of_buffer = false, -- shows the '~' characters after the end of buffers\n        term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`)\n        dim_inactive = {\n            enabled = false, -- dims the background color of inactive window\n            shade = \"dark\",\n            percentage = 0.15, -- percentage of the shade to apply to the inactive window\n        },\n        no_italic = false, -- Force no italic\n        no_bold = false, -- Force no bold\n        no_underline = false, -- Force no underline\n        styles = { -- Handles the styles of general hi groups (see `:h highlight-args`):\n            comments = { \"italic\" }, -- Change the style of comments\n            conditionals = { \"italic\" },\n            loops = {},\n            functions = {},\n            keywords = {},\n            strings = {},\n            variables = {},\n            numbers = {},\n            booleans = {},\n            properties = {},\n            types = {},\n            operators = {},\n            -- miscs = {}, -- Uncomment to turn off hard-coded styles\n        },\n        lsp_styles = { -- Handles the style of specific lsp hl groups (see `:h lsp-highlight`).\n            virtual_text = {\n                errors = { \"italic\" },\n                hints = { \"italic\" },\n                warnings = { \"italic\" },\n                information = { \"italic\" },\n                ok = { \"italic\" },\n            },\n            underlines = {\n                errors = { \"underline\" },\n                hints = { \"underline\" },\n                warnings = { \"underline\" },\n                information = { \"underline\" },\n                ok = { \"underline\" },\n            },\n            inlay_hints = {\n                background = true,\n            },\n        },\n        color_overrides = {},\n        custom_highlights = {},\n        default_integrations = true,\n        auto_integrations = false,\n        integrations = {\n            cmp = true,\n            gitsigns = true,\n            nvimtree = true,\n            notify = false,\n            mini = {\n                enabled = true,\n                indentscope_color = \"\",\n            },\n            -- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)\n        },\n    })\n    \n    -- setup must be called before loading\n    vim.cmd.colorscheme \"catppuccin-nvim\"\n<\n\n\nCUSTOMIZATION                                       *catppuccin-customization*\n\n\nGETTING COLORS ~\n\n>lua\n    local latte = require(\"catppuccin.palettes\").get_palette \"latte\"\n    local frappe = require(\"catppuccin.palettes\").get_palette \"frappe\"\n    local macchiato = require(\"catppuccin.palettes\").get_palette \"macchiato\"\n    local mocha = require(\"catppuccin.palettes\").get_palette \"mocha\"\n<\n\nReturns a table where the key is the name of the color and the value is the hex\ncode.\n\n\nOVERWRITING COLORS ~\n\nColors can be overwritten using `color_overrides`, see\nhttps://github.com/catppuccin/nvim/discussions/323 for inspiration:\n\n>lua\n    require(\"catppuccin\").setup {\n        color_overrides = {\n            all = {\n                text = \"#ffffff\",\n            },\n            latte = {\n                base = \"#ff0000\",\n                mantle = \"#242424\",\n                crust = \"#474747\",\n            },\n            frappe = {},\n            macchiato = {},\n            mocha = {},\n        }\n    }\n<\n\n\nOVERWRITING HIGHLIGHT GROUPS ~\n\nGlobal highlight groups can be overwritten, for example:\n\n>lua\n    require(\"catppuccin\").setup {\n        custom_highlights = function(colors)\n            return {\n                Comment = { fg = colors.flamingo },\n                TabLineSel = { bg = colors.pink },\n                CmpBorder = { fg = colors.surface2 },\n                Pmenu = { bg = colors.none },\n            }\n        end\n    }\n<\n\nHighlight groups per flavour can also be overwritten, for example:\n\n>lua\n    require(\"catppuccin\").setup {\n        highlight_overrides = {\n            all = function(colors)\n                return {\n                    NvimTreeNormal = { fg = colors.none },\n                    CmpBorder = { fg = \"#3e4145\" },\n                }\n            end,\n            latte = function(latte)\n                return {\n                    Normal = { fg = latte.base },\n                }\n            end,\n            frappe = function(frappe)\n                return {\n                    [\"@comment\"] = { fg = frappe.surface2, style = { \"italic\" } },\n                }\n            end,\n            macchiato = function(macchiato)\n                return {\n                    LineNr = { fg = macchiato.overlay1 },\n                }\n            end,\n            mocha = function(mocha)\n                return {\n                    Comment = { fg = mocha.flamingo },\n                }\n            end,\n        },\n    }\n<\n\n\nINTEGRATIONS                                         *catppuccin-integrations*\n\nCatppuccin provides theme support for other plugins in the Neovim ecosystem and\nextended Neovim functionality through _integrations_.\n\nTo enable/disable an integration you just need to set it to true/false, for\nexample:\n\n>lua\n    require(\"catppuccin\").setup({\n        integrations = {\n            cmp = true,\n            gitsigns = true,\n            nvimtree = true,\n            notify = false,\n            mini = {\n                enabled = true,\n                indentscope_color = \"\",\n            },\n        }\n    })\n<\n\nSome integrations are enabled by default, you can control this behaviour with\n`default_integrations` option.\n\n>lua\n    require(\"catppuccin\").setup({\n        default_integrations = false,\n    })\n<\n\nIf you use lazy.nvim <https://github.com/folke/lazy.nvim> as your package\nmanager, you can use the `auto_integrations` option to let catppuccin\nautomatically detect installed plugins and enable their respective\nintegrations.\n\n>lua\n    require(\"catppuccin\").setup({\n        auto_integrations = true,\n    })\n<\n\nBelow is a list of supported plugins and their corresponding integration\nmodule.\n\n\n  [!Important] If you’d like to see the full list of highlight groups modified\n  by Catppuccin, see the `lua/catppuccin/groups/integrations/`\n  <https://github.com/catppuccin/nvim/tree/main/lua/catppuccin/groups/integrations>\n  directory.\nPluginDefaultaerial.nvim>lua\n    aerial = false\n<\n\nalpha-nvim>lua\n    alpha = true\n<\n\nbarbar.nvim>lua\n    barbar = false\n<\n\nbarbecue.nvim>lua\n    barbecue = {\n        dim_dirname = true, -- directory name is dimmed by default\n        bold_basename = true,\n        dim_context = false,\n        alt_background = false,\n    },\n<\n\nSpecial ~\n\nUse this to set it up:\n\n>lua\n    require(\"barbecue\").setup {\n      theme = \"catppuccin-nvim\", -- catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha\n    }\n<\n\nbeacon.nvim>lua\n    beacon = false\n<\n\nblink.cmp>lua\n    blink_cmp = {\n        style = 'bordered',\n    }\n<\n\nblink.indent>lua\n    blink_indent = true\n<\n\nblink.pairs>lua\n    blink_pairs = true\n<\n\nSpecial ~\n\nUse this to set it up:\n\n>lua\n    require(\"blink.pairs\").setup {\n        highlights = {\n            groups = {\n                \"BlinkPairsRed\",\n                \"BlinkPairsYellow\",\n                \"BlinkPairsBlue\",\n                \"BlinkPairsOrange\",\n                \"BlinkPairsGreen\",\n                \"BlinkPairsPurple\",\n                \"BlinkPairsCyan\",\n            },\n        },\n    }\n<\n\nbufferline.nvimSpecial ~\n\nUpdate your bufferline config to use the Catppuccin components:\n\n\n  [!NOTE] bufferline needs to be loaded after setting up Catppuccin or it will\n  highlight incorrectly\n>lua\n    use \"akinsho/bufferline.nvim\" {\n      after = \"catppuccin\",\n      config = function()\n        require(\"bufferline\").setup {\n          highlights = require(\"catppuccin.special.bufferline\").get_theme()\n        }\n      end\n    }\n<\n\nConfigurations are self-explanatory, see |bufferline-highlights| for detailed\nexplanations:\n\n>lua\n    local mocha = require(\"catppuccin.palettes\").get_palette \"mocha\"\n    bufferline.setup {\n        highlights = require(\"catppuccin.special.bufferline\").get_theme {\n            styles = { \"italic\", \"bold\" },\n            custom = {\n                all = {\n                    fill = { bg = \"#000000\" },\n                },\n                mocha = {\n                    background = { fg = mocha.text },\n                },\n                latte = {\n                    background = { fg = \"#000000\" },\n                },\n            },\n        },\n    }\n<\n\nbuffon.nvim>lua\n    buffon = false\n<\n\ncoc.nvim>lua\n    coc_nvim = false\n<\n\nSpecial ~\n\nSetting `enabled` to `true` enables this integration.\n\n>lua\n    coc_nvim = true,\n<\n\n\n  [!Note] coc.nvim by default link to native lsp highlight groups so `lsp_styles`\n  options will also apply to coc\nIn the nested tables you can set the style for the diagnostics, both\n`virtual_text` (what you see on the side) and `underlines` (what points\ndirectly at the thing (e.g. an error)).\n\n>lua\n    lsp_styles = {\n        virtual_text = {\n            errors = { \"italic\" },\n            hints = { \"italic\" },\n            warnings = { \"italic\" },\n            information = { \"italic\" },\n            ok = { \"italic\" },\n        },\n        underlines = {\n            errors = { \"underline\" },\n            hints = { \"underline\" },\n            warnings = { \"underline\" },\n            information = { \"underline\" },\n            ok = { \"underline\" },\n        },\n        inlay_hints = {\n            background = true,\n        },\n    },\n<\n\ncolorful-winsep.nvim>lua\n    colorful_winsep = {\n        enabled = false,\n        color = \"red\",\n    }\n<\n\ndashboard-nvim>lua\n    dashboard = true\n<\n\ndiffview.nvim>lua\n    diffview = false\n<\n\ndropbar.nvim>lua\n    dropbar = {\n        enabled = false,\n        color_mode = false, -- enable color for kind's texts, not just kind's icons\n    },\n<\n\nfeline.nvimSpecial ~\n\nUpdate your Feline config to use the Catppuccin components:\n\n>lua\n    local ctp_feline = require('catppuccin.special.feline')\n    \n    ctp_feline.setup()\n    \n    require(\"feline\").setup({\n        components = ctp_feline.get_statusline(),\n    })\n<\n\nNotice that calling `setup()` is optional. You may pass a lua table in order to\nchange assets, settings and the colors per vim mode.\n\nHere are the defaults:\n\n>lua\n    local clrs = require(\"catppuccin.palettes\").get_palette()\n    local ctp_feline = require('catppuccin.special.feline')\n    local U = require \"catppuccin.utils.colors\"\n    \n    ctp_feline.setup({\n        assets = {\n            left_separator = \"\",\n            right_separator = \"\",\n            mode_icon = \"\",\n            dir = \"󰉖\",\n            file = \"󰈙\",\n            lsp = {\n                server = \"󰅡\",\n                error = \"\",\n                warning = \"\",\n                info = \"\",\n                hint = \"\",\n            },\n            git = {\n                branch = \"\",\n                added = \"\",\n                changed = \"\",\n                removed = \"\",\n            },\n        },\n        sett = {\n            text = U.vary_color({ latte = latte.base }, clrs.surface0),\n            bkg = U.vary_color({ latte = latte.crust }, clrs.surface0),\n            diffs = clrs.mauve,\n            extras = clrs.overlay1,\n            curr_file = clrs.maroon,\n            curr_dir = clrs.flamingo,\n            show_modified = false, -- show if the file has been modified\n            show_lazy_updates = false -- show the count of updatable plugins from lazy.nvim\n                                      -- need to set checker.enabled = true in lazy.nvim first\n                                      -- the icon is set in ui.icons.plugin in lazy.nvim\n        },\n        mode_colors = {\n            [\"n\"] = { \"NORMAL\", clrs.lavender },\n            [\"no\"] = { \"N-PENDING\", clrs.lavender },\n            [\"i\"] = { \"INSERT\", clrs.green },\n            [\"ic\"] = { \"INSERT\", clrs.green },\n            [\"t\"] = { \"TERMINAL\", clrs.green },\n            [\"v\"] = { \"VISUAL\", clrs.flamingo },\n            [\"V\"] = { \"V-LINE\", clrs.flamingo },\n            [\"\u0016\"] = { \"V-BLOCK\", clrs.flamingo },\n            [\"R\"] = { \"REPLACE\", clrs.maroon },\n            [\"Rv\"] = { \"V-REPLACE\", clrs.maroon },\n            [\"s\"] = { \"SELECT\", clrs.maroon },\n            [\"S\"] = { \"S-LINE\", clrs.maroon },\n            [\"\u0013\"] = { \"S-BLOCK\", clrs.maroon },\n            [\"c\"] = { \"COMMAND\", clrs.peach },\n            [\"cv\"] = { \"COMMAND\", clrs.peach },\n            [\"ce\"] = { \"COMMAND\", clrs.peach },\n            [\"r\"] = { \"PROMPT\", clrs.teal },\n            [\"rm\"] = { \"MORE\", clrs.teal },\n            [\"r?\"] = { \"CONFIRM\", clrs.mauve },\n            [\"!\"] = { \"SHELL\", clrs.green },\n        },\n        view = {\n            lsp = {\n                progress = true, -- if true the status bar will display an lsp progress indicator\n                name = false, -- if true the status bar will display the lsp servers name, otherwise it will display the text \"Lsp\"\n                exclude_lsp_names = {}, -- lsp server names that should not be displayed when name is set to true\n                separator = \"|\", -- the separator used when there are multiple lsp servers\n            },\n        }\n    })\n<\n\n\n  [!Warning] Currently feline doesn’t officially support custom themes\n  <https://github.com/feline-nvim/feline.nvim/issues/302>. In order for\n  `:colorscheme catppuccin-<flavour>` to work you could add this autocmd as a\n  workaround:\n>lua\n    vim.api.nvim_create_autocmd(\"ColorScheme\", {\n        pattern = \"*\",\n        callback = function()\n            package.loaded[\"feline\"] = nil\n            package.loaded[\"catppuccin.special.feline\"] = nil\n            require(\"feline\").setup {\n                components = require(\"catppuccin.special.feline\").get_statusline(),\n            }\n        end,\n    })\n<\n\nfern.vim>lua\n    fern = false\n<\n\nfidget.nvim>lua\n    fidget = false\n<\n\nSpecial ~\n\nSet `notification.window.winblend` to `0`:\n\n>lua\n    require(\"fidget\").setup {\n        notification = {\n            window = {\n                winblend = 0,\n            },\n        }\n        -- ... the rest of your fidget config\n    }\n<\n\nflash.nvim>lua\n    flash = true\n<\n\nfzf-lua>lua\n    fzf = true\n<\n\ngitgraph.nvim>lua\n    gitgraph = false\n<\n\ngitsigns.nvim>lua\n    gitsigns = true\n<\n\nSpecial ~\n\n>lua\n    gitsigns = {\n      enabled = true,\n      -- align with the transparent_background option by default\n      transparent = false,\n    }\n<\n\ngrug-far.nvim>lua\n    grug_far = false\n<\n\nharpoon>lua\n    harpoon = false\n<\n\nheadlines.nvim>lua\n    headlines = false\n<\n\nhop.nvim>lua\n    hop = false\n<\n\nindent-blankline.nvim>lua\n    indent_blankline = {\n        enabled = true,\n        scope_color = \"\", -- catppuccin color (eg. `lavender`) Default: text\n        colored_indent_levels = false,\n    },\n<\n\nSpecial ~\n\n`colored_indent_levels` enables char highlights per indent level. Follow the\ninstructions here\n<https://github.com/lukas-reineke/indent-blankline.nvim#multiple-indent-colors>\nto set the latter up.\n\nleap.nvim>lua\n    leap = false\n<\n\nlightline.vimSpecial ~\n\n>vim\n    let g:lightline = {'colorscheme': 'catppuccin'}\n<\n\nlightspeed.nvim>lua\n    lightspeed = false\n<\n\nlir.nvim>lua\n    lir = {\n        enabled = false,\n        git_status = false\n    }\n<\n\nlspsaga.nvim>lua\n    lsp_saga = false\n<\n\nSpecial ~\n\nFor custom Lsp Kind Icon and Color\n\n>lua\n    require(\"lspsaga\").setup {\n        ui = {\n            kind = require(\"catppuccin.groups.integrations.lsp_saga\").custom_kind(),\n        },\n    }\n<\n\nlualine.nvim>lua\n    -- transparent_bg = opts.transparent_background and \"NONE\" or C.mantle\n    lualine = {\n        normal = {\n            a = { bg = C.blue, fg = C.mantle, gui = \"bold\" },\n            b = { bg = C.surface0, fg = C.blue },\n            c = { bg = transparent_bg, fg = C.text },\n        },\n    \n        insert = {\n            a = { bg = C.green, fg = C.base, gui = \"bold\" },\n            b = { bg = C.surface0, fg = C.green },\n        },\n    \n        terminal = {\n            a = { bg = C.green, fg = C.base, gui = \"bold\" },\n            b = { bg = C.surface0, fg = C.green },\n        },\n    \n        command = {\n            a = { bg = C.peach, fg = C.base, gui = \"bold\" },\n            b = { bg = C.surface0, fg = C.peach },\n        },\n        visual = {\n            a = { bg = C.mauve, fg = C.base, gui = \"bold\" },\n            b = { bg = C.surface0, fg = C.mauve },\n        },\n        replace = {\n            a = { bg = C.red, fg = C.base, gui = \"bold\" },\n            b = { bg = C.surface0, fg = C.red },\n        },\n        inactive = {\n            a = { bg = transparent_bg, fg = C.blue },\n            b = { bg = transparent_bg, fg = C.surface1, gui = \"bold\" },\n            c = { bg = transparent_bg, fg = C.overlay0 },\n        },\n    },\n<\n\nSpecial ~\n\nTo implement color overrides in the `integrations.lualine` spec:\n\n>lua\n    -- In your catppuccin config (integrations): \n    lualine = {\n        -- lualine color overrides in the following hierarchy: Catppuccin Flavor -> Mode -> Lualine Section\n        -- The Catppuccin flavor entry can be any Catpuccin flavor or \"all\" to apply to all flavors\n        -- The flavor entry can be either a table or a function which consumes the current Catppuccin palette, just like custom_highlights and color_overrides\n        all = function(colors)\n            ---@type CtpIntegrationLualineOverride\n            return {\n                -- Specifying a normal-mode status line override for section a's background and b's foreground to use lavender like the main Catppuccin theme\n                normal = { \n                    a = { bg = colors.lavender, gui = \"italic\" },\n                    b = { fg = colors.lavender },\n                }\n            }\n        end,\n        -- A macchiato-specific override, which takes priority over 'all'. Also using the direct table syntax instead of function in case you do not rely on dynamic palette colors\n        macchiato = { \n            normal = { \n                a = { bg = \"#abcdef\" },\n            }\n        },\n    },\n    --  And in your lualine config:\n    require('lualine').setup {\n        options = {\n            -- lualine will integrate with catppuccin by name or automatically via `vim.g.colors_name` by setting this to \"auto\" \n            theme = \"catppuccin-nvim\"\n            -- ... the rest of your lualine config\n        }\n    }\n<\n\nmarkview.nvim>lua\n    markview = false\n<\n\nmason.nvim>lua\n    mason = false\n<\n\nmini.nvim>lua\n    mini = {\n        enabled = true,\n        indentscope_color = \"\", -- catppuccin color (eg. `lavender`) Default: text\n    },\n<\n\nneo-tree.nvim>lua\n    neotree = true\n<\n\nneogit>lua\n    neogit = true\n<\n\nneotest>lua\n    neotest = false\n<\n\nnoice.nvim>lua\n    noice = false\n<\n\nnotifier.nvim>lua\n    notifier = false\n<\n\nnvim-cmp>lua\n    cmp = true\n<\n\ncopilot.vim>lua\n    copilot_vim = false,\n<\n\nnvim-dap>lua\n    dap = true\n<\n\nSpecial ~\n\n>lua\n    local sign = vim.fn.sign_define\n    \n    sign(\"DapBreakpoint\", { text = \"●\", texthl = \"DapBreakpoint\", linehl = \"\", numhl = \"\"})\n    sign(\"DapBreakpointCondition\", { text = \"●\", texthl = \"DapBreakpointCondition\", linehl = \"\", numhl = \"\"})\n    sign(\"DapLogPoint\", { text = \"◆\", texthl = \"DapLogPoint\", linehl = \"\", numhl = \"\"})\n<\n\nnvim-dap-ui>lua\n    dap_ui = true\n<\n\nnavic>lua\n    navic = {\n        enabled = false,\n        custom_bg = \"NONE\", -- \"lualine\" will set background to mantle\n    },\n<\n\nSpecial ~\n\n>lua\n    -- You NEED to enable highlight in nvim-navic setting or it won't work\n    require(\"nvim-navic\").setup {\n        highlight = true\n    }\n<\n\nnvim-notify>lua\n    notify = false\n<\n\nnvim-surround>lua\n    nvim_surround = false\n<\n\nnvim-tree.lua>lua\n    nvimtree = true\n<\n\nnvim-treesitter-context>lua\n    treesitter_context = true\n<\n\nnvim-ts-rainbow2>lua\n    ts_rainbow2 = false\n<\n\nnvim-ts-rainbow>lua\n    ts_rainbow = false\n<\n\nnvim-ufo>lua\n    ufo = true\n<\n\nnvim-window-picker>lua\n    window_picker = false\n<\n\nocto.nvim>lua\n    octo = false\n<\n\noverseer.nvim>lua\n    overseer = false\n<\n\npounce.nvim>lua\n    pounce = false\n<\n\nrainbow-delimiters.nvim>lua\n    rainbow_delimiters = true\n<\n\nreactive.nvimSpecial ~\n\nThere’re 2 available presets (`cursor` and `cursorline`) for every flavour.\n\nHere is how you can use them.\n\n>lua\n    require('reactive').setup {\n      load = { 'catppuccin-mocha-cursor', 'catppuccin-mocha-cursorline' }\n    }\n<\n\nTo use another flavour just replace `mocha` with the one you want to use.\n\nrender-markdown.nvim>lua\n    render_markdown = true\n<\n\nsnacks.nvim>lua\n    snacks = {\n        enabled = false,\n        indent_scope_color = \"\", -- catppuccin color (eg. `lavender`) Default: overlay2\n    }\n<\n\nsymbols-outline.nvim\n  [!NOTE] This plugin has been archived by the author, consider using\n  outline.nvim <https://github.com/hedyhli/outline.nvim>\n>lua\n    symbols_outline = false\n<\n\ntelekasten.nvim>lua\n    telekasten = false\n<\n\ntelescope.nvim>lua\n    telescope = {\n        enabled = true,\n    }\n<\n\ntrouble.nvim>lua\n    lsp_trouble = false\n<\n\nvim-airlineSpecial ~\n\n>vim\n    let g:airline_theme = 'catppuccin'\n<\n\nvim-clapSpecial ~\n\nUse this to set it up:\n\n>vim\n    let g:clap_theme = 'catppuccin'\n<\n\nvim-dadbod-ui>lua\n    dadbod_ui = false\n<\n\nvim-gitgutter>lua\n    gitgutter = false\n<\n\nvim-illuminate>lua\n    illuminate = {\n        enabled = true,\n        lsp = false\n    }\n<\n\nvim-sandwich>lua\n    sandwich = false\n<\n\nvim-signify>lua\n    signify = false\n<\n\nvim-sneak>lua\n    vim_sneak = false\n<\n\nvimwiki>lua\n    vimwiki = false\n<\n\nwhich-key.nvim>lua\n    which_key = false\n<\n\n\nCOMPILE                                                   *catppuccin-compile*\n\nCatppuccin is a highly customizable and configurable colorscheme. This does\nhowever come at the cost of complexity and execution time. Catppuccin can pre\ncompute the results of your configuration and store the results in a compiled\nLua file. We use these pre-cached values to set it’s highlights.\n\nBy default, Catppuccin writes the compiled results into the system’s cache\ndirectory. See below if you’d like to change the cache directory:\n\n>lua\n    require(\"catppuccin\").setup({ -- Note: On windows we replace `/` with `\\` by default\n        compile_path = vim.fn.stdpath \"cache\" .. \"/catppuccin\"\n    })\n<\n\n\n🙋 FAQ                                                 *catppuccin-🙋-faq*\n\n\nWHY DO MY TREESITTER HIGHLIGHTS LOOK INCORRECT? ~\n\nPlease disable `additional_vim_regex_highlighting`:\n\n>lua\n    require(\"nvim-treesitter.configs\").setup {\n        highlight = {\n            enable = true,\n            additional_vim_regex_highlighting = false\n        },\n    }\n<\n\n\nWHY AREN’T MY COLORS THE SAME AS THE PREVIEWS? ~\n\nCatppuccin requires that your terminal supports true color, meaning that your\nterminal can display the full range of 16 million colors.\n\n- Supported: iterm2 (macOS), kitty, wezterm, alacritty, see full list… <https://github.com/termstandard/colors#truecolor-support-in-output-devices>\n- Unsupported: Terminal.app (macOS), Terminus, Terminology, see full list… <https://github.com/termstandard/colors#not-supporting-truecolor>\n\nIf you use tmux, make sure to enable true color support\n<https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6> and\nitalic font support\n<https://gist.github.com/gyribeiro/4192af1aced7a1b555df06bd3781a722>. This will\nprevent issues raised in #415 <https://github.com/catppuccin/nvim/issues/415>\nand #428 <https://github.com/catppuccin/nvim/issues/428>.\n\n\n💝 THANKS TO                                     *catppuccin-💝-thanks-to*\n\n**Current Maintainer(s)**\n\n- vollowx <https://github.com/vollowx>\n- robin <https://github.com/comfysage>\n\n**Previous Maintainer(s)**\n\n- Pocco81 <https://github.com/Pocco81>\n- nullchilly <https://github.com/nullchilly>\n- mrtnvgr <https://github.com/mrtnvgr>\n\nGenerated by panvimdoc <https://github.com/kdheepak/panvimdoc>\n\nvim:tw=78:ts=8:noet:ft=help:norl:\n"
  },
  {
    "path": "justfile",
    "content": "_default:\n  @just list\n\nbuild:\n  whiskers nvim.tera\n"
  },
  {
    "path": "lua/barbecue/theme/catppuccin-frappe.lua",
    "content": "return require \"catppuccin.utils.barbecue\" \"frappe\"\n"
  },
  {
    "path": "lua/barbecue/theme/catppuccin-latte.lua",
    "content": "return require \"catppuccin.utils.barbecue\" \"latte\"\n"
  },
  {
    "path": "lua/barbecue/theme/catppuccin-macchiato.lua",
    "content": "return require \"catppuccin.utils.barbecue\" \"macchiato\"\n"
  },
  {
    "path": "lua/barbecue/theme/catppuccin-mocha.lua",
    "content": "return require \"catppuccin.utils.barbecue\" \"mocha\"\n"
  },
  {
    "path": "lua/barbecue/theme/catppuccin-nvim.lua",
    "content": "return require \"catppuccin.utils.barbecue\"()\n"
  },
  {
    "path": "lua/catppuccin/groups/editor.lua",
    "content": "local M = {}\n\nfunction M.get()\n\treturn {\n\t\tColorColumn = { bg = C.surface0 }, -- used for the columns set with 'colorcolumn'\n\t\tConceal = { fg = C.overlay1 }, -- placeholder characters substituted for concealed text (see 'conceallevel')\n\t\tCursor = { fg = C.base, bg = C.rosewater }, -- character under the cursor\n\t\tlCursor = { fg = C.base, bg = C.rosewater }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')\n\t\tCursorIM = { fg = C.base, bg = C.rosewater }, -- like Cursor, but used when in IME mode |CursorIM|\n\t\tCursorColumn = { bg = C.mantle }, -- Screen-column at the cursor, when 'cursorcolumn' is set.\n\t\tCursorLine = {\n\t\t\tbg = U.vary_color({ latte = U.lighten(C.mantle, 0.70, C.base) }, U.darken(C.surface0, 0.64, C.base)),\n\t\t}, -- Screen-line at the cursor, when 'cursorline' is set.  Low-priority if forecrust (ctermfg OR guifg) is not set.\n\t\tDirectory = { fg = C.blue }, -- directory names (and other special names in listings)\n\t\tEndOfBuffer = { fg = O.show_end_of_buffer and C.surface1 or C.base }, -- filler lines (~) after the end of the buffer.  By default, this is highlighted like |hl-NonText|.\n\t\tErrorMsg = { fg = C.red, style = { \"bold\", \"italic\" } }, -- error messages on the command line\n\t\tVertSplit = { fg = O.transparent_background and C.surface1 or C.crust }, -- the column separating vertically split windows\n\t\tFolded = { fg = C.blue, bg = O.transparent_background and C.none or C.surface1 }, -- line used for closed folds\n\t\tFoldColumn = { fg = C.overlay0 }, -- 'foldcolumn'\n\t\tSignColumn = { fg = C.surface1 }, -- column where |signs| are displayed\n\t\tSignColumnSB = { bg = C.crust, fg = C.surface1 }, -- column where |signs| are displayed\n\t\tSubstitute = { bg = C.surface1, fg = U.vary_color({ latte = C.red }, C.pink) }, -- |:substitute| replacement text highlighting\n\t\tLineNr = { fg = C.surface1 }, -- Line number for \":number\" and \":#\" commands, and when 'number' or 'relativenumber' option is set.\n\t\tCursorLineNr = { fg = C.lavender }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. highlights the number in numberline.\n\t\tMatchParen = { fg = C.peach, bg = U.darken(C.surface1, 0.70, C.base), style = { \"bold\" } }, -- The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt|\n\t\tModeMsg = { fg = C.text, style = { \"bold\" } }, -- 'showmode' message (e.g., \"-- INSERT -- \")\n\t\t-- MsgArea = { fg = C.text }, -- Area for messages and cmdline, don't set this highlight because of https://github.com/neovim/neovim/issues/17832\n\t\tMsgSeparator = { link = \"WinSeparator\" }, -- Separator for scrolled messages, `msgsep` flag of 'display'\n\t\tMoreMsg = { fg = C.blue }, -- |more-prompt|\n\t\tNonText = { fg = C.overlay0 }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., \">\" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|.\n\t\tNormal = { fg = C.text, bg = O.transparent_background and C.none or C.base }, -- normal text\n\t\tNormalNC = {\n\t\t\tfg = C.text,\n\t\t\tbg = (O.transparent_background and O.dim_inactive.enabled and C.dim)\n\t\t\t\tor (O.dim_inactive.enabled and C.dim)\n\t\t\t\tor (O.transparent_background and C.none)\n\t\t\t\tor C.base,\n\t\t}, -- normal text in non-current windows\n\t\tNormalSB = { fg = C.text, bg = C.crust }, -- normal text in non-current windows\n\t\tNormalFloat = { fg = C.text, bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle }, -- Normal text in floating windows.\n\t\tFloatBorder = O.float.solid\n\t\t\t\tand ((O.float.transparent and vim.o.winblend == 0) and { fg = C.surface2, bg = C.none } or {\n\t\t\t\t\tfg = C.mantle,\n\t\t\t\t\tbg = C.mantle,\n\t\t\t\t})\n\t\t\tor { fg = C.blue, bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle },\n\t\tFloatTitle = O.float.solid and {\n\t\t\tfg = C.crust,\n\t\t\tbg = C.lavender,\n\t\t} or { fg = C.subtext0, bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle }, -- Title of floating windows\n\t\tFloatShadow = { bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.overlay0, blend = 80 },\n\t\tFloatShadowThrough = {\n\t\t\tbg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.overlay0,\n\t\t\tblend = 100,\n\t\t},\n\t\tPmenu = {\n\t\t\tbg = (O.transparent_background and vim.o.pumblend == 0) and C.none or C.mantle,\n\t\t\tfg = C.overlay2,\n\t\t}, -- Popup menu: normal item.\n\t\tPmenuSel = { bg = C.surface0, style = { \"bold\" } }, -- Popup menu: selected item.\n\t\tPmenuMatch = { fg = C.text, style = { \"bold\" } }, -- Popup menu: matching text.\n\t\tPmenuMatchSel = { style = { \"bold\" } }, -- Popup menu: matching text in selected item; is combined with |hl-PmenuMatch| and |hl-PmenuSel|.\n\t\tPmenuSbar = { bg = C.surface0 }, -- Popup menu: scrollbar.\n\t\tPmenuThumb = { bg = C.overlay0 }, -- Popup menu: Thumb of the scrollbar.\n\t\tPmenuExtra = { fg = C.overlay0 }, -- Popup menu: normal item extra text.\n\t\tPmenuExtraSel = {\n\t\t\tbg = C.surface0,\n\t\t\tfg = C.overlay0,\n\t\t\tstyle = { \"bold\" },\n\t\t}, -- Popup menu: selected item extra text.\n\t\tComplMatchIns = { link = \"PreInsert\" }, -- Matched text of the currently inserted completion.\n\t\tPreInsert = { fg = C.overlay2 }, -- Text inserted when \"preinsert\" is in 'completeopt'.\n\t\tComplHint = { fg = C.subtext0 }, -- Virtual text of the currently selected completion.\n\t\tComplHintMore = { link = \"Question\" }, -- The additional information of the virtual text.\n\t\tQuestion = { fg = C.blue }, -- |hit-enter| prompt and yes/no questions\n\t\tQuickFixLine = { bg = U.darken(C.surface1, 0.70, C.base), style = { \"bold\" } }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there.\n\t\tSearch = { bg = U.darken(C.sky, 0.30, C.base), fg = C.text }, -- Last search pattern highlighting (see 'hlsearch').  Also used for similar items that need to stand out.\n\t\tIncSearch = { bg = U.darken(C.sky, 0.90, C.base), fg = C.mantle }, -- 'incsearch' highlighting; also used for the text replaced with \":s///c\"\n\t\tCurSearch = { bg = C.red, fg = C.mantle }, -- 'cursearch' highlighting: highlights the current search you're on differently\n\t\tSpecialKey = { link = \"NonText\" }, -- Unprintable characters: text displayed differently from what it really is.  But not 'listchars' textspace. |hl-Whitespace|\n\t\tSpellBad = { sp = C.red, style = { \"undercurl\" } }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise.\n\t\tSpellCap = { sp = C.yellow, style = { \"undercurl\" } }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise.\n\t\tSpellLocal = { sp = C.blue, style = { \"undercurl\" } }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise.\n\t\tSpellRare = { sp = C.green, style = { \"undercurl\" } }, -- Word that is recognized by the spellchecker as one that is hardly ever used.  |spell| Combined with the highlighting used otherwise.\n\t\tStatusLine = { fg = C.text, bg = O.transparent_background and C.none or C.mantle }, -- status line of current window\n\t\tStatusLineNC = { fg = C.surface1, bg = O.transparent_background and C.none or C.mantle }, -- status lines of not-current windows Note: if this is equal to \"StatusLine\" Vim will use \"^^^\" in the status line of the current window.\n\t\tTabLine = { bg = C.crust, fg = C.overlay0 }, -- tab pages line, not active tab page label\n\t\tTabLineFill = { bg = O.transparent_background and C.none or C.mantle }, -- tab pages line, where there are no labels\n\t\tTabLineSel = { link = \"Normal\" }, -- tab pages line, active tab page label\n\t\tTermCursor = { fg = C.base, bg = C.rosewater }, -- cursor in a focused terminal\n\t\tTermCursorNC = { fg = C.base, bg = C.overlay2 }, -- cursor in unfocused terminals\n\t\tTitle = { fg = C.blue, style = { \"bold\" } }, -- titles for output from \":set all\", \":autocmd\" etc.\n\t\tVisual = { bg = C.surface1, style = { \"bold\" } }, -- Visual mode selection\n\t\tVisualNOS = { bg = C.surface1, style = { \"bold\" } }, -- Visual mode selection when vim is \"Not Owning the Selection\".\n\t\tWarningMsg = { fg = C.yellow }, -- warning messages\n\t\tWhitespace = { fg = C.surface1 }, -- \"nbsp\", \"space\", \"tab\" and \"trail\" in 'listchars'\n\t\tWildMenu = { bg = C.overlay0 }, -- current match in 'wildmenu' completion\n\t\tWinBar = { fg = C.rosewater },\n\t\tWinBarNC = { link = \"WinBar\" },\n\t\tWinSeparator = { fg = O.transparent_background and C.surface1 or C.crust },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/aerial.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/stevearc/aerial.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tAerialLine = { fg = C.yellow, bg = C.none },\n\t\tAerialGuide = { fg = C.overlay2 },\n\t\tAerialBooleanIcon = { link = \"@boolean\" },\n\t\tAerialClassIcon = { link = \"@type\" },\n\t\tAerialConstantIcon = { link = \"@constant\" },\n\t\tAerialConstructorIcon = { link = \"@constructor\" },\n\t\tAerialFieldIcon = { link = \"@field\" },\n\t\tAerialFunctionIcon = { link = \"@function\" },\n\t\tAerialMethodIcon = { link = \"@method\" },\n\t\tAerialNamespaceIcon = { link = \"@namespace\" },\n\t\tAerialNumberIcon = { link = \"@number\" },\n\t\tAerialOperatorIcon = { link = \"@operator\" },\n\t\tAerialTypeParameterIcon = { link = \"@type\" },\n\t\tAerialPropertyIcon = { link = \"@property\" },\n\t\tAerialStringIcon = { link = \"@string\" },\n\t\tAerialVariableIcon = { link = \"@constant\" },\n\t\tAerialEnumMemberIcon = { link = \"@field\" },\n\t\tAerialEnumIcon = { link = \"@type\" },\n\t\tAerialFileIcon = { link = \"@text.uri\" },\n\t\tAerialModuleIcon = { link = \"@namespace\" },\n\t\tAerialPackageIcon = { link = \"@namespace\" },\n\t\tAerialInterfaceIcon = { link = \"@type\" },\n\t\tAerialStructIcon = { link = \"@type\" },\n\t\tAerialEventIcon = { link = \"@type\" },\n\t\tAerialArrayIcon = { link = \"@constant\" },\n\t\tAerialObjectIcon = { link = \"@type\" },\n\t\tAerialKeyIcon = { link = \"@type\" },\n\t\tAerialNullIcon = { link = \"@type\" },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/alpha.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/goolord/alpha-nvim\"\n\nfunction M.get()\n\treturn {\n\t\tAlphaShortcut = { fg = C.green },\n\t\tAlphaHeader = { fg = C.blue },\n\t\tAlphaHeaderLabel = { fg = C.peach },\n\t\tAlphaButtons = { fg = C.lavender },\n\t\tAlphaFooter = { fg = C.yellow, style = { \"italic\" } },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/artio.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/comfysage/artio.nvim\"\n\nfunction M.get()\n\tlocal transparent_background = require(\"catppuccin\").options.transparent_background\n\n\treturn {\n\t\tArtioNormal = {\n\t\t\tfg = C.text,\n\t\t\tbg = transparent_background and \"NONE\" or C.mantle,\n\t\t},\n\t\tArtioSel = {\n\t\t\tfg = C.flamingo,\n\t\t\tbg = C.surface0,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tArtioMatch = { fg = C.blue },\n\t\tArtioPointer = { fg = C.flamingo },\n\t\tArtioPrompt = { fg = C.blue },\n\t\tArtioMark = { fg = C.yellow },\n\t\tArtioMarkLine = { link = \"Visual\" },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/avante.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/yetone/avante.nvim\"\n\nfunction M.get()\n\tlocal rounded = O.integrations.avante.windows_sidebar_header_rounded\n\treturn {\n\t\t-- titles\n\t\tAvanteTitle = rounded and { bg = C.lavender, fg = C.base } or { fg = C.lavender },\n\t\tAvanteReversedTitle = rounded and { bg = C.none, fg = C.lavender } or { fg = C.lavender },\n\n\t\tAvanteSubtitle = rounded and { bg = C.peach, fg = C.base } or { fg = C.peach },\n\t\tAvanteReversedSubtitle = rounded and { bg = C.none, fg = C.peach } or { fg = C.peach },\n\n\t\tAvanteThirdTitle = rounded and { bg = C.blue, fg = C.base } or { fg = C.blue },\n\t\tAvanteReversedThirdTitle = rounded and { bg = C.none, fg = C.blue } or { fg = C.blue },\n\n\t\t-- hints\n\t\tAvanteInlineHint = { fg = C.overlay0 },\n\t\tAvantePopupHint = { fg = C.overlay0 },\n\t\tAvanteAnnotation = { fg = C.overlay0 },\n\t\tAvanteSuggestion = { fg = C.overlay0 },\n\n\t\t-- conflicts\n\t\tAvanteConflictCurrent = {\n\t\t\tbg = O.transparent_background and C.none or C.mantle,\n\t\t\tfg = C.green,\n\t\t},\n\t\tAvanteConflictCurrentLabel = {\n\t\t\tbg = O.transparent_background and C.none or C.mantle,\n\t\t\tfg = C.green,\n\t\t},\n\n\t\tAvanteConflictIncoming = {\n\t\t\tbg = O.transparent_background and C.none or C.mantle,\n\t\t\tfg = C.blue,\n\t\t},\n\t\tAvanteConflictIncomingLabel = {\n\t\t\tbg = O.transparent_background and C.none or C.mantle,\n\t\t\tfg = C.blue,\n\t\t},\n\n\t\tAvanteConflictAncestor = {\n\t\t\tbg = O.transparent_background and C.none or C.mantle,\n\t\t\tfg = C.teal,\n\t\t},\n\t\tAvanteConflictAncestorLabel = {\n\t\t\tbg = O.transparent_background and C.none or C.mantle,\n\t\t\tfg = C.teal,\n\t\t},\n\n\t\tAvanteToBeDeleted = {\n\t\t\tbg = O.transparent_background and C.none or C.mantle,\n\t\t\tfg = C.red,\n\t\t},\n\n\t\tAvanteSidebarWinSeparator = {\n\t\t\tlink = \"WinSeparator\",\n\t\t},\n\n\t\tAvantePromptInput = {\n\t\t\tlink = \"FloatNormal\",\n\t\t},\n\n\t\tAvantePromptInputBorder = {\n\t\t\tlink = \"FloatBorder\",\n\t\t},\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/barbar.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/romgrk/barbar.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tBufferCurrent = { bg = C.surface1, fg = C.text },\n\t\tBufferCurrentIndex = { bg = C.surface1, fg = C.blue },\n\t\tBufferCurrentMod = { bg = C.surface1, fg = C.yellow },\n\t\tBufferCurrentSign = { bg = C.surface1, fg = C.blue },\n\t\tBufferCurrentTarget = { bg = C.surface1, fg = C.red },\n\t\tBufferVisible = { bg = C.mantle, fg = C.text },\n\t\tBufferVisibleIndex = { bg = C.mantle, fg = C.blue },\n\t\tBufferVisibleMod = { bg = C.mantle, fg = C.yellow },\n\t\tBufferVisibleSign = { bg = C.mantle, fg = C.blue },\n\t\tBufferVisibleTarget = { bg = C.mantle, fg = C.red },\n\t\tBufferInactive = { bg = C.mantle, fg = C.overlay0 },\n\t\tBufferInactiveIndex = { bg = C.mantle, fg = C.overlay0 },\n\t\tBufferInactiveMod = { bg = C.mantle, fg = C.yellow },\n\t\tBufferInactiveSign = { bg = C.mantle, fg = C.blue },\n\t\tBufferInactiveTarget = { bg = C.mantle, fg = C.red },\n\t\tBufferTabpages = { bg = C.mantle, fg = C.none },\n\t\tBufferTabpage = { bg = C.mantle, fg = C.blue },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/beacon.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/DanilaMihailov/beacon.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tBeacon = { bg = C.blue },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/blink_cmp.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/saghen/blink.cmp\"\n\nfunction M.get()\n\tlocal style = O.integrations.blink_cmp.style\n\n\tlocal highlights = {\n\t\tBlinkCmpLabel = { fg = C.overlay2 },\n\t\tBlinkCmpLabelDeprecated = { fg = C.overlay0, style = { \"strikethrough\" } },\n\t\tBlinkCmpKind = { fg = C.blue },\n\t\tBlinkCmpMenu = { link = \"Pmenu\" },\n\t\tBlinkCmpDoc = { link = \"NormalFloat\" },\n\t\tBlinkCmpLabelMatch = { link = \"PmenuMatch\" },\n\t\tBlinkCmpMenuSelection = { bg = C.surface1, style = { \"bold\" } },\n\t\tBlinkCmpScrollBarGutter = { bg = C.surface1 },\n\t\tBlinkCmpScrollBarThumb = { bg = C.overlay0 },\n\t\tBlinkCmpLabelDescription = { link = \"PmenuExtra\" },\n\t\tBlinkCmpLabelDetail = { link = \"PmenuExtra\" },\n\t\tBlinkCmpSignatureHelpBorder = { link = \"FloatBorder\" },\n\n\t\tBlinkCmpKindText = { fg = C.green },\n\t\tBlinkCmpKindMethod = { fg = C.blue },\n\t\tBlinkCmpKindFunction = { fg = C.blue },\n\t\tBlinkCmpKindConstructor = { fg = C.blue },\n\t\tBlinkCmpKindField = { fg = C.green },\n\t\tBlinkCmpKindVariable = { fg = C.flamingo },\n\t\tBlinkCmpKindClass = { fg = C.yellow },\n\t\tBlinkCmpKindInterface = { fg = C.yellow },\n\t\tBlinkCmpKindModule = { fg = C.blue },\n\t\tBlinkCmpKindProperty = { fg = C.blue },\n\t\tBlinkCmpKindUnit = { fg = C.green },\n\t\tBlinkCmpKindValue = { fg = C.peach },\n\t\tBlinkCmpKindEnum = { fg = C.yellow },\n\t\tBlinkCmpKindKeyword = { fg = C.mauve },\n\t\tBlinkCmpKindSnippet = { fg = C.flamingo },\n\t\tBlinkCmpKindColor = { fg = C.red },\n\t\tBlinkCmpKindFile = { fg = C.blue },\n\t\tBlinkCmpKindReference = { fg = C.red },\n\t\tBlinkCmpKindFolder = { fg = C.blue },\n\t\tBlinkCmpKindEnumMember = { fg = C.teal },\n\t\tBlinkCmpKindConstant = { fg = C.peach },\n\t\tBlinkCmpKindStruct = { fg = C.blue },\n\t\tBlinkCmpKindEvent = { fg = C.blue },\n\t\tBlinkCmpKindOperator = { fg = C.sky },\n\t\tBlinkCmpKindTypeParameter = { fg = C.maroon },\n\t\tBlinkCmpKindCopilot = { fg = C.teal },\n\t}\n\n\tif style == \"bordered\" then\n\t\t-- uses FloatBorder.fg and Pmenu.bg\n\t\thighlights[\"BlinkCmpMenuBorder\"] = {\n\t\t\tfg = O.float.solid and ((O.float.transparent and vim.o.winblend == 0) and C.surface2 or C.mantle) or C.blue,\n\t\t\tbg = (O.transparent_background and vim.o.pumblend == 0) and C.none or C.mantle,\n\t\t}\n\t\thighlights[\"BlinkCmpDocBorder\"] = { link = \"FloatBorder\" }\n\tend\n\n\treturn highlights\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/blink_indent.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/saghen/blink.indent\"\n\nfunction M.get()\n\treturn {\n\t\tBlinkIndent = { fg = C.surface0 },\n\t\tBlinkIndentScope = { fg = C.overlay2 },\n\n\t\tBlinkIndentRed = { fg = C.red },\n\t\tBlinkIndentOrange = { fg = C.peach },\n\t\tBlinkIndentYellow = { fg = C.yellow },\n\t\tBlinkIndentGreen = { fg = C.green },\n\t\tBlinkIndentCyan = { fg = C.sky },\n\t\tBlinkIndentBlue = { fg = C.blue },\n\t\tBlinkIndentViolet = { fg = C.mauve },\n\n\t\tBlinkIndentRedUnderline = { sp = C.red, style = { \"underline\" } },\n\t\tBlinkIndentOrangeUnderline = { sp = C.peach, style = { \"underline\" } },\n\t\tBlinkIndentYellowUnderline = { sp = C.yellow, style = { \"underline\" } },\n\t\tBlinkIndentGreenUnderline = { sp = C.green, style = { \"underline\" } },\n\t\tBlinkIndentCyanUnderline = { sp = C.sky, style = { \"underline\" } },\n\t\tBlinkIndentBlueUnderline = { sp = C.blue, style = { \"underline\" } },\n\t\tBlinkIndentVioletUnderline = { sp = C.mauve, style = { \"underline\" } },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/blink_pairs.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/saghen/blink.pairs\"\n\nfunction M.get()\n\treturn {\n\t\tBlinkPairsRed = { fg = C.red },\n\t\tBlinkPairsYellow = { fg = C.yellow },\n\t\tBlinkPairsBlue = { fg = C.blue },\n\t\tBlinkPairsOrange = { fg = C.peach },\n\t\tBlinkPairsGreen = { fg = C.green },\n\t\tBlinkPairsPurple = { fg = C.mauve },\n\t\tBlinkPairsCyan = { fg = C.teal },\n\t\tBlinkPairsUnmatched = { fg = C.red },\n\t\tBlinkPairsMatchParen = { link = \"MatchParen\" },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/buffon.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/francescarpi/buffon.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tBuffonUnloadedBuffer = { fg = C.surface1 },\n\t\tBuffonShortcut = { fg = C.peach },\n\t\tBuffonLineActive = { fg = C.sapphire },\n\t\tBuffonUnsavedIndicator = { fg = C.red },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/cmp.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/hrsh7th/nvim-cmp\"\n\nfunction M.get()\n\treturn {\n\t\tCmpItemAbbr = { fg = C.overlay2 },\n\t\tCmpItemAbbrDeprecated = { fg = C.overlay0, style = { \"strikethrough\" } },\n\t\tCmpItemKind = { fg = C.blue },\n\t\tCmpItemMenu = { fg = C.text },\n\t\tCmpItemAbbrMatch = { fg = C.text, style = { \"bold\" } },\n\t\tCmpItemAbbrMatchFuzzy = { fg = C.text, style = { \"bold\" } },\n\n\t\t-- kind support\n\t\tCmpItemKindSnippet = { fg = C.mauve },\n\t\tCmpItemKindKeyword = { fg = C.red },\n\t\tCmpItemKindText = { fg = C.teal },\n\t\tCmpItemKindMethod = { fg = C.blue },\n\t\tCmpItemKindConstructor = { fg = C.blue },\n\t\tCmpItemKindFunction = { fg = C.blue },\n\t\tCmpItemKindFolder = { fg = C.blue },\n\t\tCmpItemKindModule = { fg = C.blue },\n\t\tCmpItemKindConstant = { fg = C.peach },\n\t\tCmpItemKindField = { fg = C.green },\n\t\tCmpItemKindProperty = { fg = C.green },\n\t\tCmpItemKindEnum = { fg = C.green },\n\t\tCmpItemKindUnit = { fg = C.green },\n\t\tCmpItemKindClass = { fg = C.yellow },\n\t\tCmpItemKindVariable = { fg = C.flamingo },\n\t\tCmpItemKindFile = { fg = C.blue },\n\t\tCmpItemKindInterface = { fg = C.yellow },\n\t\tCmpItemKindColor = { fg = C.red },\n\t\tCmpItemKindReference = { fg = C.red },\n\t\tCmpItemKindEnumMember = { fg = C.red },\n\t\tCmpItemKindStruct = { fg = C.blue },\n\t\tCmpItemKindValue = { fg = C.peach },\n\t\tCmpItemKindEvent = { fg = C.blue },\n\t\tCmpItemKindOperator = { fg = C.blue },\n\t\tCmpItemKindTypeParameter = { fg = C.blue },\n\t\tCmpItemKindCopilot = { fg = C.teal },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/coc_nvim.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/neoclide/coc.nvim\"\n\nfunction M.get()\n\treturn {\n\t\t-- These groups are for the coc.nvim, see \":h coc-highlights\"\n\t\t-- Custom popup menu since coc v0.0.82\n\t\tCocMenuSel = { link = \"PmenuSel\" },\n\t\tCocPumSearch = { fg = C.sky, style = { \"bold\" } },\n\n\t\t-- Inlay hints\n\t\tCocInlayHint = {\n\t\t\t-- fg of `Comment`\n\t\t\tfg = C.overlay0,\n\t\t\tstyle = { \"italic\" },\n\t\t},\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/colorful_winsep.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/nvim-zh/colorful-winsep.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tColorfulWinSep = {\n\t\t\tfg = C[O.integrations.colorful_winsep.color],\n\t\t\tbg = O.transparent_background and C.none or C.base,\n\t\t},\n\t\tNvimSeparator = { link = \"ColorfulWinSep\" },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/copilot_vim.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/github/copilot.vim\"\n\nfunction M.get()\n\treturn {\n\t\tCopilotSuggestion = { fg = C.overlay0 },\n\t\tCopilotAnnotation = { fg = C.blue },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/dadbod_ui.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/kristijanhusak/vim-dadbod-ui\"\n\nfunction M.get()\n\treturn {\n\t\tNotificationInfo = { fg = C.blue, bg = C.mantle },\n\t\tNotificationWarning = { fg = C.yellow, bg = C.mantle },\n\t\tNotificationError = { fg = C.red, bg = C.mantle },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/dap.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/mfussenegger/nvim-dap\"\n\nfunction M.get()\n\treturn {\n\t\tDapBreakpoint = { fg = C.red },\n\t\tDapBreakpointCondition = { fg = C.yellow },\n\t\tDapBreakpointRejected = { fg = C.mauve },\n\t\tDapLogPoint = { fg = C.sky },\n\t\tDapStopped = { fg = C.maroon },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/dap_ui.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/rcarriga/nvim-dap-ui\"\n\nfunction M.get()\n\treturn {\n\t\tDapUIScope = { fg = C.sky },\n\t\tDapUIType = { fg = C.mauve },\n\t\tDapUIValue = { fg = C.sky },\n\t\tDapUIVariable = { fg = C.text },\n\t\tDapUIModifiedValue = { fg = C.peach },\n\t\tDapUIDecoration = { fg = C.sky },\n\t\tDapUIThread = { fg = C.green },\n\t\tDapUIStoppedThread = { fg = C.sky },\n\t\tDapUISource = { fg = C.lavender },\n\t\tDapUILineNumber = { fg = C.sky },\n\t\tDapUIFloatBorder = { link = \"FloatBorder\" },\n\n\t\tDapUIWatchesEmpty = { fg = C.maroon },\n\t\tDapUIWatchesValue = { fg = C.green },\n\t\tDapUIWatchesError = { fg = C.maroon },\n\n\t\tDapUIBreakpointsPath = { fg = C.sky },\n\t\tDapUIBreakpointsInfo = { fg = C.green },\n\t\tDapUIBreakpointsCurrentLine = { fg = C.green, style = { \"bold\" } },\n\t\tDapUIBreakpointsDisabledLine = { fg = C.surface2 },\n\n\t\tDapUIStepOver = { fg = C.blue },\n\t\tDapUIStepOverNC = { link = \"DapUIStepOver\" },\n\t\tDapUIStepInto = { fg = C.blue },\n\t\tDapUIStepIntoNC = { link = \"DapUIStepInto\" },\n\t\tDapUIStepBack = { fg = C.blue },\n\t\tDapUIStepBackNC = { link = \"DapUIStepBack\" },\n\t\tDapUIStepOut = { fg = C.blue },\n\t\tDapUIStepOutNC = { link = \"DapUIStepOut\" },\n\t\tDapUIStop = { fg = C.red },\n\t\tDapUIStopNC = { link = \"DapUIStop\" },\n\t\tDapUIPlayPause = { fg = C.green },\n\t\tDapUIPlayPauseNC = { link = \"DapUIPlayPause\" },\n\t\tDapUIRestart = { fg = C.green },\n\t\tDapUIRestartNC = { link = \"DapUIRestart\" },\n\t\tDapUIUnavailable = { fg = C.surface1 },\n\t\tDapUIUnavailableNC = { link = \"DapUIUnavailable\" },\n\n\t\tDapUIWinSelect = { fg = C.peach },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/dashboard.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/nvimdev/dashboard-nvim\"\n\nfunction M.get()\n\treturn {\n\t\tDashboardShortCut = { fg = C.pink },\n\t\tDashboardHeader = { fg = C.blue },\n\t\tDashboardCenter = { fg = C.green },\n\t\tDashboardFooter = { fg = C.yellow, style = { \"italic\" } },\n\t\tDashboardMruTitle = { fg = C.sky },\n\t\tDashboardProjectTitle = { fg = C.sky },\n\t\tDashboardFiles = { fg = C.lavender },\n\t\tDashboardKey = { fg = C.peach },\n\t\tDashboardDesc = { fg = C.blue },\n\t\tDashboardIcon = { fg = C.pink, bold = true },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/diffview.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/sindrets/diffview.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tDiffviewDim1 = { link = \"Comment\" },\n\t\tDiffviewPrimary = { fg = C.blue },\n\t\tDiffviewSecondary = { fg = C.green },\n\t\tDiffviewNormal = { fg = C.text, bg = O.transparent_background and C.none or C.mantle },\n\t\tDiffviewWinSeparator = {\n\t\t\tfg = O.transparent_background and C.surface1 or C.base,\n\t\t\tbg = O.transparent_background and C.none or C.base,\n\t\t},\n\t\tDiffviewFilePanelTitle = { fg = C.blue, style = { \"bold\" } },\n\t\tDiffviewFilePanelCounter = { fg = C.text },\n\t\tDiffviewFilePanelRootPath = { fg = C.lavender, style = { \"bold\" } },\n\t\tDiffviewFilePanelFileName = { fg = C.text },\n\t\tDiffviewFilePanelSelected = { fg = C.yellow },\n\t\tDiffviewFilePanelPath = { link = \"Comment\" },\n\t\tDiffviewFilePanelInsertions = { fg = C.green },\n\t\tDiffviewFilePanelDeletions = { fg = C.red },\n\t\tDiffviewFilePanelConflicts = { fg = C.yellow },\n\t\tDiffviewFolderName = { fg = C.blue, style = { \"bold\" } },\n\t\tDiffviewFolderSign = { fg = C.blue },\n\t\tDiffviewHash = { fg = C.flamingo },\n\t\tDiffviewReference = { fg = C.blue, style = { \"bold\" } },\n\t\tDiffviewReflogSelector = { fg = C.pink },\n\t\tDiffviewStatusAdded = { fg = C.green },\n\t\tDiffviewStatusUntracked = { fg = C.green },\n\t\tDiffviewStatusModified = { fg = C.yellow },\n\t\tDiffviewStatusRenamed = { fg = C.yellow },\n\t\tDiffviewStatusCopied = { fg = C.yellow },\n\t\tDiffviewStatusTypeChange = { fg = C.yellow },\n\t\tDiffviewStatusUnmerged = { fg = C.yellow },\n\t\tDiffviewStatusUnknown = { fg = C.red },\n\t\tDiffviewStatusDeleted = { fg = C.red },\n\t\tDiffviewStatusBroken = { fg = C.red },\n\t\tDiffviewStatusIgnored = { fg = C.overlay0 },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/dropbar.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/Bekaboo/dropbar.nvim\"\n\nfunction M.get()\n\tlocal color = O.integrations.dropbar.color_mode\n\treturn {\n\t\tDropBarMenuHoverEntry = { link = \"Visual\" },\n\t\tDropBarMenuHoverIcon = { reverse = true },\n\t\tDropBarMenuHoverSymbol = { bold = true },\n\t\tDropBarIconUISeparator = { fg = C.overlay1 },\n\t\tDropBarKindArray = color and { link = \"DropBarIconKindArray\" } or { fg = C.text },\n\t\tDropBarKindBoolean = color and { link = \"DropBarIconKindBoolean\" } or { fg = C.text },\n\t\tDropBarKindBreakStatement = color and { link = \"DropBarIconKindBreakStatement\" } or { fg = C.text },\n\t\tDropBarKindCall = color and { link = \"DropBarIconKindCall\" } or { fg = C.text },\n\t\tDropBarKindCaseStatement = color and { link = \"DropBarIconKindCaseStatement\" } or { fg = C.text },\n\t\tDropBarKindClass = color and { link = \"DropBarIconKindClass\" } or { fg = C.text },\n\t\tDropBarKindConstant = color and { link = \"DropBarIconKindConstant\" } or { fg = C.text },\n\t\tDropBarKindConstructor = color and { link = \"DropBarIconKindConstructor\" } or { fg = C.text },\n\t\tDropBarKindContinueStatement = color and { link = \"DropBarIconKindContinueStatement\" } or { fg = C.text },\n\t\tDropBarKindDeclaration = color and { link = \"DropBarIconKindDeclaration\" } or { fg = C.text },\n\t\tDropBarKindDelete = color and { link = \"DropBarIconKindDelete\" } or { fg = C.text },\n\t\tDropBarKindDoStatement = color and { link = \"DropBarIconKindDoStatement\" } or { fg = C.text },\n\t\tDropBarKindElseStatement = color and { link = \"DropBarIconKindElseStatement\" } or { fg = C.text },\n\t\tDropBarKindEnum = color and { link = \"DropBarIconKindEnum\" } or { fg = C.text },\n\t\tDropBarKindEnumMember = color and { link = \"DropBarIconKindEnumMember\" } or { fg = C.text },\n\t\tDropBarKindEvent = color and { link = \"DropBarIconKindEvent\" } or { fg = C.text },\n\t\tDropBarKindField = color and { link = \"DropBarIconKindField\" } or { fg = C.text },\n\t\tDropBarKindFile = color and { link = \"DropBarIconKindFile\" } or { fg = C.text },\n\t\tDropBarKindFolder = color and { link = \"DropBarIconKindFolder\" } or { fg = C.text },\n\t\tDropBarKindForStatement = color and { link = \"DropBarIconKindForStatement\" } or { fg = C.text },\n\t\tDropBarKindFunction = color and { link = \"DropBarIconKindFunction\" } or { fg = C.text },\n\t\tDropBarKindIdentifier = color and { link = \"DropBarIconKindIdentifier\" } or { fg = C.text },\n\t\tDropBarKindIfStatement = color and { link = \"DropBarIconKindIfStatement\" } or { fg = C.text },\n\t\tDropBarKindInterface = color and { link = \"DropBarIconKindInterface\" } or { fg = C.text },\n\t\tDropBarKindKeyword = color and { link = \"DropBarIconKindKeyword\" } or { fg = C.text },\n\t\tDropBarKindList = color and { link = \"DropBarIconKindList\" } or { fg = C.text },\n\t\tDropBarKindMacro = color and { link = \"DropBarIconKindMacro\" } or { fg = C.text },\n\t\tDropBarKindMarkdownH1 = color and { link = \"DropBarIconKindMarkdownH1\" } or { fg = C.text },\n\t\tDropBarKindMarkdownH2 = color and { link = \"DropBarIconKindMarkdownH2\" } or { fg = C.text },\n\t\tDropBarKindMarkdownH3 = color and { link = \"DropBarIconKindMarkdownH3\" } or { fg = C.text },\n\t\tDropBarKindMarkdownH4 = color and { link = \"DropBarIconKindMarkdownH4\" } or { fg = C.text },\n\t\tDropBarKindMarkdownH5 = color and { link = \"DropBarIconKindMarkdownH5\" } or { fg = C.text },\n\t\tDropBarKindMarkdownH6 = color and { link = \"DropBarIconKindMarkdownH6\" } or { fg = C.text },\n\t\tDropBarKindMethod = color and { link = \"DropBarIconKindMethod\" } or { fg = C.text },\n\t\tDropBarKindModule = color and { link = \"DropBarIconKindModule\" } or { fg = C.text },\n\t\tDropBarKindNamespace = color and { link = \"DropBarIconKindNamespace\" } or { fg = C.text },\n\t\tDropBarKindNull = color and { link = \"DropBarIconKindNull\" } or { fg = C.text },\n\t\tDropBarKindNumber = color and { link = \"DropBarIconKindNumber\" } or { fg = C.text },\n\t\tDropBarKindObject = color and { link = \"DropBarIconKindObject\" } or { fg = C.text },\n\t\tDropBarKindOperator = color and { link = \"DropBarIconKindOperator\" } or { fg = C.text },\n\t\tDropBarKindPackage = color and { link = \"DropBarIconKindPackage\" } or { fg = C.text },\n\t\tDropBarKindProperty = color and { link = \"DropBarIconKindProperty\" } or { fg = C.text },\n\t\tDropBarKindReference = color and { link = \"DropBarIconKindReference\" } or { fg = C.text },\n\t\tDropBarKindRepeat = color and { link = \"DropBarIconKindRepeat\" } or { fg = C.text },\n\t\tDropBarKindScope = color and { link = \"DropBarIconKindScope\" } or { fg = C.text },\n\t\tDropBarKindSpecifier = color and { link = \"DropBarIconKindSpecifier\" } or { fg = C.text },\n\t\tDropBarKindStatement = color and { link = \"DropBarIconKindStatement\" } or { fg = C.text },\n\t\tDropBarKindString = color and { link = \"DropBarIconKindString\" } or { fg = C.text },\n\t\tDropBarKindStruct = color and { link = \"DropBarIconKindStruct\" } or { fg = C.text },\n\t\tDropBarKindSwitchStatement = color and { link = \"DropBarIconKindSwitchStatement\" } or { fg = C.text },\n\t\tDropBarKindType = color and { link = \"DropBarIconKindType\" } or { fg = C.text },\n\t\tDropBarKindTypeParameter = color and { link = \"DropBarIconKindTypeParameter\" } or { fg = C.text },\n\t\tDropBarKindUnit = color and { link = \"DropBarIconKindUnit\" } or { fg = C.text },\n\t\tDropBarKindValue = color and { link = \"DropBarIconKindValue\" } or { fg = C.text },\n\t\tDropBarKindVariable = color and { link = \"DropBarIconKindVariable\" } or { fg = C.text },\n\t\tDropBarKindWhileStatement = color and { link = \"DropBarIconKindWhileStatement\" } or { fg = C.text },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/fern.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/lambdalisue/vim-fern\"\n\nfunction M.get()\n\treturn {\n\t\tFernBranchText = { fg = C.blue },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/fidget.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/j-hui/fidget.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tFidgetTask = {\n\t\t\tbg = O.transparent_background and C.none or C.mantle,\n\t\t\tfg = C.text,\n\t\t},\n\t\tFidgetTitle = { fg = C.blue },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/flash.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/folke/flash.nvim\"\n\nfunction M.get()\n\tlocal bg = O.transparent_background and C.none or C.base\n\treturn {\n\t\tFlashBackdrop = { fg = C.overlay0 },\n\t\tFlashLabel = { fg = C.green, bg = bg, style = { \"bold\" } },\n\t\tFlashMatch = { fg = C.lavender, bg = bg },\n\t\tFlashCurrent = { fg = C.peach, bg = bg },\n\t\tFlashPrompt = { link = \"NormalFloat\" },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/fzf.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/ibhagwan/fzf-lua\"\n\nfunction M.get()\n\treturn {\n\t\tFzfLuaNormal = { link = \"NormalFloat\" },\n\t\tFzfLuaBorder = { link = \"FloatBorder\" },\n\t\tFzfLuaTitle = { link = \"FloatTitle\" },\n\t\tFzfLuaHeaderBind = { fg = C.yellow },\n\t\tFzfLuaHeaderText = { fg = C.peach },\n\t\tFzfLuaDirPart = { link = \"NonText\" },\n\t\tFzfLuaFzfMatch = { fg = C.blue },\n\t\tFzfLuaFzfPrompt = { fg = C.blue },\n\t\tFzfLuaPathColNr = { fg = C.blue },\n\t\tFzfLuaPathLineNr = { fg = C.green },\n\t\tFzfLuaBufName = { fg = C.mauve },\n\t\tFzfLuaBufNr = { fg = C.yellow },\n\t\tFzfLuaBufFlagCur = { fg = C.peach },\n\t\tFzfLuaBufFlagAlt = { fg = C.blue },\n\t\tFzfLuaTabTitle = { fg = C.sky },\n\t\tFzfLuaTabMarker = { fg = C.yellow },\n\t\tFzfLuaLiveSym = { fg = C.peach },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/gitgraph.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/isakbm/gitgraph.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tGitGraphHash = { fg = C.mauve },\n\t\tGitGraphTimestamp = { fg = C.lavender },\n\t\tGitGraphAuthor = { fg = C.flamingo },\n\t\tGitGraphBranchName = { fg = C.teal },\n\t\tGitGraphBranchTag = { fg = C.pink },\n\t\tGitGraphBranchMsg = { fg = C.overlay2 },\n\t\tGitGraphBranch1 = { fg = C.yellow },\n\t\tGitGraphBranch2 = { fg = C.pink },\n\t\tGitGraphBranch3 = { fg = C.sky },\n\t\tGitGraphBranch4 = { fg = C.green },\n\t\tGitGraphBranch5 = { fg = C.red },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/gitgutter.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/airblade/vim-gitgutter\"\n\nfunction M.get()\n\treturn {\n\t\tGitGutterAdd = { fg = C.green },\n\t\tGitGutterChange = { fg = C.yellow },\n\t\tGitGutterDelete = { fg = C.red },\n\t\tGitGutterAddLineNr = { fg = C.green },\n\t\tGitGutterChangeLineNr = { fg = C.yellow },\n\t\tGitGutterDeleteLineNr = { fg = C.red },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/gitsigns.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/lewis6991/gitsigns.nvim\"\n\nfunction M.get()\n\t-- (a ~= nil) and a or b: Potential false-negative handling\n\tlocal transparent = O.transparent_background\n\tif type(O.integrations.gitsigns.transparent) == \"boolean\" then transparent = O.integrations.gitsigns.transparent end\n\n\tif transparent then\n\t\treturn {\n\t\t\tGitSignsAdd = { fg = C.green }, -- diff mode: Added line |diff.txt|\n\t\t\tGitSignsChange = { fg = C.yellow }, -- diff mode: Changed line |diff.txt|\n\t\t\tGitSignsDelete = { fg = C.red }, -- diff mode: Deleted line |diff.txt|\n\n\t\t\tGitSignsCurrentLineBlame = { fg = C.surface1 },\n\n\t\t\tGitSignsAddPreview = { fg = C.green, bg = C.none },\n\t\t\tGitSignsDeletePreview = { fg = C.red, bg = C.none },\n\n\t\t\t-- for word diff in previews\n\t\t\tGitSignsAddInline = { fg = C.base, bg = C.green, style = { \"bold\" } },\n\t\t\tGitSignsDeleteInline = { fg = C.base, bg = C.red, style = { \"bold\" } },\n\t\t\tGitSignsChangeInline = { fg = C.base, bg = C.blue, style = { \"bold\" } },\n\n\t\t\tGitSignsDeleteVirtLn = { bg = C.none, fg = C.red },\n\t\t}\n\telse\n\t\treturn {\n\t\t\tGitSignsAdd = { fg = C.green }, -- diff mode: Added line |diff.txt|\n\t\t\tGitSignsChange = { fg = C.yellow }, -- diff mode: Changed line |diff.txt|\n\t\t\tGitSignsDelete = { fg = C.red }, -- diff mode: Deleted line |diff.txt|\n\n\t\t\tGitSignsCurrentLineBlame = { fg = C.surface1 },\n\n\t\t\tGitSignsAddPreview = { link = \"DiffAdd\" },\n\t\t\tGitSignsDeletePreview = { link = \"DiffDelete\" },\n\n\t\t\tGitSignsAddInline = { bg = U.darken(C.green, 0.36, C.base) },\n\t\t\tGitSignsChangeInline = { bg = U.darken(C.blue, 0.14, C.base) },\n\t\t\tGitSignsDeleteInline = { bg = U.darken(C.red, 0.36, C.base) },\n\t\t}\n\tend\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/grug_far.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/MagicDuck/grug-far.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tGrugFarResultsMatch = { link = \"IncSearch\" },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/harpoon.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/ThePrimeagen/harpoon\"\n\nfunction M.get()\n\treturn {\n\t\tHarpoonWindow = { fg = C.text, bg = O.transparent_background and C.none or C.base },\n\t\tHarpoonBorder = { fg = C.blue },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/headlines.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/lukas-reineke/headlines.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tDash = { fg = C.overlay2, style = { \"bold\" } },\n\t\tQuote = { link = \"@markup.strong\" },\n\t\tCodeBlock = { bg = C.mantle },\n\t\tHeadline = { link = \"Headline1\" },\n\t\tHeadline1 = { bg = C.surface0, fg = C.red },\n\t\tHeadline2 = { bg = C.surface0, fg = C.peach },\n\t\tHeadline3 = { bg = C.surface0, fg = C.yellow },\n\t\tHeadline4 = { bg = C.surface0, fg = C.green },\n\t\tHeadline5 = { bg = C.surface0, fg = C.sapphire },\n\t\tHeadline6 = { bg = C.surface0, fg = C.lavender },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/hop.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/hadronized/hop.nvim\"\n\nfunction M.get()\n\tlocal bg = O.transparent_background and C.none or C.base\n\treturn {\n\t\tHopNextKey = { bg = bg, fg = C.peach, style = { \"bold\", \"underline\" } },\n\t\tHopNextKey1 = { bg = bg, fg = C.blue, style = { \"bold\" } },\n\t\tHopNextKey2 = { bg = bg, fg = C.teal, style = { \"bold\", \"italic\" } },\n\t\tHopUnmatched = { bg = bg, fg = C.overlay0 },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/illuminate.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/RRethy/vim-illuminate\"\n\nfunction M.get()\n\treturn {\n\t\tIlluminatedWordText = { bg = U.darken(C.surface1, 0.7, C.base) },\n\t\tIlluminatedWordRead = { bg = U.darken(C.surface1, 0.7, C.base) },\n\t\tIlluminatedWordWrite = {\n\t\t\tbg = U.darken(C.surface1, 0.7, C.base),\n\t\t\tstyle = O.integrations.illuminate.lsp and { \"standout\" } or {},\n\t\t},\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/indent_blankline.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/lukas-reineke/indent-blankline.nvim\"\n\nfunction M.get()\n\tlocal scope_color = O.integrations.indent_blankline.scope_color\n\n\tlocal hi = {\n\t\tIblIndent = { fg = C.surface0 },\n\t\tIblScope = { fg = C[scope_color] or C.text },\n\t}\n\n\tif O.integrations.indent_blankline.colored_indent_levels then\n\t\thi[\"RainbowRed\"] = { blend = 0, fg = C.red }\n\t\thi[\"RainbowYellow\"] = { blend = 0, fg = C.yellow }\n\t\thi[\"RainbowBlue\"] = { blend = 0, fg = C.blue }\n\t\thi[\"RainbowOrange\"] = { blend = 0, fg = C.peach }\n\t\thi[\"RainbowGreen\"] = { blend = 0, fg = C.green }\n\t\thi[\"RainbowViolet\"] = { blend = 0, fg = C.mauve }\n\t\thi[\"RainbowCyan\"] = { blend = 0, fg = C.teal }\n\tend\n\n\treturn hi\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/leap.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/ggandor/leap.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tLeapMatch = {\n\t\t\tfg = O.transparent_background and C.pink or U.vary_color({ latte = \"#222222\" }, U.brighten(C.green, 0.3)),\n\t\t\tstyle = { \"underline\", \"nocombine\", O.transparent_background and \"bold\" or nil },\n\t\t},\n\t\tLeapLabel = {\n\t\t\tfg = O.transparent_background and C.green or U.vary_color({ latte = \"#222222\" }, C.base),\n\t\t\tbg = O.transparent_background and C.none\n\t\t\t\tor U.vary_color({ latte = U.brighten(C.red, 0.4) }, U.brighten(C.green, 0.3)),\n\t\t\tstyle = { \"nocombine\", O.transparent_background and \"bold\" or nil },\n\t\t},\n\t\tLeapBackdrop = { fg = O.transparent_background and C.overlay0 or C.none },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/lightspeed.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/ggandor/lightspeed.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tLightspeedLabel = { fg = C.red, style = { \"bold\", \"underline\" } },\n\t\tLightspeedLabelDistant = {\n\t\t\tfg = U.vary_color({ latte = C.blue }, C.sky),\n\t\t\tstyle = { \"bold\", \"underline\" },\n\t\t},\n\t\tLightspeedShortcut = {\n\t\t\tfg = \"#ffffff\",\n\t\t\tbg = U.increase_saturation(C.red, 0.7),\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tLightspeedMaskedChar = {\n\t\t\tfg = U.vary_color({ latte = U.lighten(C.pink, 0.7, C.text) }, U.darken(C.pink, 0.7, C.base)),\n\t\t},\n\t\tLightspeedUnlabeledMatch = { fg = C.text, style = { \"bold\" } },\n\t\tLightspeedGreyWash = { link = \"Comment\" },\n\t\tLightspeedUniqueChar = { link = \"LightspeedUnlabeledMatch\" },\n\t\tLightspeedOneCharMatch = { link = \"LightspeedShortcut\" },\n\t\tLightspeedPendingOpArea = { link = \"IncSearch\" },\n\t\tLightspeedCursor = { link = \"Cursor\" },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/lir.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/tamago324/lir.nvim\"\n\nfunction M.get()\n\treturn vim.tbl_deep_extend(\"force\", {}, {\n\t\tLirFloatNormal = { fg = C.text, bg = O.transparent_background and C.none or C.mantle },\n\t\tLirFloatBorder = {\n\t\t\tfg = O.transparent_background and C.surface1 or C.base,\n\t\t\tbg = O.transparent_background and C.none or C.base,\n\t\t},\n\t\tLirFloatCursorLine = { link = \"CursorLine\" },\n\t\tLirDir = { fg = C.blue },\n\t\tLirSymLink = { fg = C.pink },\n\t\tLirEmptyDirText = { fg = C.blue },\n\t\tLirFloatCurdirWindowNormal = { fg = C.text },\n\t\tLirFloatCurdirWindowDirName = { fg = C.lavender, style = { \"bold\" } },\n\t}, ((O.integrations.lir and O.integrations.lir.git_status) and {\n\t\tLirGitStatusBracket = { fg = C.overlay0 },\n\t\tLirGitStatusIndex = { fg = C.blue },\n\t\tLirGitStatusWorktree = { fg = C.yellow },\n\t\tLirGitStatusUnmerged = { fg = C.red },\n\t\tLirGitStatusUntracked = { fg = C.subtext0 },\n\t\tLirGitStatusIgnored = { fg = C.subtext0 },\n\t}) or {})\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/lsp_saga.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/nvimdev/lspsaga.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tSagaTitle = { fg = C.teal, style = { \"bold\" } },\n\t\tSagaBorder = { fg = C.blue, bg = C.none },\n\t\tSagaNormal = { bg = O.transparent_background and C.none or C.base },\n\t\tSagaToggle = { fg = C.green },\n\t\tSagaCount = { fg = C.overlay1 },\n\t\tSagaBeacon = { bg = U.darken(C.surface0, 0.8, C.crust) },\n\t\tSagaVirtLine = { fg = C.surface2 },\n\t\tSagaSpinner = { fg = C.mauve, style = { \"bold\" } },\n\t\tSagaSpinnerTitle = { fg = C.mauve, style = { \"bold\" } },\n\t\tSagaText = { fg = C.text },\n\t\tSagaSelect = { fg = C.blue, style = { \"bold\" } },\n\t\tSagaSearch = { link = \"Search\" },\n\t\tSagaFinderFname = { fg = C.subtext0, style = { \"bold\" } },\n\t\tActionFix = { fg = C.pink },\n\t\tActionPreviewTitle = { fg = C.mauve, bg = O.transparent_background and C.none or C.base },\n\t\tCodeActionText = { fg = C.green },\n\t\tCodeActionNumber = { fg = C.pink },\n\t\tSagaImpIcon = { fg = C.pink },\n\t\tSagaLightBulb = { link = \"DiagnosticSignHint\" },\n\t\tRenameNormal = { fg = C.text },\n\t\tRenameMatch = { link = \"Search\" },\n\t\tDiagnosticText = { fg = C.text },\n\t\tSagaWinbarSep = { fg = C.flamingo },\n\t\tSagaDetail = { link = \"Comment\" },\n\t\tSagaFileName = { fg = C.overlay2, style = { \"bold\" } },\n\t\tSagaFolderName = { fg = C.overlay2, style = { \"bold\" } },\n\t\tSagaInCurrent = { fg = C.peach },\n\n\t\t-- Lspkind icons support\n\t\tLspKindClass = { fg = C.yellow },\n\t\tLspKindConstant = { fg = C.peach },\n\t\tLspKindConstructor = { fg = C.sapphire },\n\t\tLspKindEnum = { fg = C.yellow },\n\t\tLspKindEnumMember = { fg = C.teal },\n\t\tLspKindEvent = { fg = C.yellow },\n\t\tLspKindField = { fg = C.teal },\n\t\tLspKindFile = { fg = C.rosewater },\n\t\tLspKindFunction = { fg = C.blue },\n\t\tLspKindInterface = { fg = C.yellow },\n\t\tLspKindKey = { fg = C.red },\n\t\tLspKindMethod = { fg = C.blue },\n\t\tLspKindModule = { fg = C.blue },\n\t\tLspKindNamespace = { fg = C.blue },\n\t\tLspKindNumber = { fg = C.peach },\n\t\tLspKindOperator = { fg = C.sky },\n\t\tLspKindPackage = { fg = C.blue },\n\t\tLspKindProperty = { fg = C.teal },\n\t\tLspKindStruct = { fg = C.yellow },\n\t\tLspKindTypeParameter = { fg = C.blue },\n\t\tLspKindVariable = { fg = C.peach },\n\t\tLspKindArray = { fg = C.peach },\n\t\tLspKindBoolean = { fg = C.peach },\n\t\tLspKindNull = { fg = C.yellow },\n\t\tLspKindObject = { fg = C.yellow },\n\t\tLspKindString = { fg = C.green },\n\t\t-- ccls-specific icons.\n\t\tLspKindTypeAlias = { fg = C.green },\n\t\tLspKindParameter = { fg = C.blue },\n\t\tLspKindStaticMethod = { fg = C.peach },\n\t\t-- Microsoft-specific icons.\n\t\tLspKindText = { fg = C.green },\n\t\tLspKindSnippet = { fg = C.mauve },\n\t\tLspKindFolder = { fg = C.blue },\n\t\tLspKindUnit = { fg = C.green },\n\t\tLspKindValue = { fg = C.peach },\n\t}\nend\n\nfunction M.custom_kind()\n\treturn {\n\t\tFile = { \"󰈙 \", \"LspKindFile\" },\n\t\tModule = { \" \", \"LspKindModule\" },\n\t\tNamespace = { \"󰌗 \", \"LspKindNamespace\" },\n\t\tPackage = { \"󰏖 \", \"LspKindPackage\" },\n\t\tClass = { \"󰌗 \", \"LspKindClass\" },\n\t\tMethod = { \" \", \"LspKindMethod\" },\n\t\tProperty = { \"󰆧 \", \"LspKindProperty\" },\n\t\tField = { \" \", \"LspKindField\" },\n\t\tConstructor = { \" \", \"LspKindConstructor\" },\n\t\tEnum = { \"󰒻\", \"LspKindEnum\" },\n\t\tInterface = { \" \", \"LspKindInterface\" },\n\t\tFunction = { \"󰊕 \", \"LspKindFunction\" },\n\t\tVariable = { \" \", \"LspKindVariable\" },\n\t\tConstant = { \" \", \"LspKindConstant\" },\n\t\tString = { \"󰀬 \", \"LspKindString\" },\n\t\tNumber = { \"󰎠 \", \"LspKindNumber\" },\n\t\tBoolean = { \" \", \"LspKindBoolean\" },\n\t\tArray = { \"󰅪 \", \"LspKindArray\" },\n\t\tObject = { \"󰅩 \", \"LspKindObject\" },\n\t\tKey = { \"󰌋 \", \"LspKindKey\" },\n\t\tNull = { \" \", \"LspKindNull\" },\n\t\tEnumMember = { \" \", \"LspKindEnumMember\" },\n\t\tStruct = { \"󰌗 \", \"LspKindStruct\" },\n\t\tEvent = { \" \", \"LspKindEvent\" },\n\t\tOperator = { \"󰆕 \", \"LspKindOperator\" },\n\t\tTypeParameter = { \"󰊄 \", \"LspKindTypeParameter\" },\n\t\tTypeAlias = { \" \", \"LspKindTypeAlias\" },\n\t\tParameter = { \" \", \"LspKindParameter\" },\n\t\tStaticMethod = { \"󰠄 \", \"LspKindStaticMethod\" },\n\t\tMacro = { \" \", \"LspKindMacro\" },\n\t\tText = { \"󰉿 \", \"LspKindText\" },\n\t\tSnippet = { \" \", \"LspKindSnippet\" },\n\t\tFolder = { \" \", \"LspKindFolder\" },\n\t\tUnit = { \"󰉻 \", \"LspKindUnit\" },\n\t\tValue = { \" \", \"LspKindValue\" },\n\t}\nend\n\n-- Backwards compatibility\nfunction M.custom_colors()\n\tlocal C = require(\"catppuccin.palettes\").get_palette()\n\treturn {\n\t\tnormal_bg = C.base,\n\t\ttitle_bg = C.green,\n\t\tred = C.red,\n\t\tmagenta = C.maroon,\n\t\torange = C.peach,\n\t\tyellow = C.yellow,\n\t\tgreen = C.green,\n\t\tcyan = C.sky,\n\t\tblue = C.blue,\n\t\tpurple = C.mauve,\n\t\twhite = C.text,\n\t\tblack = C.crust,\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/lsp_trouble.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/folke/trouble.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tTroubleText = { fg = C.green },\n\t\tTroubleCount = { fg = C.pink, bg = O.transparent_background and C.none or C.surface1 },\n\t\tTroubleNormal = { fg = C.text, bg = O.transparent_background and C.none or C.crust },\n\t\tTroubleNormalNC = { link = \"TroubleNormal\" },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/markview.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/OXY2DEV/markview.nvim\"\n\n-- markview.nvim highlight groups:\n-- https://github.com/OXY2DEV/markview.nvim#-highlight-groups\n\nfunction M.get()\n\tlocal darkening_percentage = O.transparent_background and U.vary_color({ latte = 0.15 }, 0.28) or 0.095\n\n\tlocal blockquote_bg = not O.transparent_background and C.mantle or nil\n\n\tlocal groups = {\n\t\tMarkviewBlockQuoteDefault = { fg = C.overlay2, bg = C.mantle },\n\t\tMarkviewBlockQuoteError = { fg = C.red, bg = U.darken(C.red, darkening_percentage, blockquote_bg) },\n\t\tMarkviewBlockQuoteNote = { fg = C.blue, bg = U.darken(C.blue, darkening_percentage, blockquote_bg) },\n\t\tMarkviewBlockQuoteOk = { fg = C.green, bg = U.darken(C.green, darkening_percentage, blockquote_bg) },\n\t\tMarkviewBlockQuoteSpecial = { fg = C.mauve, bg = U.darken(C.pink, darkening_percentage, blockquote_bg) },\n\t\tMarkviewBlockQuoteWarn = { fg = C.yellow, bg = U.darken(C.yellow, darkening_percentage, blockquote_bg) },\n\n\t\tMarkviewHyperlink = { link = \"@markup.link.url\" },\n\n\t\tMarkviewCode = { bg = C.mantle },\n\t\tMarkviewCodeFg = { fg = C.mantle },\n\t\tMarkviewCodeInfo = { fg = C.overlay2, bg = C.mantle },\n\t\tMarkviewInlineCode = { bg = C.surface0 },\n\n\t\tMarkviewTableHeader = { fg = C.blue },\n\t}\n\n\tlocal rainbow = {\n\t\t[0] = C.overlay2,\n\t\t[7] = C.mauve,\n\t}\n\n\tlocal syntax = require(\"catppuccin.groups.syntax\").get()\n\n\tfor i = 0, 7 do\n\t\tlocal color = rainbow[i] or syntax[\"rainbow\" .. i].fg\n\t\tlocal bg = U.darken(color, darkening_percentage, C.base)\n\t\tgroups[\"MarkviewPalette\" .. i] = { fg = color, bg = bg }\n\t\tgroups[\"MarkviewPalette\" .. i .. \"Fg\"] = { fg = color }\n\t\tgroups[\"MarkviewPalette\" .. i .. \"Bg\"] = { bg = bg }\n\t\tgroups[\"MarkviewIcon\" .. i] = { fg = color, bg = C.mantle }\n\tend\n\n\treturn groups\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/mason.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/mason-org/mason.nvim\"\n\nfunction M.get()\n\tlocal bg = O.transparent_background and C.none or C.lavender\n\tlocal fg = O.transparent_background and C.lavender or C.base\n\n\tlocal secondary_bg = O.transparent_background and C.none or C.blue\n\tlocal secondary_fg = O.transparent_background and C.blue or C.base\n\n\tlocal muted_bg = O.transparent_background and C.none or C.overlay0\n\tlocal muted_fg = O.transparent_background and C.overlay0 or C.base\n\n\treturn {\n\t\tMasonHeader = { fg = fg, bg = bg, style = { \"bold\" } },\n\t\tMasonHeaderSecondary = { fg = secondary_fg, bg = secondary_bg, style = { \"bold\" } },\n\n\t\tMasonHighlight = { fg = C.green },\n\t\tMasonHighlightBlock = {\n\t\t\tbg = O.transparent_background and C.none or C.green,\n\t\t\tfg = O.transparent_background and C.green or C.base,\n\t\t},\n\t\tMasonHighlightBlockBold = { bg = secondary_bg, fg = secondary_fg, bold = true },\n\n\t\tMasonHighlightSecondary = { fg = C.mauve },\n\t\tMasonHighlightBlockSecondary = { fg = secondary_fg, bg = secondary_bg },\n\t\tMasonHighlightBlockBoldSecondary = { fg = fg, bg = bg, bold = true },\n\n\t\tMasonMuted = { fg = C.overlay0 },\n\t\tMasonMutedBlock = { bg = muted_bg, fg = muted_fg },\n\t\tMasonMutedBlockBold = { bg = C.yellow, fg = C.base, bold = true },\n\n\t\tMasonError = { fg = C.red },\n\n\t\tMasonHeading = { fg = C.lavender, bold = true },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/mini.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/echasnovski/mini.nvim\"\n\nfunction M.get()\n\tlocal transparent_background = require(\"catppuccin\").options.transparent_background\n\tlocal bg_highlight = transparent_background and \"NONE\" or C.base\n\n\tlocal inactive_bg = transparent_background and \"NONE\" or C.mantle\n\n\tlocal indentscope_color = O.integrations.mini.indentscope_color\n\treturn {\n\t\tMiniAnimateCursor = { style = { \"reverse\", \"nocombine\" } },\n\t\tMiniAnimateNormalFloat = { link = \"NormalFloat\" },\n\n\t\tMiniClueBorder = { link = \"FloatBorder\" },\n\t\tMiniClueDescGroup = { link = \"DiagnosticFloatingWarn\" },\n\t\tMiniClueDescSingle = { link = \"NormalFloat\" },\n\t\tMiniClueNextKey = { link = \"DiagnosticFloatingHint\" },\n\t\tMiniClueNextKeyWithPostkeys = { link = \"DiagnosticFloatingError\" },\n\t\tMiniClueSeparator = { link = \"DiagnosticFloatingInfo\" },\n\t\tMiniClueTitle = { link = \"FloatTitle\" },\n\n\t\tMiniCompletionActiveParameter = { style = { \"underline\" } },\n\n\t\tMiniCursorword = { style = { \"underline\" } },\n\t\tMiniCursorwordCurrent = { style = { \"underline\" } },\n\n\t\tMiniDepsChangeAdded = { link = \"diffAdded\" },\n\t\tMiniDepsChangeRemoved = { link = \"diffRemoved\" },\n\t\tMiniDepsHint = { link = \"DiagnosticHint\" },\n\t\tMiniDepsInfo = { link = \"DiagnosticInfo\" },\n\t\tMiniDepsMsgBreaking = { link = \"DiagnosticWarn\" },\n\t\tMiniDepsPlaceholder = { link = \"Comment\" },\n\t\tMiniDepsTitle = { link = \"Title\" },\n\t\tMiniDepsTitleError = { bg = C.red, fg = C.base },\n\t\tMiniDepsTitleSame = { link = \"DiffText\" },\n\t\tMiniDepsTitleUpdate = { bg = C.green, fg = C.base },\n\n\t\tMiniDiffSignAdd = { fg = C.green },\n\t\tMiniDiffSignChange = { fg = C.yellow },\n\t\tMiniDiffSignDelete = { fg = C.red },\n\t\tMiniDiffOverAdd = { link = \"DiffAdd\" },\n\t\tMiniDiffOverChange = { link = \"DiffText\" },\n\t\tMiniDiffOverContext = { link = \"DiffChange\" },\n\t\tMiniDiffOverDelete = { link = \"DiffDelete\" },\n\n\t\tMiniFilesBorder = { link = \"FloatBorder\" },\n\t\tMiniFilesBorderModified = { link = \"DiagnosticFloatingWarn\" },\n\t\tMiniFilesCursorLine = { link = \"CursorLine\" },\n\t\tMiniFilesDirectory = { link = \"Directory\" },\n\t\tMiniFilesFile = { fg = C.text },\n\t\tMiniFilesNormal = { link = \"NormalFloat\" },\n\t\tMiniFilesTitle = { link = \"FloatTitle\" },\n\t\tMiniFilesTitleFocused = O.float.solid and {\n\t\t\tfg = C.crust,\n\t\t\tbg = C.mauve,\n\t\t} or {\n\t\t\tfg = C.subtext0,\n\t\t\tbg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\n\t\tMiniHipatternsFixme = { fg = C.base, bg = C.red, style = { \"bold\" } },\n\t\tMiniHipatternsHack = { fg = C.base, bg = C.yellow, style = { \"bold\" } },\n\t\tMiniHipatternsNote = { fg = C.base, bg = C.sky, style = { \"bold\" } },\n\t\tMiniHipatternsTodo = { fg = C.base, bg = C.teal, style = { \"bold\" } },\n\n\t\tMiniIconsAzure = { fg = C.sapphire },\n\t\tMiniIconsBlue = { fg = C.blue },\n\t\tMiniIconsCyan = { fg = C.teal },\n\t\tMiniIconsGreen = { fg = C.green },\n\t\tMiniIconsGrey = { fg = C.text },\n\t\tMiniIconsOrange = { fg = C.peach },\n\t\tMiniIconsPurple = { fg = C.mauve },\n\t\tMiniIconsRed = { fg = C.red },\n\t\tMiniIconsYellow = { fg = C.yellow },\n\n\t\tMiniIndentscopeSymbol = { fg = C[indentscope_color] or C.overlay2 },\n\n\t\tMiniJump = { fg = C.overlay2, bg = C.pink },\n\n\t\tMiniJump2dDim = { fg = C.overlay0 },\n\t\tMiniJump2dSpot = { bg = C.base, fg = C.peach, style = { \"bold\", \"underline\" } },\n\t\tMiniJump2dSpotAhead = { bg = C.dim, fg = C.teal },\n\t\tMiniJump2dSpotUnique = { bg = C.base, fg = C.sky, style = { \"bold\" } },\n\n\t\tMiniMapNormal = { link = \"NormalFloat\" },\n\t\tMiniMapSymbolCount = { link = \"Special\" },\n\t\tMiniMapSymbolLine = { link = \"Title\" },\n\t\tMiniMapSymbolView = { link = \"Delimiter\" },\n\n\t\tMiniNotifyBorder = { link = \"FloatBorder\" },\n\t\tMiniNotifyNormal = { link = \"NormalFloat\" },\n\t\tMiniNotifyTitle = { link = \"FloatTitle\" },\n\n\t\tMiniOperatorsExchangeFrom = { link = \"IncSearch\" },\n\n\t\tMiniPickBorder = { link = \"FloatBorder\" },\n\t\tMiniPickBorderBusy = { link = \"DiagnosticFloatingWarn\" },\n\t\tMiniPickBorderText = O.float.solid and {\n\t\t\tfg = C.crust,\n\t\t\tbg = C.mauve,\n\t\t} or { fg = C.mauve, bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle },\n\t\tMiniPickIconDirectory = { link = \"Directory\" },\n\t\tMiniPickIconFile = { link = \"MiniPickNormal\" },\n\t\tMiniPickHeader = { link = \"DiagnosticFloatingHint\" },\n\t\tMiniPickMatchCurrent = {\n\t\t\tfg = C.flamingo,\n\t\t\tbg = C.surface0,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tMiniPickMatchMarked = { link = \"Visual\" },\n\t\tMiniPickMatchRanges = { link = \"DiagnosticFloatingHint\" },\n\t\tMiniPickNormal = { link = \"NormalFloat\" },\n\t\tMiniPickPreviewLine = { link = \"CursorLine\" },\n\t\tMiniPickPreviewRegion = { link = \"IncSearch\" },\n\t\tMiniPickPrompt = { fg = C.text, bg = O.float.transparent and C.none or C.mantle },\n\t\tMiniPickPromptCaret = {\n\t\t\tfg = C.flamingo,\n\t\t\tbg = O.float.transparent and C.none or C.mantle,\n\t\t},\n\t\tMiniPickPromptPrefix = {\n\t\t\tfg = C.flamingo,\n\t\t\tbg = O.float.transparent and C.none or C.mantle,\n\t\t},\n\n\t\tMiniStarterCurrent = {},\n\t\tMiniStarterFooter = { fg = C.yellow, style = { \"italic\" } },\n\t\tMiniStarterHeader = { fg = C.blue },\n\t\tMiniStarterInactive = { fg = C.surface2, style = O.styles.comments },\n\t\tMiniStarterItem = { fg = C.text },\n\t\tMiniStarterItemBullet = { fg = C.blue },\n\t\tMiniStarterItemPrefix = { fg = C.pink },\n\t\tMiniStarterSection = { fg = C.flamingo },\n\t\tMiniStarterQuery = { fg = C.green },\n\n\t\tMiniStatuslineDevinfo = { fg = C.subtext1, bg = C.surface1 },\n\t\tMiniStatuslineFileinfo = { fg = C.subtext1, bg = C.surface1 },\n\t\tMiniStatuslineFilename = { fg = C.text, bg = C.mantle },\n\t\tMiniStatuslineInactive = { fg = C.blue, bg = C.mantle },\n\t\tMiniStatuslineModeCommand = { fg = C.base, bg = C.peach, style = { \"bold\" } },\n\t\tMiniStatuslineModeInsert = { fg = C.base, bg = C.green, style = { \"bold\" } },\n\t\tMiniStatuslineModeNormal = { fg = C.mantle, bg = C.blue, style = { \"bold\" } },\n\t\tMiniStatuslineModeOther = { fg = C.base, bg = C.teal, style = { \"bold\" } },\n\t\tMiniStatuslineModeReplace = { fg = C.base, bg = C.red, style = { \"bold\" } },\n\t\tMiniStatuslineModeVisual = { fg = C.base, bg = C.mauve, style = { \"bold\" } },\n\n\t\tMiniSurround = { bg = C.pink, fg = C.surface1 },\n\n\t\tMiniTablineCurrent = { fg = C.text, bg = C.base, sp = C.red, style = { \"bold\", \"italic\", \"underline\" } },\n\t\tMiniTablineFill = { bg = bg_highlight },\n\t\tMiniTablineHidden = { fg = C.text, bg = inactive_bg },\n\t\tMiniTablineModifiedCurrent = { fg = C.red, bg = C.none, style = { \"bold\", \"italic\" } },\n\t\tMiniTablineModifiedHidden = { fg = C.red, bg = C.none },\n\t\tMiniTablineModifiedVisible = { fg = C.red, bg = C.none },\n\t\tMiniTablineTabpagesection = { fg = C.surface1, bg = C.base },\n\t\tMiniTablineVisible = { bg = C.none },\n\n\t\tMiniTestEmphasis = { style = { \"bold\" } },\n\t\tMiniTestFail = { fg = C.red, style = { \"bold\" } },\n\t\tMiniTestPass = { fg = C.green, style = { \"bold\" } },\n\n\t\tMiniTrailspace = { bg = C.red },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/navic.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/SmiteshP/nvim-navic\"\n\nfunction M.get()\n\tlocal background = O.integrations.navic.custom_bg and O.integrations.navic.custom_bg or C.none\n\tif O.integrations.navic.custom_bg == \"lualine\" then background = C.mantle end\n\n\treturn {\n\t\tNavicIconsFile = { fg = C.blue, bg = background },\n\t\tNavicIconsModule = { fg = C.blue, bg = background },\n\t\tNavicIconsNamespace = { fg = C.blue, bg = background },\n\t\tNavicIconsPackage = { fg = C.blue, bg = background },\n\t\tNavicIconsClass = { fg = C.yellow, bg = background },\n\t\tNavicIconsMethod = { fg = C.blue, bg = background },\n\t\tNavicIconsProperty = { fg = C.green, bg = background },\n\t\tNavicIconsField = { fg = C.green, bg = background },\n\t\tNavicIconsConstructor = { fg = C.blue, bg = background },\n\t\tNavicIconsEnum = { fg = C.green, bg = background },\n\t\tNavicIconsInterface = { fg = C.yellow, bg = background },\n\t\tNavicIconsFunction = { fg = C.blue, bg = background },\n\t\tNavicIconsVariable = { fg = C.flamingo, bg = background },\n\t\tNavicIconsConstant = { fg = C.peach, bg = background },\n\t\tNavicIconsString = { fg = C.green, style = O.styles.strings, bg = background },\n\t\tNavicIconsNumber = { fg = C.peach, bg = background },\n\t\tNavicIconsBoolean = { fg = C.peach, bg = background },\n\t\tNavicIconsArray = { fg = C.peach, bg = background },\n\t\tNavicIconsObject = { fg = C.peach, bg = background },\n\t\tNavicIconsKey = { fg = C.pink, style = O.styles.keywords, bg = background },\n\t\tNavicIconsNull = { fg = C.peach, bg = background },\n\t\tNavicIconsEnumMember = { fg = C.red, bg = background },\n\t\tNavicIconsStruct = { fg = C.blue, bg = background },\n\t\tNavicIconsEvent = { fg = C.blue, bg = background },\n\t\tNavicIconsOperator = { fg = C.sky, bg = background },\n\t\tNavicIconsTypeParameter = { fg = C.blue, bg = background },\n\t\tNavicText = { fg = C.sapphire, bg = background },\n\t\tNavicSeparator = { fg = C.text, bg = background },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/neogit.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/NeogitOrg/neogit\"\n\nfunction M.get()\n\treturn {\n\t\tNeogitBranch = {\n\t\t\tfg = C.peach,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitRemote = {\n\t\t\tfg = C.green,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitUnmergedInto = {\n\t\t\tlink = \"Function\",\n\t\t},\n\t\tNeogitUnpulledFrom = {\n\t\t\tlink = \"Function\",\n\t\t},\n\t\tNeogitObjectId = {\n\t\t\tlink = \"Comment\",\n\t\t},\n\t\tNeogitStash = {\n\t\t\tlink = \"Comment\",\n\t\t},\n\t\tNeogitRebaseDone = {\n\t\t\tlink = \"Comment\",\n\t\t},\n\t\tNeogitHunkHeader = {\n\t\t\tbg = U.darken(C.blue, 0.095, C.base),\n\t\t\tfg = U.darken(C.blue, 0.5, C.base),\n\t\t},\n\t\tNeogitHunkHeaderHighlight = {\n\t\t\tbg = U.darken(C.blue, 0.215, C.base),\n\t\t\tfg = C.blue,\n\t\t},\n\t\tNeogitDiffContextHighlight = {\n\t\t\tbg = C.surface0,\n\t\t},\n\t\tNeogitDiffDeleteHighlight = {\n\t\t\tbg = U.darken(C.red, 0.345, C.base),\n\t\t\tfg = U.lighten(C.red, 0.850, C.text),\n\t\t},\n\t\tNeogitDiffAddHighlight = {\n\t\t\tbg = U.darken(C.green, 0.345, C.base),\n\t\t\tfg = U.lighten(C.green, 0.850, C.text),\n\t\t},\n\t\tNeogitDiffDelete = {\n\t\t\tbg = U.darken(C.red, 0.095, C.base),\n\t\t\tfg = U.darken(C.red, 0.800, C.base),\n\t\t},\n\t\tNeogitDiffAdd = {\n\t\t\tbg = U.darken(C.green, 0.095, C.base),\n\t\t\tfg = U.darken(C.green, 0.800, C.base),\n\t\t},\n\t\tNeogitCommitViewHeader = {\n\t\t\tbg = U.darken(C.blue, 0.300, C.base),\n\t\t\tfg = U.lighten(C.blue, 0.800, C.text),\n\t\t},\n\t\tNeogitChangeModified = {\n\t\t\tfg = C.blue,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitChangeDeleted = {\n\t\t\tfg = C.red,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitChangeAdded = {\n\t\t\tfg = C.green,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitChangeRenamed = {\n\t\t\tfg = C.mauve,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitChangeUpdated = {\n\t\t\tfg = C.peach,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitChangeCopied = {\n\t\t\tfg = C.pink,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitChangeBothModified = {\n\t\t\tfg = C.yellow,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitChangeNewFile = {\n\t\t\tfg = C.green,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitUntrackedfiles = {\n\t\t\tfg = C.mauve,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitUnstagedchanges = {\n\t\t\tfg = C.mauve,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitUnmergedchanges = {\n\t\t\tfg = C.mauve,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitUnpulledchanges = {\n\t\t\tfg = C.mauve,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitRecentcommits = {\n\t\t\tfg = C.mauve,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitStagedchanges = {\n\t\t\tfg = C.mauve,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitStashes = {\n\t\t\tfg = C.mauve,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitRebasing = {\n\t\t\tfg = C.mauve,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitNotificationInfo = {\n\t\t\tfg = C.blue,\n\t\t},\n\t\tNeogitNotificationWarning = {\n\t\t\tfg = C.yellow,\n\t\t},\n\t\tNeogitNotificationError = {\n\t\t\tfg = C.red,\n\t\t},\n\t\tNeogitGraphRed = {\n\t\t\tfg = C.red,\n\t\t},\n\t\tNeogitGraphWhite = {\n\t\t\tfg = C.base,\n\t\t},\n\t\tNeogitGraphYellow = {\n\t\t\tfg = C.yellow,\n\t\t},\n\t\tNeogitGraphGreen = {\n\t\t\tfg = C.green,\n\t\t},\n\t\tNeogitGraphCyan = {\n\t\t\tfg = C.blue,\n\t\t},\n\t\tNeogitGraphBlue = {\n\t\t\tfg = C.blue,\n\t\t},\n\t\tNeogitGraphPurple = {\n\t\t\tfg = C.lavender,\n\t\t},\n\t\tNeogitGraphGray = {\n\t\t\tfg = C.subtext1,\n\t\t},\n\t\tNeogitGraphOrange = {\n\t\t\tfg = C.peach,\n\t\t},\n\t\tNeogitGraphBoldRed = {\n\t\t\tfg = C.red,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitGraphBoldWhite = {\n\t\t\tfg = C.white,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitGraphBoldYellow = {\n\t\t\tfg = C.yellow,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitGraphBoldGreen = {\n\t\t\tfg = C.green,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitGraphBoldCyan = {\n\t\t\tfg = C.blue,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitGraphBoldBlue = {\n\t\t\tfg = C.blue,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitGraphBoldPurple = {\n\t\t\tfg = C.lavender,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitGraphBoldGray = {\n\t\t\tfg = C.subtext1,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitDiffContext = {\n\t\t\tbg = C.base,\n\t\t},\n\t\tNeogitPopupBold = {\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitPopupSwitchKey = {\n\t\t\tfg = C.lavender,\n\t\t},\n\t\tNeogitPopupOptionKey = {\n\t\t\tfg = C.lavender,\n\t\t},\n\t\tNeogitPopupConfigKey = {\n\t\t\tfg = C.lavender,\n\t\t},\n\t\tNeogitPopupActionKey = {\n\t\t\tfg = C.lavender,\n\t\t},\n\t\tNeogitFilePath = {\n\t\t\tfg = C.blue,\n\t\t\tstyle = { \"italic\" },\n\t\t},\n\t\tNeogitDiffHeader = {\n\t\t\tbg = C.base,\n\t\t\tfg = C.blue,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitDiffHeaderHighlight = {\n\t\t\tbg = C.base,\n\t\t\tfg = C.peach,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitUnpushedTo = {\n\t\t\tfg = C.lavender,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitFold = {\n\t\t\tfg = C.none,\n\t\t\tbg = C.none,\n\t\t},\n\t\tNeogitSectionHeader = {\n\t\t\tfg = C.mauve,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tNeogitTagName = {\n\t\t\tfg = C.yellow,\n\t\t},\n\t\tNeogitTagDistance = {\n\t\t\tfg = C.blue,\n\t\t},\n\t\tNeogitWinSeparator = {\n\t\t\tlink = \"WinSeparator\",\n\t\t},\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/neotest.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/nvim-neotest/neotest\"\n\nfunction M.get()\n\treturn {\n\t\tNeotestPassed = { fg = C.green },\n\t\tNeotestFailed = { fg = C.red },\n\t\tNeotestRunning = { fg = C.yellow },\n\t\tNeotestSkipped = { fg = C.blue },\n\t\tNeotestTest = { fg = C.text },\n\t\tNeotestNamespace = { fg = C.mauve },\n\t\tNeotestFocused = { style = { \"bold\", \"underline\" } },\n\t\tNeotestFile = { fg = C.blue },\n\t\tNeotestDir = { fg = C.blue },\n\t\tNeotestIndent = { fg = C.overlay1 },\n\t\tNeotestExpandMarker = { fg = C.overlay1 },\n\t\tNeotestAdapterName = { fg = C.maroon },\n\t\tNeotestWinSelect = { fg = C.blue, style = { \"bold\" } },\n\t\tNeotestMarked = { fg = C.peach, style = { \"bold\" } },\n\t\tNeotestTarget = { fg = C.red },\n\t\tNeotestUnknown = { fg = C.text },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/neotree.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/nvim-neo-tree/neo-tree.nvim\"\n\nfunction M.get()\n\tlocal active_bg = O.transparent_background and C.none or C.mantle\n\tlocal inactive_bg = O.transparent_background and C.none or C.base\n\treturn {\n\t\tNeoTreeDirectoryName = { fg = C.blue },\n\t\tNeoTreeDirectoryIcon = { fg = C.blue },\n\t\tNeoTreeNormal = { fg = C.text, bg = active_bg },\n\t\tNeoTreeNormalNC = { fg = C.text, bg = active_bg },\n\t\tNeoTreeExpander = { fg = C.overlay0 },\n\t\tNeoTreeIndentMarker = { fg = C.overlay0 },\n\t\tNeoTreeRootName = { fg = C.blue, style = { \"bold\" } },\n\t\tNeoTreeSymbolicLinkTarget = { fg = C.pink },\n\t\tNeoTreeModified = { fg = C.peach },\n\n\t\tNeoTreeGitAdded = { fg = C.green },\n\t\tNeoTreeGitConflict = { fg = C.red },\n\t\tNeoTreeGitDeleted = { fg = C.red },\n\t\tNeoTreeGitIgnored = { fg = C.overlay0 },\n\t\tNeoTreeGitModified = { fg = C.yellow },\n\t\tNeoTreeGitUnstaged = { fg = C.red },\n\t\tNeoTreeGitUntracked = { fg = C.mauve },\n\t\tNeoTreeGitStaged = { fg = C.green },\n\n\t\tNeoTreeFloatBorder = { link = \"FloatBorder\" },\n\t\tNeoTreeFloatTitle = { link = \"FloatTitle\" },\n\t\tNeoTreeTitleBar = { fg = C.mantle, bg = C.blue },\n\n\t\tNeoTreeFileNameOpened = { fg = C.pink },\n\t\tNeoTreeDimText = { fg = C.overlay1 },\n\t\tNeoTreeFilterTerm = { fg = C.green, style = { \"bold\" } },\n\t\tNeoTreeTabActive = { bg = active_bg, fg = C.lavender, style = { \"bold\" } },\n\t\tNeoTreeTabInactive = { bg = inactive_bg, fg = C.overlay0 },\n\t\tNeoTreeTabSeparatorActive = { fg = active_bg, bg = active_bg },\n\t\tNeoTreeTabSeparatorInactive = { fg = inactive_bg, bg = inactive_bg },\n\t\tNeoTreeVertSplit = { fg = C.base, bg = inactive_bg },\n\t\tNeoTreeWinSeparator = {\n\t\t\tfg = O.transparent_background and C.surface1 or C.base,\n\t\t\tbg = O.transparent_background and C.none or C.base,\n\t\t},\n\t\tNeoTreeStatusLineNC = { fg = C.mantle, bg = C.mantle },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/noice.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/folke/noice.nvim\"\n\nlocal virtual_text = O.lsp_styles.virtual_text\n\nfunction M.get()\n\treturn { -- Personally the default integration is already pretty good\n\t\tNoiceCmdline = { fg = C.text },\n\t\tNoiceCmdlineIcon = { fg = C.sky, style = virtual_text.information },\n\t\tNoiceCmdlineIconSearch = { fg = C.yellow },\n\t\tNoiceCmdlinePopupBorder = { fg = C.lavender },\n\t\tNoiceCmdlinePopupBorderSearch = { fg = C.yellow },\n\t\tNoiceConfirmBorder = { fg = C.blue },\n\t\tNoiceMini = { fg = C.subtext0, blend = 0 },\n\t\tNoiceFormatProgressDone = {\n\t\t\tbg = O.transparent_background and C.none or U.darken(C.sky, 0.30, C.base),\n\t\t\tfg = C.subtext0,\n\t\t},\n\t\tNoiceFormatProgressTodo = {\n\t\t\tbg = O.transparent_background and C.none\n\t\t\t\tor U.vary_color({ latte = U.lighten(C.mantle, 0.70, C.base) }, U.darken(C.surface0, 0.64, C.base)),\n\t\t\tfg = C.subtext0,\n\t\t},\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/notifier.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/vigoux/notifier.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tNotifierIcon = { fg = C.mauve },\n\t\tNotifierContent = { fg = C.overlay2, blend = 0, style = { \"italic\" } },\n\t\tNotifierContentDim = { fg = C.overlay1, blend = 0, style = { \"italic\" } },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/notify.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/rcarriga/nvim-notify\"\n\nfunction M.get()\n\treturn {\n\t\tNotifyBackground = { bg = (O.transparent_background and vim.o.winblend == 0) and \"#000000\" or C.mantle },\n\n\t\tNotifyERRORBorder = { fg = C.red },\n\t\tNotifyERRORIcon = { fg = C.red },\n\t\tNotifyERRORTitle = { fg = C.red, style = { \"italic\" } },\n\t\tNotifyWARNBorder = { fg = C.yellow },\n\t\tNotifyWARNIcon = { fg = C.yellow },\n\t\tNotifyWARNTitle = { fg = C.yellow, style = { \"italic\" } },\n\t\tNotifyINFOBorder = { fg = C.blue },\n\t\tNotifyINFOIcon = { fg = C.blue },\n\t\tNotifyINFOTitle = { fg = C.blue, style = { \"italic\" } },\n\t\tNotifyDEBUGBorder = { fg = C.peach },\n\t\tNotifyDEBUGIcon = { fg = C.peach },\n\t\tNotifyDEBUGTitle = { fg = C.peach, style = { \"italic\" } },\n\t\tNotifyTRACEBorder = { fg = C.rosewater },\n\t\tNotifyTRACEIcon = { fg = C.rosewater },\n\t\tNotifyTRACETitle = { fg = C.rosewater, style = { \"italic\" } },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/nvim_surround.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/kylechui/nvim-surround\"\n\nfunction M.get()\n\treturn {\n\t\tNvimSurroundHighlight = { sp = C.peach, style = { \"underline\" } },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/nvimtree.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/nvim-tree/nvim-tree.lua\"\n\nfunction M.get()\n\treturn {\n\t\tNvimTreeFolderName = { fg = C.blue },\n\t\tNvimTreeFolderIcon = { fg = C.blue },\n\t\tNvimTreeNormal = { fg = C.text, bg = O.transparent_background and C.none or C.mantle },\n\t\tNvimTreeOpenedFolderName = { fg = C.blue },\n\t\tNvimTreeEmptyFolderName = { fg = C.blue },\n\t\tNvimTreeIndentMarker = { fg = C.overlay0 },\n\t\tNvimTreeWinSeparator = {\n\t\t\tfg = O.transparent_background and C.surface1 or C.base,\n\t\t\tbg = O.transparent_background and C.none or C.base,\n\t\t},\n\t\tNvimTreeRootFolder = { fg = C.lavender, style = { \"bold\" } },\n\t\tNvimTreeSymlink = { fg = C.pink },\n\t\tNvimTreeStatuslineNc = { fg = C.mantle, bg = C.mantle },\n\t\tNvimTreeGitDirty = { fg = C.yellow },\n\t\tNvimTreeGitNew = { fg = C.blue },\n\t\tNvimTreeGitDeleted = { fg = C.red },\n\t\tNvimTreeSpecialFile = { fg = C.flamingo },\n\t\tNvimTreeImageFile = { fg = C.text },\n\t\tNvimTreeOpenedFile = { fg = C.pink },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/octo.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/pwntester/octo.nvim\"\n\nfunction M.get()\n\treturn {\n\t\t-- colors\n\t\tOctoGrey = { fg = C.base },\n\t\tOctoBlue = { fg = C.blue },\n\t\tOctoGreen = { fg = C.green },\n\t\tOctoRed = { fg = C.red },\n\t\tOctoPurple = { fg = C.mauve },\n\t\tOctoYellow = { fg = C.yellow },\n\t\t-- highlight groups\n\t\tOctoDirty = { link = \"ErrorMsg\" },\n\t\tOctoIssueTitle = { link = \"PreProc\" },\n\t\tOctoIssueId = { link = \"Question\" },\n\t\tOctoEmpty = { link = \"Comment\" },\n\t\tOctoFloat = { link = \"NormalNC\" },\n\t\tOctoDate = { link = \"Comment\" },\n\t\tOctoSymbol = { link = \"Comment\" },\n\t\tOctoTimelineItemHeading = { link = \"Comment\" },\n\t\tOctoDetailsLabel = { link = \"Title\" },\n\t\tOctoMissingDetails = { link = \"Comment\" },\n\t\tOctoDetailsValue = { link = \"Identifier\" },\n\t\tOctoDiffHunkPosition = { link = \"NormalFloat\" },\n\t\tOctoCommentLine = { link = \"TabLineSel\" },\n\t\tOctoViewer = { fg = C.base, bg = C.blue },\n\t\tOctoBubble = { fg = C.text, bg = C.base },\n\t\tOctoBubbleGrey = { fg = C.text, bg = C.base },\n\t\tOctoBubbleDelimiterGrey = { fg = C.base },\n\t\tOctoBubbleGreen = { fg = C.base, bg = C.green },\n\t\tOctoBubbleDelimiterGreen = { fg = C.green },\n\t\tOctoBubbleBlue = { fg = C.base, bg = C.sky },\n\t\tOctoBubbleDelimiterBlue = { fg = C.sky },\n\t\tOctoBubbleYellow = { fg = C.base, bg = C.yellow },\n\t\tOctoBubbleDelimiterYellow = { fg = C.yellow },\n\t\tOctoBubbleRed = { fg = C.base, bg = C.red },\n\t\tOctoBubbleDelimiterRed = { fg = C.red },\n\t\tOctoBubblePurple = { fg = C.base, bg = C.mauve },\n\t\tOctoBubbleDelimiterPurple = { fg = C.mauve },\n\t\tOctoUser = { link = \"OctoBubble\" },\n\t\tOctoUserViewer = { link = \"OctoViewer\" },\n\t\tOctoReaction = { link = \"OctoBubble\" },\n\t\tOctoReactionViewer = { link = \"OctoViewer\" },\n\t\tOctoPassingTest = { link = \"OctoGreen\" },\n\t\tOctoFailingTest = { link = \"OctoRed\" },\n\t\tOctoPullAdditions = { link = \"OctoGreen\" },\n\t\tOctoPullDeletions = { link = \"OctoRed\" },\n\t\tOctoPullModifications = { fg = C.peach },\n\t\tOctoStateOpen = { fg = C.green, bg = C.base },\n\t\tOctoStateOpenFloat = { fg = C.green, bg = C.base },\n\t\tOctoStateClosed = { fg = C.red, bg = C.base },\n\t\tOctoStateClosedFloat = { fg = C.red, bg = C.base },\n\t\tOctoStateMerged = { fg = C.mauve, bg = C.base },\n\t\tOctoStateMergedFloat = { fg = C.mauve, bg = C.base },\n\t\tOctoStatePending = { fg = C.peach, bg = C.base },\n\t\tOctoStatePendingFloat = { fg = C.peach, bg = C.base },\n\t\tOctoStateApproved = { link = \"OctoStateOpen\" },\n\t\tOctoStateApprovedFloat = { link = \"OctoStateOpen\" },\n\t\tOctoStateChangesRequested = { fg = C.maroon, bg = C.base },\n\t\tOctoStateChangesRequestedFloat = { fg = C.maroon, bg = C.base },\n\t\tOctoStateCommented = { link = \"Normal\" },\n\t\tOctoStateCommentedFloat = { link = \"Normal\" },\n\t\tOctoStateDismissed = { link = \"OctoStateClosed\" },\n\t\tOctoStateDismissedFloat = { link = \"OctoStateClosed\" },\n\t\tOctoStateSubmittedBubble = { link = \"OctoBubbleGreen\" },\n\t\tOctoFilePanelCounter = { fg = C.blue, style = { \"bold\" } },\n\t\tOctoFilePanelTitle = { fg = C.blue, style = { \"bold\" } },\n\t\tOctoFilePanelFileName = {},\n\t\tOctoNormalFront = { fg = C.text },\n\t\tOctoYellowFloat = { fg = C.yellow, bg = C.base },\n\t\tOctoPurpleFloat = { fg = C.mauve, bg = C.base },\n\t\tOctoRedFloat = { fg = C.red, bg = C.base },\n\t\tOctoGreenFloat = { fg = C.green, bg = C.base },\n\t\tOctoGreyFloat = { fg = C.text, bg = C.base },\n\t\tOctoBlueFloat = { fg = C.blue, bg = C.base },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/overseer.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/stevearc/overseer.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tOverseerPENDING = { fg = C.grey },\n\t\tOverseerRUNNING = { fg = C.yellow },\n\t\tOverseerSUCCESS = { fg = C.green },\n\t\tOverseerCANCELED = { fg = C.overlay2 },\n\t\tOverseerFAILURE = { fg = C.red },\n\t\tOverseerTask = { fg = C.blue },\n\t\tOverseerTaskBorder = { fg = C.sky },\n\t\tOverseerOutput = { fg = C.text },\n\t\tOverseerComponent = { fg = C.yellow },\n\t\tOverseerField = { fg = C.green },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/pounce.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/rlane/pounce.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tPounceMatch = { bg = U.lighten(C.green, 0.7), fg = C.base, style = { \"bold\" } },\n\t\tPounceGap = { bg = U.darken(C.green, 0.7), fg = C.base, style = { \"bold\" } },\n\t\tPounceAccept = { bg = C.peach, fg = C.base, style = { \"bold\" } },\n\t\tPounceAcceptBest = { bg = C.teal, fg = C.base, style = { \"bold\" } },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/rainbow_delimiters.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/HiPhish/rainbow-delimiters.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tRainbowDelimiterRed = { fg = C.red },\n\t\tRainbowDelimiterYellow = { fg = C.yellow },\n\t\tRainbowDelimiterBlue = { fg = C.blue },\n\t\tRainbowDelimiterOrange = { fg = C.peach },\n\t\tRainbowDelimiterGreen = { fg = C.green },\n\t\tRainbowDelimiterViolet = { fg = C.mauve },\n\t\tRainbowDelimiterCyan = { fg = C.teal },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/render_markdown.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/MeanderingProgrammer/render-markdown.nvim\"\n\n-- render-markdown.nvim highlight groups:\n-- https://github.com/MeanderingProgrammer/render-markdown.nvim?tab=readme-ov-file#colors\n\nfunction M.get()\n\tlocal groups = {\n\t\tRenderMarkdownCode = { bg = C.mantle },\n\t\tRenderMarkdownCodeInline = { bg = C.surface0 },\n\t\tRenderMarkdownBullet = { fg = C.sky },\n\t\tRenderMarkdownTableHead = { fg = C.blue },\n\t\tRenderMarkdownTableRow = { fg = C.lavender },\n\t\tRenderMarkdownSuccess = { fg = C.green },\n\t\tRenderMarkdownInfo = { fg = C.sky },\n\t\tRenderMarkdownHint = { fg = C.teal },\n\t\tRenderMarkdownWarn = { fg = C.yellow },\n\t\tRenderMarkdownError = { fg = C.red },\n\t}\n\n\tlocal syntax = require(\"catppuccin.groups.syntax\").get()\n\tlocal darkening_percentage = O.transparent_background and U.vary_color({ latte = 0.15 }, 0.28) or 0.095\n\n\tfor i = 1, 6 do\n\t\tlocal color = syntax[\"rainbow\" .. i].fg\n\t\tgroups[\"RenderMarkdownH\" .. i] = { fg = color }\n\t\tgroups[\"RenderMarkdownH\" .. i .. \"Bg\"] = { bg = U.darken(color, darkening_percentage, C.base) }\n\tend\n\n\treturn groups\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/sandwich.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/machakann/vim-sandwich\"\n\nfunction M.get()\n\treturn {\n\t\tOperatorSandwichAdd = { bg = C.blue, fg = C.base },\n\t\tOperatorSandwichBuns = { bg = C.blue, fg = C.base },\n\t\tOperatorSandwichChange = { bg = C.blue, fg = C.base },\n\t\tOperatorSandwichDelete = { bg = C.blue, fg = C.base },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/signify.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/mhinz/vim-signify\"\n\nfunction M.get()\n\treturn {\n\t\tSignifySignAdd = { fg = C.green },\n\t\tSignifySignChange = { fg = C.yellow },\n\t\tSignifySignDelete = { fg = C.red },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/snacks.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/folke/snacks.nvim\"\n\nfunction M.get()\n\tlocal indent_scope_color = O.integrations.snacks.indent_scope_color\n\n\tlocal hlgroups = {\n\t\tSnacksNormal = { link = \"Normal\" },\n\t\tSnacksWinBar = { link = \"Title\" },\n\t\tSnacksBackdrop = { link = \"FloatShadow\" },\n\t\tSnacksNormalNC = { link = \"NormalFloat\" },\n\t\tSnacksWinBarNC = { link = \"SnacksWinBar\" },\n\n\t\tSnacksNotifierInfo = { fg = C.blue },\n\t\tSnacksNotifierIconInfo = { fg = C.blue },\n\t\tSnacksNotifierTitleInfo = { fg = C.blue, style = { \"italic\" } },\n\t\tSnacksNotifierFooterInfo = { link = \"DiagnosticInfo\" },\n\t\tSnacksNotifierBorderInfo = { fg = C.blue },\n\t\tSnacksNotifierWarn = { fg = C.yellow },\n\t\tSnacksNotifierIconWarn = { fg = C.yellow },\n\t\tSnacksNotifierTitleWarn = { fg = C.yellow, style = { \"italic\" } },\n\t\tSnacksNotifierBorderWarn = { fg = C.yellow },\n\t\tSnacksNotifierFooterWarn = { link = \"DiagnosticWarn\" },\n\t\tSnacksNotifierDebug = { fg = C.peach },\n\t\tSnacksNotifierIconDebug = { fg = C.peach },\n\t\tSnacksNotifierTitleDebug = { fg = C.peach, style = { \"italic\" } },\n\t\tSnacksNotifierBorderDebug = { fg = C.peach },\n\t\tSnacksNotifierFooterDebug = { link = \"DiagnosticHint\" },\n\t\tSnacksNotifierError = { fg = C.red },\n\t\tSnacksNotifierIconError = { fg = C.red },\n\t\tSnacksNotifierTitleError = { fg = C.red, style = { \"italic\" } },\n\t\tSnacksNotifierBorderError = { fg = C.red },\n\t\tSnacksNotifierFooterError = { link = \"DiagnosticError\" },\n\t\tSnacksNotifierTrace = { fg = C.rosewater },\n\t\tSnacksNotifierIconTrace = { fg = C.rosewater },\n\t\tSnacksNotifierTitleTrace = { fg = C.rosewater, style = { \"italic\" } },\n\t\tSnacksNotifierBorderTrace = { fg = C.rosewater },\n\t\tSnacksNotifierFooterTrace = { link = \"DiagnosticHint\" },\n\n\t\tSnacksDashboardNormal = { link = \"Normal\" },\n\t\tSnacksDashboardDesc = { fg = C.blue },\n\t\tSnacksDashboardFile = { fg = C.lavender },\n\t\tSnacksDashboardDir = { link = \"NonText\" },\n\t\tSnacksDashboardFooter = { fg = C.yellow, style = { \"italic\" } },\n\t\tSnacksDashboardHeader = { fg = C.blue },\n\t\tSnacksDashboardIcon = { fg = C.pink, bold = true },\n\t\tSnacksDashboardKey = { fg = C.peach },\n\t\tSnacksDashboardTerminal = { link = \"SnacksDashboardNormal\" },\n\t\tSnacksDashboardSpecial = { link = \"Special\" },\n\t\tSnacksDashboardTitle = { link = \"Title\" },\n\n\t\tSnacksIndent = { fg = C.surface0 },\n\t\tSnacksIndentScope = { fg = C[indent_scope_color] or C.overlay2 },\n\n\t\tSnacksPickerSelected = {\n\t\t\tfg = O.float.transparent and C.flamingo or C.text,\n\t\t\tbg = O.float.transparent and C.none or C.surface0,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tSnacksPickerMatch = { fg = C.blue },\n\n\t\tSnacksPicker = { link = \"NormalFloat\" },\n\t\tSnacksPickerBorder = { link = \"FloatBorder\" },\n\t\tSnacksPickerInputBorder = { link = \"SnacksPickerBorder\" },\n\t\tSnacksPickerInput = { link = \"NormalFloat\" },\n\t\tSnacksPickerPrompt = { fg = C.flamingo },\n\t}\n\n\tif O.float.solid then\n\t\thlgroups[\"SnacksPickerTitle\"] = {\n\t\t\tfg = C.crust,\n\t\t\tbg = C.mauve,\n\t\t}\n\t\thlgroups[\"SnacksPickerPreviewTitle\"] = {\n\t\t\tfg = C.crust,\n\t\t\tbg = C.green,\n\t\t}\n\t\thlgroups[\"SnacksPickerInputTitle\"] = {\n\t\t\tfg = C.crust,\n\t\t\tbg = C.red,\n\t\t}\n\t\thlgroups[\"SnacksPickerListTitle\"] = {\n\t\t\tfg = C.crust,\n\t\t\tbg = C.lavender,\n\t\t}\n\tend\n\n\treturn hlgroups\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/symbols_outline.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/simrat39/symbols-outline.nvim\"\n\nfunction M.get()\n\treturn {\n\t\t-- https://github.com/simrat39/symbols-outline.nvim\n\t\tFocusedSymbol = { fg = C.yellow, bg = C.none },\n\n\t\t-- https://github.com/hedyhli/outline.nvim\n\t\tOutlineCurrent = { link = \"FocusedSymbol\" },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/telekasten.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/nvim-telekasten/telekasten.nvim\"\n\nfunction M.get()\n\treturn {\n\t\ttkLink = { fg = C.blue },\n\t\ttkBrackets = { fg = C.pink },\n\t\ttkTag = { fg = C.sky },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/telescope.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/nvim-telescope/telescope.nvim\"\n\nfunction M.get()\n\tlocal hlgroups = {\n\t\tTelescopeBorder = { link = \"FloatBorder\" },\n\t\tTelescopeNormal = { link = \"NormalFloat\" },\n\t\tTelescopePreviewNormal = { link = \"TelescopeNormal\" },\n\t\tTelescopePromptNormal = { link = \"TelescopeNormal\" },\n\t\tTelescopeResultsNormal = { link = \"TelescopeNormal\" },\n\t\tTelescopeTitle = { link = \"FloatTitle\" },\n\t\tTelescopeSelectionCaret = { fg = C.flamingo, bg = C.surface0 },\n\t\tTelescopeSelection = {\n\t\t\tfg = C.flamingo,\n\t\t\tbg = C.surface0,\n\t\t\tstyle = { \"bold\" },\n\t\t},\n\t\tTelescopeMatching = { fg = C.blue },\n\t\tTelescopePromptPrefix = { fg = C.flamingo },\n\t}\n\n\tif O.float.solid then\n\t\thlgroups[\"TelescopePreviewTitle\"] = {\n\t\t\tfg = C.crust,\n\t\t\tbg = C.green,\n\t\t}\n\t\thlgroups[\"TelescopePromptTitle\"] = {\n\t\t\tfg = C.crust,\n\t\t\tbg = C.red,\n\t\t}\n\t\thlgroups[\"TelescopeResultsTitle\"] = {\n\t\t\tfg = C.crust,\n\t\t\tbg = C.lavender,\n\t\t}\n\tend\n\n\treturn hlgroups\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/treesitter_context.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/nvim-treesitter/nvim-treesitter-context\"\n\nfunction M.get()\n\treturn {\n\t\tTreesitterContext = {\n\t\t\tfg = C.text,\n\t\t\tbg = O.transparent_background and C.none or C.mantle,\n\t\t},\n\t\tTreesitterContextBottom = {\n\t\t\tsp = O.transparent_background and C.dim or C.surface0,\n\t\t\tstyle = { \"underline\" },\n\t\t},\n\t\tTreesitterContextLineNumber = O.transparent_background and {\n\t\t\tfg = C.rosewater,\n\t\t} or {\n\t\t\tfg = C.surface1,\n\t\t\tbg = C.mantle,\n\t\t},\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/ts_rainbow.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/HiPhish/nvim-ts-rainbow\"\n\nfunction M.get()\n\treturn {\n\t\trainbowcol1 = { fg = C.red },\n\t\trainbowcol2 = { fg = C.teal },\n\t\trainbowcol3 = { fg = C.yellow },\n\t\trainbowcol4 = { fg = C.blue },\n\t\trainbowcol5 = { fg = C.pink },\n\t\trainbowcol6 = { fg = C.flamingo },\n\t\trainbowcol7 = { fg = C.green },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/ts_rainbow2.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/HiPhish/nvim-ts-rainbow2\"\n\nfunction M.get()\n\treturn {\n\t\tTSRainbowRed = { fg = C.red },\n\t\tTSRainbowYellow = { fg = C.yellow },\n\t\tTSRainbowBlue = { fg = C.blue },\n\t\tTSRainbowOrange = { fg = C.peach },\n\t\tTSRainbowGreen = { fg = C.green },\n\t\tTSRainbowViolet = { fg = C.mauve },\n\t\tTSRainbowCyan = { fg = C.teal },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/ufo.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/kevinhwang91/nvim-ufo\"\n\nM.get = function()\n\treturn {\n\t\tUfoFoldedFg = { fg = C.lavender },\n\t\tUfoFoldedEllipsis = { fg = C.crust, bg = C.blue },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/vim_sneak.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/justinmk/vim-sneak\"\n\nfunction M.get()\n\treturn {\n\t\tSneak = { fg = C.overlay2, bg = C.pink },\n\t\tSneakScope = { bg = C.text },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/vimwiki.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/vimwiki/vimwiki\"\n\nfunction M.get()\n\treturn {\n\t\tVimwikiLink = { fg = C.sky, bg = C.none },\n\t\tVimwikiHeaderChar = { fg = C.grey, bg = C.none },\n\t\tVimwikiHR = { fg = C.yellow, bg = C.none },\n\t\tVimwikiList = { fg = C.peach, bg = C.none },\n\t\tVimwikiTag = { fg = C.peach, bg = C.none },\n\t\tVimwikiMarkers = { fg = C.subtext0, bg = C.none },\n\t\tVimwikiHeader1 = { fg = C.peach, bg = C.none, style = { \"bold\" } },\n\t\tVimwikiHeader2 = { fg = C.green, bg = C.none, style = { \"bold\" } },\n\t\tVimwikiHeader3 = { fg = C.blue, bg = C.none, style = { \"bold\" } },\n\t\tVimwikiHeader4 = { fg = C.sky, bg = C.none, style = { \"bold\" } },\n\t\tVimwikiHeader5 = { fg = C.yellow, bg = C.none, style = { \"bold\" } },\n\t\tVimwikiHeader6 = { fg = C.mauve, bg = C.none, style = { \"bold\" } },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/which_key.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/folke/which-key.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tWhichKey = { link = \"NormalFloat\" },\n\t\tWhichKeyBorder = { link = \"FloatBorder\" },\n\n\t\tWhichKeyGroup = { fg = C.blue },\n\t\tWhichKeySeparator = { fg = C.overlay0 },\n\t\tWhichKeyDesc = { fg = C.pink },\n\t\tWhichKeyValue = { fg = C.overlay0 },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/integrations/window_picker.lua",
    "content": "local M = {}\n\nM.url = \"https://github.com/s1n7ax/nvim-window-picker\"\n\nfunction M.get()\n\treturn {\n\t\tWindowPickerStatusLine = { fg = C.red, style = { \"bold\" } },\n\t\tWindowPickerStatusLineNC = { fg = C.red, style = { \"bold\" } },\n\t\tWindowPickerWinBar = { fg = C.red, style = { \"bold\" } },\n\t\tWindowPickerWinBarNC = { fg = C.red, style = { \"bold\" } },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/lsp.lua",
    "content": "local M = {}\n\nfunction M.get()\n\tlocal virtual_text = O.lsp_styles.virtual_text\n\tlocal underlines = O.lsp_styles.underlines\n\tlocal inlay_hints = O.lsp_styles.inlay_hints\n\n\tlocal error = C.red\n\tlocal warning = C.yellow\n\tlocal info = C.sky\n\tlocal hint = C.teal\n\tlocal ok = C.green\n\tlocal darkening_percentage = 0.095\n\n\treturn {\n\t\t-- These groups are for the native LSP client. Some other LSP clients may\n\t\t-- use these groups, or use their own. Consult your LSP client's\n\t\t-- documentation.\n\t\tLspReferenceText = { bg = C.surface1 }, -- used for highlighting \"text\" references\n\t\tLspReferenceRead = { bg = C.surface1 }, -- used for highlighting \"read\" references\n\t\tLspReferenceWrite = { bg = C.surface1 }, -- used for highlighting \"write\" references\n\t\t-- highlight diagnostics in numberline\n\n\t\tDiagnosticVirtualTextError = {\n\t\t\tbg = O.transparent_background and C.none or U.darken(error, darkening_percentage, C.base),\n\t\t\tfg = error,\n\t\t\tstyle = virtual_text.errors,\n\t\t}, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default\n\t\tDiagnosticVirtualTextWarn = {\n\t\t\tbg = O.transparent_background and C.none or U.darken(warning, darkening_percentage, C.base),\n\t\t\tfg = warning,\n\t\t\tstyle = virtual_text.warnings,\n\t\t}, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default\n\t\tDiagnosticVirtualTextInfo = {\n\t\t\tbg = O.transparent_background and C.none or U.darken(info, darkening_percentage, C.base),\n\t\t\tfg = info,\n\t\t\tstyle = virtual_text.information,\n\t\t}, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default\n\t\tDiagnosticVirtualTextHint = {\n\t\t\tbg = O.transparent_background and C.none or U.darken(hint, darkening_percentage, C.base),\n\t\t\tfg = hint,\n\t\t\tstyle = virtual_text.hints,\n\t\t}, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default\n\t\tDiagnosticVirtualTextOk = {\n\t\t\tbg = O.transparent_background and C.none or U.darken(hint, darkening_percentage, C.base),\n\t\t\tfg = ok,\n\t\t\tstyle = virtual_text.ok,\n\t\t}, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default\n\n\t\tDiagnosticError = { bg = C.none, fg = error, style = virtual_text.errors }, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default\n\t\tDiagnosticWarn = { bg = C.none, fg = warning, style = virtual_text.warnings }, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default\n\t\tDiagnosticInfo = { bg = C.none, fg = info, style = virtual_text.information }, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default\n\t\tDiagnosticHint = { bg = C.none, fg = hint, style = virtual_text.hints }, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default\n\t\tDiagnosticOk = { bg = C.none, fg = ok, style = virtual_text.ok }, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default\n\n\t\tDiagnosticUnderlineError = { style = underlines.errors, sp = error }, -- Used to underline \"Error\" diagnostics\n\t\tDiagnosticUnderlineWarn = { style = underlines.warnings, sp = warning }, -- Used to underline \"Warn\" diagnostics\n\t\tDiagnosticUnderlineInfo = { style = underlines.information, sp = info }, -- Used to underline \"Info\" diagnostics\n\t\tDiagnosticUnderlineHint = { style = underlines.hints, sp = hint }, -- Used to underline \"Hint\" diagnostics\n\t\tDiagnosticUnderlineOk = { style = underlines.ok, sp = ok }, -- Used to underline \"Ok\" diagnostics\n\n\t\tDiagnosticFloatingError = { fg = error }, -- Used to color \"Error\" diagnostic messages in diagnostics float\n\t\tDiagnosticFloatingWarn = { fg = warning }, -- Used to color \"Warn\" diagnostic messages in diagnostics float\n\t\tDiagnosticFloatingInfo = { fg = info }, -- Used to color \"Info\" diagnostic messages in diagnostics float\n\t\tDiagnosticFloatingHint = { fg = hint }, -- Used to color \"Hint\" diagnostic messages in diagnostics float\n\t\tDiagnosticFloatingOk = { fg = ok }, -- Used to color \"Ok\" diagnostic messages in diagnostics float\n\n\t\tDiagnosticSignError = { fg = error }, -- Used for \"Error\" signs in sign column\n\t\tDiagnosticSignWarn = { fg = warning }, -- Used for \"Warn\" signs in sign column\n\t\tDiagnosticSignInfo = { fg = info }, -- Used for \"Info\" signs in sign column\n\t\tDiagnosticSignHint = { fg = hint }, -- Used for \"Hint\" signs in sign column\n\t\tDiagnosticSignOk = { fg = ok }, -- Used for \"Ok\" signs in sign column\n\n\t\tLspDiagnosticsDefaultError = { fg = error }, -- Used as the mantle highlight group. Other LspDiagnostic highlights link to this by default (except Underline)\n\t\tLspDiagnosticsDefaultWarning = { fg = warning }, -- Used as the mantle highlight group. Other LspDiagnostic highlights link to this by default (except Underline)\n\t\tLspDiagnosticsDefaultInformation = { fg = info }, -- Used as the mantle highlight group. Other LspDiagnostic highlights link to this by default (except Underline)\n\t\tLspDiagnosticsDefaultHint = { fg = hint }, -- Used as the mantle highlight group. Other LspDiagnostic highlights link to this by default (except Underline)\n\t\tLspSignatureActiveParameter = { bg = C.surface0, style = { \"bold\" } },\n\t\t-- LspDiagnosticsFloatingError         = { }, -- Used to color \"Error\" diagnostic messages in diagnostics float\n\t\t-- LspDiagnosticsFloatingWarning       = { }, -- Used to color \"Warning\" diagnostic messages in diagnostics float\n\t\t-- LspDiagnosticsFloatingInformation   = { }, -- Used to color \"Information\" diagnostic messages in diagnostics float\n\t\t-- LspDiagnosticsFloatingHint          = { }, -- Used to color \"Hint\" diagnostic messages in diagnostics float\n\n\t\tLspDiagnosticsError = { fg = error },\n\t\tLspDiagnosticsWarning = { fg = warning },\n\t\tLspDiagnosticsInformation = { fg = info },\n\t\tLspDiagnosticsHint = { fg = hint },\n\t\tLspDiagnosticsVirtualTextError = { fg = error, style = virtual_text.errors }, -- Used for \"Error\" diagnostic virtual text\n\t\tLspDiagnosticsVirtualTextWarning = { fg = warning, style = virtual_text.warnings }, -- Used for \"Warning\" diagnostic virtual text\n\t\tLspDiagnosticsVirtualTextInformation = { fg = info, style = virtual_text.warnings }, -- Used for \"Information\" diagnostic virtual text\n\t\tLspDiagnosticsVirtualTextHint = { fg = hint, style = virtual_text.hints }, -- Used for \"Hint\" diagnostic virtual text\n\t\tLspDiagnosticsUnderlineError = { style = underlines.errors, sp = error }, -- Used to underline \"Error\" diagnostics\n\t\tLspDiagnosticsUnderlineWarning = { style = underlines.warnings, sp = warning }, -- Used to underline \"Warning\" diagnostics\n\t\tLspDiagnosticsUnderlineInformation = { style = underlines.information, sp = info }, -- Used to underline \"Information\" diagnostics\n\t\tLspDiagnosticsUnderlineHint = { style = underlines.hints, sp = hint }, -- Used to underline \"Hint\" diagnostics\n\t\tLspCodeLens = { fg = C.overlay0 }, -- virtual text of the codelens\n\t\tLspCodeLensSeparator = { link = \"LspCodeLens\" }, -- virtual text of the codelens separators\n\t\tLspInlayHint = {\n\t\t\t-- fg of `Comment`\n\t\t\tfg = C.overlay0,\n\t\t\t-- bg of `CursorLine`\n\t\t\tbg = (O.transparent_background or not inlay_hints.background) and C.none\n\t\t\t\tor U.vary_color({ latte = U.lighten(C.mantle, 0.70, C.base) }, U.darken(C.surface0, 0.64, C.base)),\n\t\t}, -- virtual text of the inlay hints\n\t\tLspInfoBorder = { link = \"FloatBorder\" }, -- LspInfo border\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/semantic_tokens.lua",
    "content": "local M = {}\n\nfunction M.get()\n\tif vim.treesitter.highlighter.hl_map then\n\t\tvim.notify_once(\n\t\t\t[[Catppuccin (info):\nsemantic_tokens integration requires neovim 0.8\nIf you want to stay on nvim 0.7, pin catppuccin tag to v0.2.4 and nvim-treesitter commit to 4cccb6f494eb255b32a290d37c35ca12584c74d0.\n]],\n\t\t\tvim.log.levels.INFO\n\t\t)\n\t\treturn {}\n\tend\n\treturn {\n\t\t-- https://neovim.io/doc/user/lsp.html#lsp-semantic-highlight\n\t\t-- Most semantic tokens (@lsp.type.<...>) are no longer defined in this file, as Neovim links to already themed Tree-sitter captures by default.\n\n\t\t-- lsp's are able to detect enum members where treesitter often cannot\n\t\t[\"@lsp.type.enumMember\"] = { fg = C.teal },\n\t\t-- we assume treesitter can already handle this\n\t\t-- - treesitter can detect variables in buffers\n\t\t-- - lsp does not need responsibility for this, in fact it can be less\n\t\t--   accurate in cases\n\t\t[\"@lsp.type.variable\"] = {},\n\n\t\t-- in cases where the lsp can be more specific than treesitter, we should\n\t\t-- allow lsp to override treesitter\n\t\t[\"@lsp.typemod.function.defaultLibrary\"] = { link = \"@function.builtin\" },\n\t\t[\"@lsp.typemod.function.builtin\"] = { link = \"@function.builtin\" },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/syntax.lua",
    "content": "local M = {}\n\nfunction M.get()\n\treturn {\n\t\tComment = { fg = C.overlay2, style = O.styles.comments }, -- just comments\n\t\tSpecialComment = { link = \"Special\" }, -- special things inside a comment\n\t\tConstant = { fg = C.peach }, -- (preferred) any constant\n\t\tString = { fg = C.green, style = O.styles.strings or {} }, -- a string constant: \"this is a string\"\n\t\tCharacter = { fg = C.teal }, --  a character constant: 'c', '\\n'\n\t\tNumber = { fg = C.peach, style = O.styles.numbers or {} }, --   a number constant: 234, 0xff\n\t\tFloat = { link = \"Number\" }, --    a floating point constant: 2.3e10\n\t\tBoolean = { fg = C.peach, style = O.styles.booleans or {} }, --  a boolean constant: TRUE, false\n\t\tIdentifier = { fg = C.flamingo, style = O.styles.variables or {} }, -- (preferred) any variable name\n\t\tFunction = { fg = C.blue, style = O.styles.functions or {} }, -- function name (also: methods for classes)\n\t\tStatement = { fg = C.mauve }, -- (preferred) any statement\n\t\tConditional = { fg = C.mauve, style = O.styles.conditionals or {} }, --  if, then, else, endif, switch, etc.\n\t\tRepeat = { fg = C.mauve, style = O.styles.loops or {} }, --   for, do, while, etc.\n\t\tLabel = { fg = C.sapphire }, --    case, default, etc.\n\t\tOperator = { fg = C.sky, style = O.styles.operators or {} }, -- \"sizeof\", \"+\", \"*\", etc.\n\t\tKeyword = { fg = C.mauve, style = O.styles.keywords or {} }, --  any other keyword\n\t\tException = { fg = C.mauve, style = O.styles.keywords or {} }, --  try, catch, throw\n\n\t\tPreProc = { fg = C.pink }, -- (preferred) generic Preprocessor\n\t\tInclude = { fg = C.mauve, style = O.styles.keywords or {} }, --  preprocessor #include\n\t\tDefine = { link = \"PreProc\" }, -- preprocessor #define\n\t\tMacro = { fg = C.mauve }, -- same as Define\n\t\tPreCondit = { link = \"PreProc\" }, -- preprocessor #if, #else, #endif, etc.\n\n\t\tStorageClass = { fg = C.yellow }, -- static, register, volatile, etc.\n\t\tStructure = { fg = C.yellow }, --  struct, union, enum, etc.\n\t\tSpecial = { fg = C.pink }, -- (preferred) any special symbol\n\t\tType = { fg = C.yellow, style = O.styles.types or {} }, -- (preferred) int, long, char, etc.\n\t\tTypedef = { link = \"Type\" }, --  A typedef\n\t\tSpecialChar = { link = \"Special\" }, -- special character in a constant\n\t\tTag = { fg = C.lavender, style = { \"bold\" } }, -- you can use CTRL-] on this\n\t\tDelimiter = { fg = C.overlay2 }, -- character that needs attention\n\t\tDebug = { link = \"Special\" }, -- debugging statements\n\n\t\tUnderlined = { style = { \"underline\" } }, -- (preferred) text that stands out, HTML links\n\t\tBold = { style = { \"bold\" } },\n\t\tItalic = { style = { \"italic\" } },\n\t\t-- (\"Ignore\", below, may be invisible...)\n\t\t-- Ignore = { }, -- (preferred) left blank, hidden  |hl-Ignore|\n\n\t\tError = { fg = C.red }, -- (preferred) any erroneous construct\n\t\tTodo = { bg = C.flamingo, fg = C.base, style = { \"bold\" } }, -- (preferred) anything that needs extra attention; mostly the keywords TODO FIXME and XXX\n\t\tqfLineNr = { fg = C.yellow },\n\t\tqfFileName = { fg = C.blue },\n\t\thtmlH1 = { fg = C.pink, style = { \"bold\" } },\n\t\thtmlH2 = { fg = C.blue, style = { \"bold\" } },\n\t\t-- mkdHeading = { fg = C.peach, style = { \"bold\" } },\n\t\t-- mkdCode = { bg = C.terminal_black, fg = C.text },\n\t\tmkdCodeDelimiter = { bg = C.base, fg = C.text },\n\t\tmkdCodeStart = { fg = C.flamingo, style = { \"bold\" } },\n\t\tmkdCodeEnd = { fg = C.flamingo, style = { \"bold\" } },\n\t\t-- mkdLink = { fg = C.blue, style = { \"underline\" } },\n\n\t\t-- debugging\n\t\tdebugPC = { bg = O.transparent_background and C.none or C.crust }, -- used for highlighting the current line in terminal-debug\n\t\tdebugBreakpoint = { bg = C.base, fg = C.overlay0 }, -- used for breakpoint colors in terminal-debug\n\t\t-- illuminate\n\t\tilluminatedWord = { bg = C.surface1 },\n\t\tilluminatedCurWord = { bg = C.surface1 },\n\t\t-- diff\n\t\tAdded = { fg = C.green },\n\t\tChanged = { fg = C.blue },\n\t\tdiffAdded = { fg = C.green },\n\t\tdiffRemoved = { fg = C.red },\n\t\tdiffChanged = { fg = C.blue },\n\t\tdiffOldFile = { fg = C.yellow },\n\t\tdiffNewFile = { fg = C.peach },\n\t\tdiffFile = { fg = C.blue },\n\t\tdiffLine = { fg = C.overlay0 },\n\t\tdiffIndexLine = { fg = C.teal },\n\t\tDiffAdd = { bg = U.darken(C.green, 0.18, C.base) }, -- diff mode: Added line |diff.txt|\n\t\tDiffChange = { bg = U.darken(C.blue, 0.07, C.base) }, -- diff mode: Changed line |diff.txt|\n\t\tDiffDelete = { bg = U.darken(C.red, 0.18, C.base) }, -- diff mode: Deleted line |diff.txt|\n\t\tDiffText = { bg = U.darken(C.blue, 0.30, C.base) }, -- diff mode: Changed text within a changed line |diff.txt|\n\t\t-- NeoVim\n\t\thealthError = { fg = C.red },\n\t\thealthSuccess = { fg = C.teal },\n\t\thealthWarning = { fg = C.yellow },\n\t\t-- misc\n\n\t\t-- glyphs\n\t\tGlyphPalette1 = { fg = C.red },\n\t\tGlyphPalette2 = { fg = C.teal },\n\t\tGlyphPalette3 = { fg = C.yellow },\n\t\tGlyphPalette4 = { fg = C.blue },\n\t\tGlyphPalette6 = { fg = C.teal },\n\t\tGlyphPalette7 = { fg = C.text },\n\t\tGlyphPalette9 = { fg = C.red },\n\n\t\t-- rainbow\n\t\trainbow1 = { fg = C.red },\n\t\trainbow2 = { fg = C.peach },\n\t\trainbow3 = { fg = C.yellow },\n\t\trainbow4 = { fg = C.green },\n\t\trainbow5 = { fg = C.sapphire },\n\t\trainbow6 = { fg = C.lavender },\n\n\t\t-- csv\n\t\tcsvCol0 = { fg = C.red },\n\t\tcsvCol1 = { fg = C.peach },\n\t\tcsvCol2 = { fg = C.yellow },\n\t\tcsvCol3 = { fg = C.green },\n\t\tcsvCol4 = { fg = C.sky },\n\t\tcsvCol5 = { fg = C.blue },\n\t\tcsvCol6 = { fg = C.lavender },\n\t\tcsvCol7 = { fg = C.mauve },\n\t\tcsvCol8 = { fg = C.pink },\n\n\t\t-- markdown\n\t\tmarkdownHeadingDelimiter = { fg = C.peach, style = { \"bold\" } },\n\t\tmarkdownCode = { fg = C.flamingo },\n\t\tmarkdownCodeBlock = { fg = C.flamingo },\n\t\tmarkdownLinkText = { fg = C.blue, style = { \"underline\" } },\n\t\tmarkdownH1 = { link = \"rainbow1\" },\n\t\tmarkdownH2 = { link = \"rainbow2\" },\n\t\tmarkdownH3 = { link = \"rainbow3\" },\n\t\tmarkdownH4 = { link = \"rainbow4\" },\n\t\tmarkdownH5 = { link = \"rainbow5\" },\n\t\tmarkdownH6 = { link = \"rainbow6\" },\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/terminal.lua",
    "content": "local M = {}\n\nfunction M.get()\n\treturn {\n\t\tterminal_color_0 = C.overlay0,\n\t\tterminal_color_8 = C.overlay1,\n\n\t\tterminal_color_1 = C.red,\n\t\tterminal_color_9 = C.red,\n\n\t\tterminal_color_2 = C.green,\n\t\tterminal_color_10 = C.green,\n\n\t\tterminal_color_3 = C.yellow,\n\t\tterminal_color_11 = C.yellow,\n\n\t\tterminal_color_4 = C.blue,\n\t\tterminal_color_12 = C.blue,\n\n\t\tterminal_color_5 = C.pink,\n\t\tterminal_color_13 = C.pink,\n\n\t\tterminal_color_6 = C.sky,\n\t\tterminal_color_14 = C.sky,\n\n\t\tterminal_color_7 = C.text,\n\t\tterminal_color_15 = C.text,\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/groups/treesitter.lua",
    "content": "local M = {}\n\nfunction M.get()\n\tif vim.treesitter.highlighter.hl_map then\n\t\tvim.notify_once(\n\t\t\t[[Catppuccin (info):\nnvim-treesitter integration requires neovim 0.8\nIf you want to stay on nvim 0.7, pin catppuccin tag to v0.2.4 and nvim-treesitter commit to 4cccb6f494eb255b32a290d37c35ca12584c74d0.\n]],\n\t\t\tvim.log.levels.INFO\n\t\t)\n\t\treturn {}\n\tend\n\n\tlocal colors = { -- Reference: https://github.com/nvim-treesitter/nvim-treesitter/blob/master/CONTRIBUTING.md\n\t\t-- Identifiers\n\t\t[\"@variable\"] = { fg = C.text, style = O.styles.variables or {} }, -- Any variable name that does not have another highlight.\n\t\t[\"@variable.builtin\"] = { fg = C.red, style = O.styles.properties or {} }, -- Variable names that are defined by the languages, like this or self.\n\t\t[\"@variable.parameter\"] = { fg = C.maroon, style = O.styles.variables or {} }, -- For parameters of a function.\n\t\t[\"@variable.member\"] = { fg = C.lavender }, -- For fields.\n\n\t\t[\"@constant\"] = { link = \"Constant\" }, -- For constants\n\t\t[\"@constant.builtin\"] = { fg = C.peach, style = O.styles.keywords or {} }, -- For constant that are built in the language: nil in Lua.\n\t\t[\"@constant.macro\"] = { link = \"Macro\" }, -- For constants that are defined by macros: NULL in C.\n\n\t\t[\"@module\"] = { fg = C.yellow, style = O.styles.miscs or { \"italic\" } }, -- For identifiers referring to modules and namespaces.\n\t\t[\"@label\"] = { link = \"Label\" }, -- For labels: label: in C and :label: in Lua.\n\n\t\t-- Literals\n\t\t[\"@string\"] = { link = \"String\" }, -- For strings.\n\t\t[\"@string.documentation\"] = { fg = C.teal, style = O.styles.strings or {} }, -- For strings documenting code (e.g. Python docstrings).\n\t\t[\"@string.regexp\"] = { fg = C.pink, style = O.styles.strings or {} }, -- For regexes.\n\t\t[\"@string.escape\"] = { fg = C.pink, style = O.styles.strings or {} }, -- For escape characters within a string.\n\t\t[\"@string.special\"] = { link = \"Special\" }, -- other special strings (e.g. dates)\n\t\t[\"@string.special.path\"] = { link = \"Special\" }, -- filenames\n\t\t[\"@string.special.symbol\"] = { fg = C.flamingo }, -- symbols or atoms\n\t\t[\"@string.special.url\"] = { fg = C.blue, style = { \"italic\", \"underline\" } }, -- urls, links and emails\n\t\t[\"@punctuation.delimiter.regex\"] = { link = \"@string.regexp\" },\n\n\t\t[\"@character\"] = { link = \"Character\" }, -- character literals\n\t\t[\"@character.special\"] = { link = \"SpecialChar\" }, -- special characters (e.g. wildcards)\n\n\t\t[\"@boolean\"] = { link = \"Boolean\" }, -- For booleans.\n\t\t[\"@number\"] = { link = \"Number\" }, -- For all numbers\n\t\t[\"@number.float\"] = { link = \"Float\" }, -- For floats.\n\n\t\t-- Types\n\t\t[\"@type\"] = { link = \"Type\" }, -- For types.\n\t\t[\"@type.builtin\"] = { fg = C.mauve, style = O.styles.types or {} }, -- For builtin types.\n\t\t[\"@type.definition\"] = { link = \"Type\" }, -- type definitions (e.g. `typedef` in C)\n\n\t\t[\"@attribute\"] = { link = \"Constant\" }, -- attribute annotations (e.g. Python decorators)\n\t\t[\"@property\"] = { fg = C.lavender, style = O.styles.properties or {} }, -- For fields, like accessing `bar` property on `foo.bar`. Overriden later for data languages and CSS.\n\n\t\t-- Functions\n\t\t[\"@function\"] = { link = \"Function\" }, -- For function (calls and definitions).\n\t\t[\"@function.builtin\"] = { fg = C.peach, style = O.styles.functions or {} }, -- For builtin functions: table.insert in Lua.\n\t\t[\"@function.call\"] = { link = \"Function\" }, -- function calls\n\t\t[\"@function.macro\"] = { fg = C.pink, style = O.styles.functions or {} }, -- For macro defined functions (calls and definitions): each macro_rules in Rust.\n\n\t\t[\"@function.method\"] = { link = \"Function\" }, -- For method definitions.\n\t\t[\"@function.method.call\"] = { link = \"Function\" }, -- For method calls.\n\n\t\t[\"@constructor\"] = { fg = C.yellow }, -- For constructor calls and definitions: = { } in Lua, and Java constructors.\n\t\t[\"@operator\"] = { link = \"Operator\" }, -- For any operator: +, but also -> and * in C.\n\n\t\t-- Keywords\n\t\t[\"@keyword\"] = { link = \"Keyword\" }, -- For keywords that don't fall in previous categories.\n\t\t[\"@keyword.modifier\"] = { link = \"Keyword\" }, -- For keywords modifying other constructs (e.g. `const`, `static`, `public`)\n\t\t[\"@keyword.type\"] = { link = \"Keyword\" }, -- For keywords describing composite types (e.g. `struct`, `enum`)\n\t\t[\"@keyword.coroutine\"] = { link = \"Keyword\" }, -- For keywords related to coroutines (e.g. `go` in Go, `async/await` in Python)\n\t\t[\"@keyword.function\"] = { fg = C.mauve, style = O.styles.keywords or {} }, -- For keywords used to define a function.\n\t\t[\"@keyword.operator\"] = { fg = C.mauve, style = O.styles.keywords or {} }, -- For new keyword operator\n\t\t[\"@keyword.import\"] = { link = \"Include\" }, -- For includes: #include in C, use or extern crate in Rust, or require in Lua.\n\t\t[\"@keyword.repeat\"] = { link = \"Repeat\" }, -- For keywords related to loops.\n\t\t[\"@keyword.return\"] = { fg = C.mauve, style = O.styles.keywords or {} },\n\t\t[\"@keyword.debug\"] = { link = \"Exception\" }, -- For keywords related to debugging\n\t\t[\"@keyword.exception\"] = { link = \"Exception\" }, -- For exception related keywords.\n\n\t\t[\"@keyword.conditional\"] = { link = \"Conditional\" }, -- For keywords related to conditionnals.\n\t\t[\"@keyword.conditional.ternary\"] = { link = \"Operator\" }, -- For ternary operators (e.g. `?` / `:`)\n\n\t\t[\"@keyword.directive\"] = { link = \"PreProc\" }, -- various preprocessor directives & shebangs\n\t\t[\"@keyword.directive.define\"] = { link = \"Define\" }, -- preprocessor definition directives\n\t\t-- JS & derivative\n\t\t[\"@keyword.export\"] = { fg = C.mauve, style = O.styles.keywords },\n\n\t\t-- Punctuation\n\t\t[\"@punctuation.delimiter\"] = { link = \"Delimiter\" }, -- For delimiters (e.g. `;` / `.` / `,`).\n\t\t[\"@punctuation.bracket\"] = { fg = C.overlay2 }, -- For brackets and parenthesis.\n\t\t[\"@punctuation.special\"] = { link = \"Special\" }, -- For special punctuation that does not fall in the categories before (e.g. `{}` in string interpolation).\n\n\t\t-- Comment\n\t\t[\"@comment\"] = { link = \"Comment\" },\n\t\t[\"@comment.documentation\"] = { link = \"Comment\" }, -- For comments documenting code\n\n\t\t[\"@comment.error\"] = { fg = C.base, bg = C.red },\n\t\t[\"@comment.warning\"] = { fg = C.base, bg = C.yellow },\n\t\t[\"@comment.hint\"] = { fg = C.base, bg = C.blue },\n\t\t[\"@comment.todo\"] = { fg = C.base, bg = C.flamingo },\n\t\t[\"@comment.note\"] = { fg = C.base, bg = C.rosewater },\n\n\t\t-- Markup\n\t\t[\"@markup\"] = { fg = C.text }, -- For strings considerated text in a markup language.\n\t\t[\"@markup.strong\"] = { fg = C.red, style = { \"bold\" } }, -- bold\n\t\t[\"@markup.italic\"] = { fg = C.red, style = { \"italic\" } }, -- italic\n\t\t[\"@markup.strikethrough\"] = { fg = C.text, style = { \"strikethrough\" } }, -- strikethrough text\n\t\t[\"@markup.underline\"] = { link = \"Underlined\" }, -- underlined text\n\n\t\t[\"@markup.heading\"] = { fg = C.blue }, -- titles like: # Example\n\t\t[\"@markup.heading.markdown\"] = { style = { \"bold\" } }, -- bold headings in markdown, but not in HTML or other markup\n\n\t\t[\"@markup.math\"] = { fg = C.blue }, -- math environments (e.g. `$ ... $` in LaTeX)\n\t\t[\"@markup.quote\"] = { fg = C.pink }, -- block quotes\n\t\t[\"@markup.environment\"] = { fg = C.pink }, -- text environments of markup languages\n\t\t[\"@markup.environment.name\"] = { fg = C.blue }, -- text indicating the type of an environment\n\n\t\t[\"@markup.link\"] = { fg = C.lavender }, -- text references, footnotes, citations, etc.\n\t\t[\"@markup.link.label\"] = { fg = C.lavender }, -- link, reference descriptions\n\t\t[\"@markup.link.url\"] = { fg = C.blue, style = { \"italic\", \"underline\" } }, -- urls, links and emails\n\n\t\t[\"@markup.raw\"] = { fg = C.green }, -- used for inline code in markdown and for doc in python (\"\"\")\n\n\t\t[\"@markup.list\"] = { fg = C.teal },\n\t\t[\"@markup.list.checked\"] = { fg = C.green }, -- todo notes\n\t\t[\"@markup.list.unchecked\"] = { fg = C.overlay1 }, -- todo notes\n\n\t\t-- Diff\n\t\t[\"@diff.plus\"] = { link = \"diffAdded\" }, -- added text (for diff files)\n\t\t[\"@diff.minus\"] = { link = \"diffRemoved\" }, -- deleted text (for diff files)\n\t\t[\"@diff.delta\"] = { link = \"diffChanged\" }, -- deleted text (for diff files)\n\n\t\t-- Tags\n\t\t[\"@tag\"] = { fg = C.blue }, -- Tags like HTML tag names.\n\t\t[\"@tag.builtin\"] = { fg = C.blue }, -- JSX tag names.\n\t\t[\"@tag.attribute\"] = { fg = C.yellow, style = O.styles.miscs or { \"italic\" } }, -- XML/HTML attributes (foo in foo=\"bar\").\n\t\t[\"@tag.delimiter\"] = { fg = C.teal }, -- Tag delimiter like < > /\n\n\t\t-- Misc\n\t\t[\"@error\"] = { link = \"Error\" },\n\n\t\t-- Language specific:\n\n\t\t-- Bash\n\t\t[\"@function.builtin.bash\"] = { fg = C.red, style = O.styles.miscs or { \"italic\" } },\n\t\t[\"@variable.parameter.bash\"] = { fg = C.green },\n\n\t\t-- markdown\n\t\t[\"@markup.heading.1.markdown\"] = { link = \"rainbow1\" },\n\t\t[\"@markup.heading.2.markdown\"] = { link = \"rainbow2\" },\n\t\t[\"@markup.heading.3.markdown\"] = { link = \"rainbow3\" },\n\t\t[\"@markup.heading.4.markdown\"] = { link = \"rainbow4\" },\n\t\t[\"@markup.heading.5.markdown\"] = { link = \"rainbow5\" },\n\t\t[\"@markup.heading.6.markdown\"] = { link = \"rainbow6\" },\n\n\t\t-- html\n\t\t[\"@markup.heading.html\"] = { link = \"@markup\" },\n\t\t[\"@markup.heading.1.html\"] = { link = \"@markup\" },\n\t\t[\"@markup.heading.2.html\"] = { link = \"@markup\" },\n\t\t[\"@markup.heading.3.html\"] = { link = \"@markup\" },\n\t\t[\"@markup.heading.4.html\"] = { link = \"@markup\" },\n\t\t[\"@markup.heading.5.html\"] = { link = \"@markup\" },\n\t\t[\"@markup.heading.6.html\"] = { link = \"@markup\" },\n\n\t\t-- Java\n\t\t[\"@constant.java\"] = { fg = C.teal },\n\n\t\t-- CSS\n\t\t[\"@property.css\"] = { fg = C.blue },\n\t\t[\"@property.scss\"] = { fg = C.blue },\n\t\t[\"@property.id.css\"] = { fg = C.yellow },\n\t\t[\"@property.class.css\"] = { fg = C.yellow },\n\t\t[\"@type.css\"] = { fg = C.lavender },\n\t\t[\"@type.tag.css\"] = { fg = C.blue },\n\t\t[\"@string.plain.css\"] = { fg = C.text },\n\t\t[\"@number.css\"] = { fg = C.peach },\n\t\t[\"@keyword.directive.css\"] = { link = \"Keyword\" }, -- CSS at-rules: https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule.\n\n\t\t-- HTML\n\t\t[\"@string.special.url.html\"] = { fg = C.green }, -- Links in href, src attributes.\n\t\t[\"@markup.link.label.html\"] = { fg = C.text }, -- Text between <a></a> tags.\n\t\t[\"@character.special.html\"] = { fg = C.red }, -- Symbols such as &nbsp;.\n\n\t\t-- Lua\n\t\t[\"@constructor.lua\"] = { link = \"@punctuation.bracket\" }, -- For constructor calls and definitions: = { } in Lua.\n\n\t\t-- Python\n\t\t[\"@constructor.python\"] = { fg = C.sky }, -- __init__(), __new__().\n\n\t\t-- YAML\n\t\t[\"@label.yaml\"] = { fg = C.yellow }, -- Anchor and alias names.\n\n\t\t-- Ruby\n\t\t[\"@string.special.symbol.ruby\"] = { fg = C.flamingo },\n\n\t\t-- PHP\n\t\t[\"@function.method.php\"] = { link = \"Function\" },\n\t\t[\"@function.method.call.php\"] = { link = \"Function\" },\n\n\t\t-- C/CPP\n\t\t[\"@keyword.import.c\"] = { fg = C.yellow },\n\t\t[\"@keyword.import.cpp\"] = { fg = C.yellow },\n\n\t\t-- C#\n\t\t[\"@attribute.c_sharp\"] = { fg = C.yellow },\n\n\t\t-- gitcommit\n\t\t[\"@comment.warning.gitcommit\"] = { fg = C.yellow },\n\n\t\t-- gitignore\n\t\t[\"@string.special.path.gitignore\"] = { fg = C.text },\n\n\t\t-- Misc\n\t\tgitcommitSummary = { fg = C.rosewater, style = O.styles.miscs or { \"italic\" } },\n\t\tzshKSHFunction = { link = \"Function\" },\n\t}\n\n\t-- Legacy highlights\n\tcolors[\"@parameter\"] = colors[\"@variable.parameter\"]\n\tcolors[\"@field\"] = colors[\"@variable.member\"]\n\tcolors[\"@namespace\"] = colors[\"@module\"]\n\tcolors[\"@float\"] = colors[\"@number.float\"]\n\tcolors[\"@symbol\"] = colors[\"@string.special.symbol\"]\n\tcolors[\"@string.regex\"] = colors[\"@string.regexp\"]\n\n\tcolors[\"@text\"] = colors[\"@markup\"]\n\tcolors[\"@text.strong\"] = colors[\"@markup.strong\"]\n\tcolors[\"@text.emphasis\"] = colors[\"@markup.italic\"]\n\tcolors[\"@text.underline\"] = colors[\"@markup.underline\"]\n\tcolors[\"@text.strike\"] = colors[\"@markup.strikethrough\"]\n\tcolors[\"@text.uri\"] = colors[\"@markup.link.url\"]\n\tcolors[\"@text.math\"] = colors[\"@markup.math\"]\n\tcolors[\"@text.environment\"] = colors[\"@markup.environment\"]\n\tcolors[\"@text.environment.name\"] = colors[\"@markup.environment.name\"]\n\n\tcolors[\"@text.title\"] = colors[\"@markup.heading\"]\n\tcolors[\"@text.literal\"] = colors[\"@markup.raw\"]\n\tcolors[\"@text.reference\"] = colors[\"@markup.link\"]\n\n\tcolors[\"@text.todo.checked\"] = colors[\"@markup.list.checked\"]\n\tcolors[\"@text.todo.unchecked\"] = colors[\"@markup.list.unchecked\"]\n\n\tcolors[\"@comment.note\"] = colors[\"@comment.hint\"]\n\n\t-- @text.todo is now for todo comments, not todo notes like in markdown\n\tcolors[\"@text.todo\"] = colors[\"@comment.todo\"]\n\tcolors[\"@text.warning\"] = colors[\"@comment.warning\"]\n\tcolors[\"@text.note\"] = colors[\"@comment.note\"]\n\tcolors[\"@text.danger\"] = colors[\"@comment.error\"]\n\n\t-- @text.uri is now\n\t-- > @markup.link.url in markup links\n\t-- > @string.special.url outside of markup\n\tcolors[\"@text.uri\"] = colors[\"@markup.link.uri\"]\n\n\tcolors[\"@method\"] = colors[\"@function.method\"]\n\tcolors[\"@method.call\"] = colors[\"@function.method.call\"]\n\n\tcolors[\"@text.diff.add\"] = colors[\"@diff.plus\"]\n\tcolors[\"@text.diff.delete\"] = colors[\"@diff.minus\"]\n\n\tcolors[\"@type.qualifier\"] = colors[\"@keyword.modifier\"]\n\tcolors[\"@keyword.storage\"] = colors[\"@keyword.modifier\"]\n\tcolors[\"@define\"] = colors[\"@keyword.directive.define\"]\n\tcolors[\"@preproc\"] = colors[\"@keyword.directive\"]\n\tcolors[\"@storageclass\"] = colors[\"@keyword.storage\"]\n\tcolors[\"@conditional\"] = colors[\"@keyword.conditional\"]\n\tcolors[\"@exception\"] = colors[\"@keyword.exception\"]\n\tcolors[\"@include\"] = colors[\"@keyword.import\"]\n\tcolors[\"@repeat\"] = colors[\"@keyword.repeat\"]\n\n\tcolors[\"@symbol.ruby\"] = colors[\"@string.special.symbol.ruby\"]\n\n\tcolors[\"@variable.member.yaml\"] = colors[\"@field.yaml\"]\n\n\tcolors[\"@text.title.1.markdown\"] = colors[\"@markup.heading.1.markdown\"]\n\tcolors[\"@text.title.2.markdown\"] = colors[\"@markup.heading.2.markdown\"]\n\tcolors[\"@text.title.3.markdown\"] = colors[\"@markup.heading.3.markdown\"]\n\tcolors[\"@text.title.4.markdown\"] = colors[\"@markup.heading.4.markdown\"]\n\tcolors[\"@text.title.5.markdown\"] = colors[\"@markup.heading.5.markdown\"]\n\tcolors[\"@text.title.6.markdown\"] = colors[\"@markup.heading.6.markdown\"]\n\n\tcolors[\"@method.php\"] = colors[\"@function.method.php\"]\n\tcolors[\"@method.call.php\"] = colors[\"@function.method.call.php\"]\n\n\treturn colors\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/init.lua",
    "content": "---@type Catppuccin\nlocal M = {\n\tdefault_options = {\n\t\tflavour = \"auto\",\n\t\tbackground = {\n\t\t\tlight = \"latte\",\n\t\t\tdark = \"mocha\",\n\t\t},\n\t\tcompile_path = vim.fn.stdpath \"cache\" .. \"/catppuccin\",\n\t\ttransparent_background = false,\n\t\tfloat = {\n\t\t\ttransparent = false,\n\t\t\tsolid = false,\n\t\t},\n\t\tshow_end_of_buffer = false,\n\t\tterm_colors = false,\n\t\tkitty = vim.env.KITTY_WINDOW_ID and true or false,\n\t\tdim_inactive = {\n\t\t\tenabled = false,\n\t\t\tshade = \"dark\",\n\t\t\tpercentage = 0.15,\n\t\t},\n\t\tno_italic = false,\n\t\tno_bold = false,\n\t\tno_underline = false,\n\t\tstyles = {\n\t\t\tcomments = { \"italic\" },\n\t\t\tconditionals = { \"italic\" },\n\t\t\tloops = {},\n\t\t\tfunctions = {},\n\t\t\tkeywords = {},\n\t\t\tstrings = {},\n\t\t\tvariables = {},\n\t\t\tnumbers = {},\n\t\t\tbooleans = {},\n\t\t\tproperties = {},\n\t\t\ttypes = {},\n\t\t\toperators = {},\n\t\t},\n\t\tlsp_styles = {\n\t\t\tvirtual_text = {\n\t\t\t\terrors = { \"italic\" },\n\t\t\t\thints = { \"italic\" },\n\t\t\t\twarnings = { \"italic\" },\n\t\t\t\tinformation = { \"italic\" },\n\t\t\t\tok = { \"italic\" },\n\t\t\t},\n\t\t\tunderlines = {\n\t\t\t\terrors = { \"underline\" },\n\t\t\t\thints = { \"underline\" },\n\t\t\t\twarnings = { \"underline\" },\n\t\t\t\tinformation = { \"underline\" },\n\t\t\t\tok = { \"underline\" },\n\t\t\t},\n\t\t\tinlay_hints = {\n\t\t\t\tbackground = true,\n\t\t\t},\n\t\t},\n\t\tdefault_integrations = true,\n\t\tauto_integrations = false,\n\t\tintegrations = {\n\t\t\talpha = true,\n\t\t\tblink_cmp = { enabled = true, style = \"bordered\" },\n\t\t\tblink_indent = true,\n\t\t\tfzf = true,\n\t\t\tcmp = true,\n\t\t\tdap = true,\n\t\t\tdap_ui = true,\n\t\t\tdashboard = true,\n\t\t\tdiffview = false,\n\t\t\tflash = true,\n\t\t\tgitsigns = true,\n\t\t\tmarkdown = true,\n\t\t\tneogit = true,\n\t\t\tneotree = true,\n\t\t\tnvimtree = true,\n\t\t\tufo = true,\n\t\t\trainbow_delimiters = true,\n\t\t\trender_markdown = true,\n\t\t\ttelescope = { enabled = true },\n\t\t\ttreesitter_context = true,\n\t\t\tbarbecue = {\n\t\t\t\tdim_dirname = true,\n\t\t\t\tbold_basename = true,\n\t\t\t\tdim_context = false,\n\t\t\t\talt_background = false,\n\t\t\t},\n\t\t\tilluminate = {\n\t\t\t\tenabled = true,\n\t\t\t\tlsp = false,\n\t\t\t},\n\t\t\tindent_blankline = {\n\t\t\t\tenabled = true,\n\t\t\t\tscope_color = \"\",\n\t\t\t\tcolored_indent_levels = false,\n\t\t\t},\n\t\t\tnavic = {\n\t\t\t\tenabled = false,\n\t\t\t\tcustom_bg = \"NONE\",\n\t\t\t},\n\t\t\tdropbar = {\n\t\t\t\tenabled = true,\n\t\t\t\tcolor_mode = false,\n\t\t\t},\n\t\t\tcolorful_winsep = {\n\t\t\t\tenabled = false,\n\t\t\t\tcolor = \"red\",\n\t\t\t},\n\t\t\tmini = {\n\t\t\t\tenabled = true,\n\t\t\t\tindentscope_color = \"overlay2\",\n\t\t\t},\n\t\t\tlir = {\n\t\t\t\tenabled = false,\n\t\t\t\tgit_status = false,\n\t\t\t},\n\t\t\tsnacks = { enabled = false },\n\t\t},\n\t\tcolor_overrides = {},\n\t\thighlight_overrides = {},\n\t},\n\tflavours = { latte = 1, frappe = 2, macchiato = 3, mocha = 4 },\n\tpath_sep = jit and (jit.os == \"Windows\" and \"\\\\\" or \"/\") or package.config:sub(1, 1),\n}\n\nM.options = M.default_options\n\nfunction M.compile()\n\tlocal user_flavour = M.flavour\n\tfor flavour, _ in pairs(M.flavours) do\n\t\tM.flavour = flavour\n\t\trequire(\"catppuccin.lib.compiler\").compile(flavour)\n\tend\n\tM.flavour = user_flavour -- Restore user flavour after compile\nend\n\nlocal function get_flavour(default)\n\tlocal flavour\n\tif default and default == M.flavour and vim.o.background ~= (M.flavour == \"latte\" and \"light\" or \"dark\") then\n\t\tflavour = M.options.background[vim.o.background]\n\telse\n\t\tflavour = default\n\tend\n\n\tif flavour and not M.flavours[flavour] then\n\t\tvim.notify(\n\t\t\tstring.format(\n\t\t\t\t\"Catppuccin (error): Invalid flavour '%s', flavour must be 'latte', 'frappe', 'macchiato', 'mocha' or 'auto'\",\n\t\t\t\tflavour\n\t\t\t),\n\t\t\tvim.log.levels.ERROR\n\t\t)\n\t\tflavour = nil\n\tend\n\treturn flavour or M.options.flavour or vim.g.catppuccin_flavour or M.options.background[vim.o.background]\nend\n\nlocal did_setup = false\n\nfunction M.load(flavour)\n\tif M.options.flavour == \"auto\" then -- set colorscheme based on o:background\n\t\tM.options.flavour = nil -- ensure that this will only run once on startup\n\tend\n\tif not did_setup then M.setup() end\n\tM.flavour = get_flavour(flavour)\n\tlocal compiled_path = M.options.compile_path .. M.path_sep .. M.flavour\n\tlocal f = loadfile(compiled_path)\n\tif not f then\n\t\tM.compile()\n\t\tf = assert(loadfile(compiled_path), \"could not load cache\")\n\tend\n\tf(flavour or M.options.flavour or vim.g.catppuccin_flavour)\nend\n\n---@type fun(user_conf: CatppuccinOptions?)\nfunction M.setup(user_conf)\n\tdid_setup = true\n\t-- Parsing user config\n\tuser_conf = user_conf or {}\n\n\tif user_conf.auto_integrations == true then\n\t\tuser_conf.integrations = vim.tbl_deep_extend(\n\t\t\t\"force\",\n\t\t\trequire(\"catppuccin.lib.detect_integrations\").create_integrations_table(),\n\t\t\tuser_conf.integrations or {}\n\t\t)\n\tend\n\n\tif user_conf.default_integrations == false then M.default_options.integrations = {} end\n\tif user_conf.default_integrations == false then\n\t\tM.default_options.integrations = vim.iter(pairs(M.default_options.integrations))\n\t\t\t:fold({}, function(integrations, name, opts)\n\t\t\t\tif type(opts) == \"table\" then\n\t\t\t\t\topts.enabled = false\n\t\t\t\telse\n\t\t\t\t\topts = false\n\t\t\t\tend\n\t\t\t\tintegrations[name] = opts\n\t\t\t\treturn integrations\n\t\t\tend)\n\tend\n\n\tM.options = vim.tbl_deep_extend(\"keep\", user_conf, M.default_options)\n\tM.options.highlight_overrides.all = user_conf.custom_highlights or M.options.highlight_overrides.all\n\n\t-- Get cached hash\n\tlocal cached_path = M.options.compile_path .. M.path_sep .. \"cached\"\n\tlocal file = io.open(cached_path)\n\tlocal cached = nil\n\tif file then\n\t\tcached = file:read()\n\t\tfile:close()\n\tend\n\n\t-- Get current hash\n\tlocal git_path = debug.getinfo(1).source:sub(2, -24) .. \".git\"\n\tlocal git = vim.fn.getftime(git_path) -- 2x faster vim.loop.fs_stat\n\tlocal hash = require(\"catppuccin.lib.hashing\").hash(user_conf)\n\t\t.. (git == -1 and git_path or git) -- no .git in /nix/store -> cache path\n\t\t.. (vim.o.winblend == 0 and 1 or 0) -- :h winblend\n\t\t.. (vim.o.pumblend == 0 and 1 or 0) -- :h pumblend\n\n\t-- Recompile if hash changed\n\tif cached ~= hash then\n\t\tM.compile()\n\t\tfile = io.open(cached_path, \"wb\")\n\t\tif file then\n\t\t\tfile:write(hash)\n\t\t\tfile:close()\n\t\tend\n\tend\nend\n\nvim.api.nvim_create_user_command(\n\t\"Catppuccin\",\n\tfunction(inp) vim.api.nvim_command(\"colorscheme catppuccin-\" .. get_flavour(inp.args)) end,\n\t{\n\t\tnargs = 1,\n\t\tcomplete = function(line)\n\t\t\treturn vim.tbl_filter(function(val) return vim.startswith(val, line) end, vim.tbl_keys(M.flavours))\n\t\tend,\n\t}\n)\n\nvim.api.nvim_create_user_command(\"CatppuccinCompile\", function()\n\tfor name, _ in pairs(package.loaded) do\n\t\tif name:match \"^catppuccin.\" then package.loaded[name] = nil end\n\tend\n\tM.compile()\n\tvim.notify(\"Catppuccin (info): compiled cache!\", vim.log.levels.INFO)\n\tvim.cmd.colorscheme \"catppuccin-nvim\"\nend, {})\n\nif vim.g.catppuccin_debug then\n\tvim.api.nvim_create_autocmd(\"BufWritePost\", {\n\t\tpattern = \"*/catppuccin/*\",\n\t\tcallback = function()\n\t\t\tvim.schedule(function() vim.cmd \"CatppuccinCompile\" end)\n\t\tend,\n\t})\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/lib/compiler.lua",
    "content": "local path_sep = require(\"catppuccin\").path_sep\nlocal O = require(\"catppuccin\").options\nlocal M = {}\n\n-- Credit: https://github.com/EdenEast/nightfox.nvim\nlocal fmt = string.format\n\nlocal function inspect(t)\n\tlocal list = {}\n\tfor k, v in pairs(t) do\n\t\tlocal tv = type(v)\n\t\tif tv == \"string\" then\n\t\t\ttable.insert(list, fmt([[%s = \"%s\"]], k, v))\n\t\telseif tv == \"table\" then\n\t\t\ttable.insert(list, fmt([[%s = %s]], k, inspect(v)))\n\t\telse\n\t\t\ttable.insert(list, fmt([[%s = %s]], k, tostring(v)))\n\t\tend\n\tend\n\treturn fmt([[{ %s }]], table.concat(list, \", \"))\nend\n\nfunction M.compile(flavour)\n\tlocal theme = require(\"catppuccin.lib.mapper\").apply(flavour)\n\tlocal lines = {\n\t\tstring.format(\n\t\t\t[[\nreturn string.dump(function(flavour)\nvim.o.termguicolors = true\nif vim.g.colors_name then vim.cmd(\"hi clear\") end\nif flavour then vim.o.background = \"%s\" end\nvim.g.colors_name = \"catppuccin-%s\"\nlocal h = vim.api.nvim_set_hl]],\n\t\t\tflavour == \"latte\" and \"light\" or \"dark\",\n\t\t\tflavour\n\t\t),\n\t}\n\tif path_sep == \"\\\\\" then O.compile_path = O.compile_path:gsub(\"/\", \"\\\\\") end\n\n\tlocal tbl = vim.tbl_deep_extend(\"keep\", theme.custom_highlights, theme.integrations, theme.syntax, theme.editor)\n\n\tif O.term_colors == true then\n\t\tfor k, v in pairs(theme.terminal) do\n\t\t\ttable.insert(lines, fmt('vim.g.%s = \"%s\"', k, v))\n\t\tend\n\tend\n\n\tfor group, color in pairs(tbl) do\n\t\tif color.style then\n\t\t\tfor _, style in pairs(color.style) do\n\t\t\t\tcolor[style] = true\n\t\t\t\tif O.no_italic and style == \"italic\" then color[style] = false end\n\t\t\t\tif O.no_bold and style == \"bold\" then color[style] = false end\n\t\t\t\tif O.no_underline and style == \"underline\" then color[style] = false end\n\t\t\tend\n\t\tend\n\t\tcolor.style = nil\n\t\tif color.link and (theme.custom_highlights[group] and not theme.custom_highlights[group].link) then\n\t\t\tcolor.link = nil\n\t\tend\n\t\ttable.insert(lines, fmt([[h(0, \"%s\", %s)]], group, inspect(color)))\n\tend\n\ttable.insert(lines, \"end, true)\")\n\tif vim.fn.isdirectory(O.compile_path) == 0 then vim.fn.mkdir(O.compile_path, \"p\") end\n\n\tif vim.g.catppuccin_debug then -- Debugging purpose\n\t\tlocal deb = io.open(O.compile_path .. path_sep .. flavour .. \".lua\", \"wb\")\n\t\tif deb then\n\t\t\tdeb:write(table.concat(lines, \"\\n\"))\n\t\t\tdeb:close()\n\t\tend\n\tend\n\n\tlocal f = loadstring(table.concat(lines, \"\\n\"))\n\tif not f then\n\t\tlocal err_path = (path_sep == \"/\" and \"/tmp\" or os.getenv \"TMP\") .. \"/catppuccin_error.lua\"\n\t\tprint(string.format(\n\t\t\t[[Catppuccin (error): Most likely some mistake made in your catppuccin config\nYou can open %s for debugging\n\nIf you think this is a bug, kindly open an issue and attach %s file\nBelow is the error message that we captured:\n]],\n\t\t\terr_path,\n\t\t\terr_path\n\t\t))\n\t\tlocal err = io.open(err_path, \"wb\")\n\t\tif err then\n\t\t\terr:write(table.concat(lines, \"\\n\"))\n\t\t\terr:close()\n\t\tend\n\t\tdofile(err_path)\n\t\treturn\n\tend\n\n\tlocal file = assert(\n\t\tio.open(O.compile_path .. path_sep .. flavour, \"wb\"),\n\t\t\"Permission denied while writing compiled file to \" .. O.compile_path .. path_sep .. flavour\n\t)\n\tfile:write(f())\n\tfile:close()\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/lib/detect_integrations.lua",
    "content": "local M = {}\n\n--- parses url to get the last part of it's path, without the `/`.\n---@param url string\n---@return any\nfunction M.parse_url(url) return string.match(url, \"([^/]+)$\") end\n\nfunction M.detect_plugins()\n\tlocal installed_plugins = {}\n\n\tif vim.fn.has \"nvim-0.12.0\" == 1 then\n\t\tvim.list_extend(\n\t\t\tinstalled_plugins,\n\t\t\tvim.iter(vim.pack.get()):map(function(plugin) return plugin.spec.name end):totable()\n\t\t)\n\tend\n\n\tif pcall(require, \"pckr\") then vim.list_extend(installed_plugins, require(\"pckr.plugin\").plugins_by_name) end\n\n\tif pcall(require, \"lazy\") then\n\t\tvim.list_extend(installed_plugins, vim.tbl_keys(require(\"lazy.core.config\").plugins))\n\tend\n\n\tlocal seen = {}\n\n\tinstalled_plugins = vim.iter(installed_plugins)\n\t\t:map(function(plugin_name)\n\t\t\tif string.sub(plugin_name, 0, 5) == \"mini.\" then return \"mini.nvim\" end\n\n\t\t\treturn plugin_name\n\t\tend)\n\t\t:filter(function(plugin_name)\n\t\t\tif seen[plugin_name] then return false end\n\t\t\tseen[plugin_name] = true\n\t\t\treturn true\n\t\tend)\n\t\t:totable()\n\n\treturn installed_plugins\nend\n\nlocal installed_plugins = M.detect_plugins()\n\nfunction M.create_integrations_table()\n\tlocal integration_mappings = nil\n\n\tdo\n\t\tlocal ok, result = pcall(require, \"catppuccin.utils.integration_mappings\")\n\t\tassert(ok, result)\n\t\tintegration_mappings = result\n\tend\n\n\tassert(\n\t\tintegration_mappings ~= nil,\n\t\t\"before using integration_mappings generate it using the script: `./scripts/generate_integration_mappings_table.lua`\"\n\t)\n\n\tlocal integrations = {}\n\tlocal ctp_defaults = require(\"catppuccin\").default_options.integrations\n\n\tfor _, plugin in ipairs(installed_plugins) do\n\t\tif integration_mappings[plugin] ~= nil then\n\t\t\tlocal integration = integration_mappings[plugin]\n\t\t\tif type(ctp_defaults[integration]) == \"table\" then\n\t\t\t\tintegrations[integration] = ctp_defaults[integration]\n\t\t\t\tintegrations[integration].enabled = true\n\t\t\telse\n\t\t\t\tintegrations[integration] = true\n\t\t\tend\n\t\tend\n\tend\n\treturn integrations\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/lib/hashing.lua",
    "content": "local M = {}\nlocal B = bit or bit32\n\nlocal hash_str = function(str) -- djb2, https://theartincode.stanis.me/008-djb2/\n\tlocal hash = 5381\n\tfor i = 1, #str do\n\t\thash = B.lshift(hash, 5) + hash + string.byte(str, i)\n\tend\n\treturn hash\nend\n\nfunction M.hash(v) -- Xor hashing: https://codeforces.com/blog/entry/85900\n\tlocal t = type(v)\n\tif t == \"table\" then\n\t\tlocal hash = 0\n\t\tfor p, u in next, v do\n\t\t\thash = B.bxor(hash, hash_str(p .. M.hash(u)))\n\t\tend\n\t\treturn hash\n\telseif t == \"function\" then\n\t\treturn M.hash(v(require(\"catppuccin.palettes\").get_palette()))\n\tend\n\treturn tostring(v)\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/lib/highlighter.lua",
    "content": "-- DEPRECATED MODULE\nlocal M = {}\n\nfunction M.highlight(group, color)\n\tif color.style then\n\t\tfor _, style in ipairs(color.style) do\n\t\t\tcolor[style] = true\n\t\tend\n\tend\n\tcolor.style = nil\n\tvim.api.nvim_set_hl(0, group, color)\nend\n\nfunction M.syntax(tbl)\n\tfor group, colors in pairs(tbl) do\n\t\tM.highlight(group, colors)\n\tend\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/lib/hsluv.lua",
    "content": "--[[\nLua implementation of HSLuv and HPLuv color spaces\nHomepage: http://www.hsluv.org/\n\nCopyright (C) 2019 Alexei Boronine\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and\nassociated documentation files (the \"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the\nfollowing conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial\nportions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT\nLIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\nNO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n]]\nlocal hsluv = {}\n\nhsluv.hexChars = \"0123456789abcdef\"\n\nlocal distance_line_from_origin = function(line) return math.abs(line.intercept) / math.sqrt((line.slope ^ 2) + 1) end\n\nlocal length_of_ray_until_intersect = function(theta, line)\n\treturn line.intercept / (math.sin(theta) - line.slope * math.cos(theta))\nend\n\nhsluv.get_bounds = function(l)\n\tlocal result = {}\n\tlocal sub2\n\tlocal sub1 = ((l + 16) ^ 3) / 1560896\n\tif sub1 > hsluv.epsilon then\n\t\tsub2 = sub1\n\telse\n\t\tsub2 = l / hsluv.kappa\n\tend\n\n\tfor i = 1, 3 do\n\t\tlocal m1 = hsluv.m[i][1]\n\t\tlocal m2 = hsluv.m[i][2]\n\t\tlocal m3 = hsluv.m[i][3]\n\n\t\tfor t = 0, 1 do\n\t\t\tlocal top1 = (284517 * m1 - 94839 * m3) * sub2\n\t\t\tlocal top2 = (838422 * m3 + 769860 * m2 + 731718 * m1) * l * sub2 - 769860 * t * l\n\t\t\tlocal bottom = (632260 * m3 - 126452 * m2) * sub2 + 126452 * t\n\t\t\ttable.insert(result, { slope = top1 / bottom, intercept = top2 / bottom })\n\t\tend\n\tend\n\treturn result\nend\n\nhsluv.max_safe_chroma_for_l = function(l)\n\tlocal bounds = hsluv.get_bounds(l)\n\tlocal min = 1.7976931348623157e+308\n\n\tfor i = 1, 6 do\n\t\tlocal length = distance_line_from_origin(bounds[i])\n\t\tif length >= 0 then min = math.min(min, length) end\n\tend\n\treturn min\nend\n\nhsluv.max_safe_chroma_for_lh = function(l, h)\n\tlocal hrad = h / 360 * math.pi * 2\n\tlocal bounds = hsluv.get_bounds(l)\n\tlocal min = 1.7976931348623157e+308\n\n\tfor i = 1, 6 do\n\t\tlocal bound = bounds[i]\n\t\tlocal length = length_of_ray_until_intersect(hrad, bound)\n\t\tif length >= 0 then min = math.min(min, length) end\n\tend\n\treturn min\nend\n\nhsluv.dot_product = function(a, b)\n\tlocal sum = 0\n\tfor i = 1, 3 do\n\t\tsum = sum + a[i] * b[i]\n\tend\n\treturn sum\nend\n\nhsluv.from_linear = function(c)\n\tif c <= 0.0031308 then\n\t\treturn 12.92 * c\n\telse\n\t\treturn 1.055 * (c ^ 0.416666666666666685) - 0.055\n\tend\nend\n\nhsluv.to_linear = function(c)\n\tif c > 0.04045 then\n\t\treturn ((c + 0.055) / 1.055) ^ 2.4\n\telse\n\t\treturn c / 12.92\n\tend\nend\n\nhsluv.xyz_to_rgb = function(tuple)\n\treturn {\n\t\thsluv.from_linear(hsluv.dot_product(hsluv.m[1], tuple)),\n\t\thsluv.from_linear(hsluv.dot_product(hsluv.m[2], tuple)),\n\t\thsluv.from_linear(hsluv.dot_product(hsluv.m[3], tuple)),\n\t}\nend\n\nhsluv.rgb_to_xyz = function(tuple)\n\tlocal rgbl = { hsluv.to_linear(tuple[1]), hsluv.to_linear(tuple[2]), hsluv.to_linear(tuple[3]) }\n\treturn {\n\t\thsluv.dot_product(hsluv.minv[1], rgbl),\n\t\thsluv.dot_product(hsluv.minv[2], rgbl),\n\t\thsluv.dot_product(hsluv.minv[3], rgbl),\n\t}\nend\n\nhsluv.y_to_l = function(Y)\n\tif Y <= hsluv.epsilon then\n\t\treturn Y / hsluv.refY * hsluv.kappa\n\telse\n\t\treturn 116 * ((Y / hsluv.refY) ^ 0.333333333333333315) - 16\n\tend\nend\n\nhsluv.l_to_y = function(L)\n\tif L <= 8 then\n\t\treturn hsluv.refY * L / hsluv.kappa\n\telse\n\t\treturn hsluv.refY * (((L + 16) / 116) ^ 3)\n\tend\nend\n\nhsluv.xyz_to_luv = function(tuple)\n\tlocal X = tuple[1]\n\tlocal Y = tuple[2]\n\tlocal divider = X + 15 * Y + 3 * tuple[3]\n\tlocal varU = 4 * X\n\tlocal varV = 9 * Y\n\tif divider ~= 0 then\n\t\tvarU = varU / divider\n\t\tvarV = varV / divider\n\telse\n\t\tvarU = 0\n\t\tvarV = 0\n\tend\n\tlocal L = hsluv.y_to_l(Y)\n\tif L == 0 then return { 0, 0, 0 } end\n\treturn { L, 13 * L * (varU - hsluv.refU), 13 * L * (varV - hsluv.refV) }\nend\n\nhsluv.luv_to_xyz = function(tuple)\n\tlocal L = tuple[1]\n\tlocal U = tuple[2]\n\tlocal V = tuple[3]\n\tif L == 0 then return { 0, 0, 0 } end\n\tlocal varU = U / (13 * L) + hsluv.refU\n\tlocal varV = V / (13 * L) + hsluv.refV\n\tlocal Y = hsluv.l_to_y(L)\n\tlocal X = 0 - (9 * Y * varU) / (((varU - 4) * varV) - varU * varV)\n\treturn { X, Y, (9 * Y - 15 * varV * Y - varV * X) / (3 * varV) }\nend\n\nhsluv.luv_to_lch = function(tuple)\n\tlocal L = tuple[1]\n\tlocal U = tuple[2]\n\tlocal V = tuple[3]\n\tlocal C = math.sqrt(U * U + V * V)\n\tlocal H\n\tif C < 0.00000001 then\n\t\tH = 0\n\telse\n\t\tH = math.atan2(V, U) * 180.0 / 3.1415926535897932\n\t\tif H < 0 then H = 360 + H end\n\tend\n\treturn { L, C, H }\nend\n\nhsluv.lch_to_luv = function(tuple)\n\tlocal L = tuple[1]\n\tlocal C = tuple[2]\n\tlocal Hrad = tuple[3] / 360.0 * 2 * math.pi\n\treturn { L, math.cos(Hrad) * C, math.sin(Hrad) * C }\nend\n\nhsluv.hsluv_to_lch = function(tuple)\n\tlocal H = tuple[1]\n\tlocal S = tuple[2]\n\tlocal L = tuple[3]\n\tif L > 99.9999999 then return { 100, 0, H } end\n\tif L < 0.00000001 then return { 0, 0, H } end\n\treturn { L, hsluv.max_safe_chroma_for_lh(L, H) / 100 * S, H }\nend\n\nhsluv.lch_to_hsluv = function(tuple)\n\tlocal L = tuple[1]\n\tlocal C = tuple[2]\n\tlocal H = tuple[3]\n\tlocal max_chroma = hsluv.max_safe_chroma_for_lh(L, H)\n\tif L > 99.9999999 then return { H, 0, 100 } end\n\tif L < 0.00000001 then return { H, 0, 0 } end\n\n\treturn { H, C / max_chroma * 100, L }\nend\n\nhsluv.hpluv_to_lch = function(tuple)\n\tlocal H = tuple[1]\n\tlocal S = tuple[2]\n\tlocal L = tuple[3]\n\tif L > 99.9999999 then return { 100, 0, H } end\n\tif L < 0.00000001 then return { 0, 0, H } end\n\treturn { L, hsluv.max_safe_chroma_for_l(L) / 100 * S, H }\nend\n\nhsluv.lch_to_hpluv = function(tuple)\n\tlocal L = tuple[1]\n\tlocal C = tuple[2]\n\tlocal H = tuple[3]\n\tif L > 99.9999999 then return { H, 0, 100 } end\n\tif L < 0.00000001 then return { H, 0, 0 } end\n\treturn { H, C / hsluv.max_safe_chroma_for_l(L) * 100, L }\nend\n\nhsluv.rgb_to_hex = function(tuple)\n\tlocal h = \"#\"\n\tfor i = 1, 3 do\n\t\tlocal c = math.floor(tuple[i] * 255 + 0.5)\n\t\tlocal digit2 = math.fmod(c, 16)\n\t\tlocal x = (c - digit2) / 16\n\t\tlocal digit1 = math.floor(x)\n\t\th = h .. string.sub(hsluv.hexChars, digit1 + 1, digit1 + 1)\n\t\th = h .. string.sub(hsluv.hexChars, digit2 + 1, digit2 + 1)\n\tend\n\treturn h\nend\n\nhsluv.hex_to_rgb = function(hex)\n\thex = string.lower(hex)\n\tlocal ret = {}\n\tfor i = 0, 2 do\n\t\tlocal char1 = string.sub(hex, i * 2 + 2, i * 2 + 2)\n\t\tlocal char2 = string.sub(hex, i * 2 + 3, i * 2 + 3)\n\t\tlocal digit1 = string.find(hsluv.hexChars, char1) - 1\n\t\tlocal digit2 = string.find(hsluv.hexChars, char2) - 1\n\t\tret[i + 1] = (digit1 * 16 + digit2) / 255.0\n\tend\n\treturn ret\nend\n\nhsluv.lch_to_rgb = function(tuple) return hsluv.xyz_to_rgb(hsluv.luv_to_xyz(hsluv.lch_to_luv(tuple))) end\n\nhsluv.rgb_to_lch = function(tuple) return hsluv.luv_to_lch(hsluv.xyz_to_luv(hsluv.rgb_to_xyz(tuple))) end\n\nhsluv.hsluv_to_rgb = function(tuple) return hsluv.lch_to_rgb(hsluv.hsluv_to_lch(tuple)) end\n\nhsluv.rgb_to_hsluv = function(tuple) return hsluv.lch_to_hsluv(hsluv.rgb_to_lch(tuple)) end\n\nhsluv.hpluv_to_rgb = function(tuple) return hsluv.lch_to_rgb(hsluv.hpluv_to_lch(tuple)) end\n\nhsluv.rgb_to_hpluv = function(tuple) return hsluv.lch_to_hpluv(hsluv.rgb_to_lch(tuple)) end\n\nhsluv.hsluv_to_hex = function(tuple) return hsluv.rgb_to_hex(hsluv.hsluv_to_rgb(tuple)) end\n\nhsluv.hpluv_to_hex = function(tuple) return hsluv.rgb_to_hex(hsluv.hpluv_to_rgb(tuple)) end\n\nhsluv.hex_to_hsluv = function(s) return hsluv.rgb_to_hsluv(hsluv.hex_to_rgb(s)) end\n\nhsluv.hex_to_hpluv = function(s) return hsluv.rgb_to_hpluv(hsluv.hex_to_rgb(s)) end\n\nhsluv.m = {\n\t{ 3.240969941904521, -1.537383177570093, -0.498610760293 },\n\t{ -0.96924363628087, 1.87596750150772, 0.041555057407175 },\n\t{ 0.055630079696993, -0.20397695888897, 1.056971514242878 },\n}\nhsluv.minv = {\n\t{ 0.41239079926595, 0.35758433938387, 0.18048078840183 },\n\t{ 0.21263900587151, 0.71516867876775, 0.072192315360733 },\n\t{ 0.019330818715591, 0.11919477979462, 0.95053215224966 },\n}\nhsluv.refY = 1.0\nhsluv.refU = 0.19783000664283\nhsluv.refV = 0.46831999493879\nhsluv.kappa = 903.2962962\nhsluv.epsilon = 0.0088564516\n\nreturn hsluv\n"
  },
  {
    "path": "lua/catppuccin/lib/mapper.lua",
    "content": "local M = {}\n\nfunction M.apply(flavour)\n\tflavour = flavour or require(\"catppuccin\").flavour\n\n\tlocal _O, _C, _U = O, C, U -- Borrowing global var (setfenv doesn't work with require)\n\tO = require(\"catppuccin\").options\n\tC = require(\"catppuccin.palettes\").get_palette(flavour)\n\tU = require \"catppuccin.utils.colors\"\n\n\tC.none = \"NONE\"\n\n\tlocal dim_percentage = O.dim_inactive.percentage\n\tC.dim = O.dim_inactive.shade == \"dark\"\n\t\t\tand U.vary_color(\n\t\t\t\t{ latte = U.darken(C.base, dim_percentage, C.mantle) },\n\t\t\t\tU.darken(C.base, dim_percentage, C.mantle)\n\t\t\t)\n\t\tor U.vary_color(\n\t\t\t{ latte = U.lighten(\"#FBFCFD\", dim_percentage, C.base) },\n\t\t\tU.lighten(C.surface0, dim_percentage, C.base)\n\t\t)\n\n\tlocal theme = {}\n\ttheme.editor =\n\t\tvim.tbl_deep_extend(\"force\", require(\"catppuccin.groups.editor\").get(), require(\"catppuccin.groups.lsp\").get())\n\n\ttheme.syntax = {}\n\tlocal syntax_modules = { \"syntax\", \"semantic_tokens\", \"treesitter\" }\n\tfor i = 1, #syntax_modules do\n\t\ttheme.syntax =\n\t\t\tvim.tbl_deep_extend(\"force\", theme.syntax, require(\"catppuccin.groups.\" .. syntax_modules[i]).get())\n\tend\n\tlocal final_integrations = {}\n\n\t-- https://github.com/catppuccin/nvim/pull/624\n\tif type(O.integrations.dap) == \"table\" and O.integrations.dap.enable_ui ~= nil then\n\t\tO.integrations.dap_ui = O.integrations.dap.enable_ui\n\t\tO.integrations.dap.enable_ui = nil\n\tend\n\n\tfor integration in pairs(O.integrations) do\n\t\tlocal cot = false\n\t\tif type(O.integrations[integration]) == \"table\" then\n\t\t\tif O.integrations[integration].enabled == true then cot = true end\n\t\telse\n\t\t\tif O.integrations[integration] == true then\n\t\t\t\tlocal default = require(\"catppuccin\").default_options.integrations[integration]\n\t\t\t\tO.integrations[integration] = type(default) == \"table\" and default or {}\n\t\t\t\tO.integrations[integration].enabled = true\n\t\t\t\tcot = true\n\t\t\tend\n\t\tend\n\n\t\tlocal ok, result = pcall(require, \"catppuccin.groups.integrations.\" .. integration)\n\t\tif ok and result.get and cot then\n\t\t\tfinal_integrations = vim.tbl_deep_extend(\"force\", final_integrations, result.get())\n\t\tend\n\tend\n\n\ttheme.integrations = final_integrations -- plugins\n\ttheme.terminal = require(\"catppuccin.groups.terminal\").get() -- terminal colors\n\tlocal user_highlights = O.highlight_overrides\n\tif type(user_highlights[flavour]) == \"function\" then user_highlights[flavour] = user_highlights[flavour](C) end\n\ttheme.custom_highlights = vim.tbl_deep_extend(\n\t\t\"keep\",\n\t\tuser_highlights[flavour] or {},\n\t\ttype(user_highlights.all) == \"function\" and user_highlights.all(C) or user_highlights.all or {}\n\t)\n\n\tO, C, U = _O, _C, _U -- Returning global var\n\n\treturn theme\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/palettes/frappe.lua",
    "content": "return {\n\trosewater = \"#f2d5cf\",\n\tflamingo = \"#eebebe\",\n\tpink = \"#f4b8e4\",\n\tmauve = \"#ca9ee6\",\n\tred = \"#e78284\",\n\tmaroon = \"#ea999c\",\n\tpeach = \"#ef9f76\",\n\tyellow = \"#e5c890\",\n\tgreen = \"#a6d189\",\n\tteal = \"#81c8be\",\n\tsky = \"#99d1db\",\n\tsapphire = \"#85c1dc\",\n\tblue = \"#8caaee\",\n\tlavender = \"#babbf1\",\n\ttext = \"#c6d0f5\",\n\tsubtext1 = \"#b5bfe2\",\n\tsubtext0 = \"#a5adce\",\n\toverlay2 = \"#949cbb\",\n\toverlay1 = \"#838ba7\",\n\toverlay0 = \"#737994\",\n\tsurface2 = \"#626880\",\n\tsurface1 = \"#51576d\",\n\tsurface0 = \"#414559\",\n\tbase = \"#303446\",\n\tmantle = \"#292c3c\",\n\tcrust = \"#232634\",\n}\n"
  },
  {
    "path": "lua/catppuccin/palettes/init.lua",
    "content": "local M = {}\n\nfunction M.get_palette(flavour)\n\tlocal flvr = flavour or require(\"catppuccin\").flavour or vim.g.catppuccin_flavour or \"mocha\"\n\tlocal _, palette = pcall(require, \"catppuccin.palettes.\" .. flvr)\n\tlocal O = require(\"catppuccin\").options\n\tlocal ans = vim.tbl_deep_extend(\"keep\", O.color_overrides.all or {}, O.color_overrides[flvr] or {}, palette or {})\n\n\t--[[ \n\t\tKitty makes Neovim transparent if its own terminal background matches Neovim, \n\t\tso we need to adjust the color channels to make sure people don't suddenly\n\t\thave a transparent background if they haven't specified it.\n\n\t\tUnfortunately, this currently means all users on Kitty will have all their\n\t\tpalette colors slightly offset.\n\n\t\tref: https://github.com/kovidgoyal/kitty/issues/2917\n\t--]]\n\tif O.kitty then\n\t\tfor accent, hex in pairs(ans) do\n\t\t\tlocal red_green_string = hex:sub(1, 5)\n\t\t\tlocal blue_value = tonumber(hex:sub(6, 7), 16)\n\n\t\t\t-- Slightly increase or decrease brightness of the blue channel\n\t\t\tblue_value = blue_value == 255 and blue_value - 1 or blue_value + 1\n\t\t\tans[accent] = string.format(\"%s%.2x\", red_green_string, blue_value)\n\t\tend\n\tend\n\n\treturn ans\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/palettes/latte.lua",
    "content": "return {\n\trosewater = \"#dc8a78\",\n\tflamingo = \"#dd7878\",\n\tpink = \"#ea76cb\",\n\tmauve = \"#8839ef\",\n\tred = \"#d20f39\",\n\tmaroon = \"#e64553\",\n\tpeach = \"#fe640b\",\n\tyellow = \"#df8e1d\",\n\tgreen = \"#40a02b\",\n\tteal = \"#179299\",\n\tsky = \"#04a5e5\",\n\tsapphire = \"#209fb5\",\n\tblue = \"#1e66f5\",\n\tlavender = \"#7287fd\",\n\ttext = \"#4c4f69\",\n\tsubtext1 = \"#5c5f77\",\n\tsubtext0 = \"#6c6f85\",\n\toverlay2 = \"#7c7f93\",\n\toverlay1 = \"#8c8fa1\",\n\toverlay0 = \"#9ca0b0\",\n\tsurface2 = \"#acb0be\",\n\tsurface1 = \"#bcc0cc\",\n\tsurface0 = \"#ccd0da\",\n\tbase = \"#eff1f5\",\n\tmantle = \"#e6e9ef\",\n\tcrust = \"#dce0e8\",\n}\n"
  },
  {
    "path": "lua/catppuccin/palettes/macchiato.lua",
    "content": "return {\n\trosewater = \"#f4dbd6\",\n\tflamingo = \"#f0c6c6\",\n\tpink = \"#f5bde6\",\n\tmauve = \"#c6a0f6\",\n\tred = \"#ed8796\",\n\tmaroon = \"#ee99a0\",\n\tpeach = \"#f5a97f\",\n\tyellow = \"#eed49f\",\n\tgreen = \"#a6da95\",\n\tteal = \"#8bd5ca\",\n\tsky = \"#91d7e3\",\n\tsapphire = \"#7dc4e4\",\n\tblue = \"#8aadf4\",\n\tlavender = \"#b7bdf8\",\n\ttext = \"#cad3f5\",\n\tsubtext1 = \"#b8c0e0\",\n\tsubtext0 = \"#a5adcb\",\n\toverlay2 = \"#939ab7\",\n\toverlay1 = \"#8087a2\",\n\toverlay0 = \"#6e738d\",\n\tsurface2 = \"#5b6078\",\n\tsurface1 = \"#494d64\",\n\tsurface0 = \"#363a4f\",\n\tbase = \"#24273a\",\n\tmantle = \"#1e2030\",\n\tcrust = \"#181926\",\n}\n"
  },
  {
    "path": "lua/catppuccin/palettes/mocha.lua",
    "content": "return {\n\trosewater = \"#f5e0dc\",\n\tflamingo = \"#f2cdcd\",\n\tpink = \"#f5c2e7\",\n\tmauve = \"#cba6f7\",\n\tred = \"#f38ba8\",\n\tmaroon = \"#eba0ac\",\n\tpeach = \"#fab387\",\n\tyellow = \"#f9e2af\",\n\tgreen = \"#a6e3a1\",\n\tteal = \"#94e2d5\",\n\tsky = \"#89dceb\",\n\tsapphire = \"#74c7ec\",\n\tblue = \"#89b4fa\",\n\tlavender = \"#b4befe\",\n\ttext = \"#cdd6f4\",\n\tsubtext1 = \"#bac2de\",\n\tsubtext0 = \"#a6adc8\",\n\toverlay2 = \"#9399b2\",\n\toverlay1 = \"#7f849c\",\n\toverlay0 = \"#6c7086\",\n\tsurface2 = \"#585b70\",\n\tsurface1 = \"#45475a\",\n\tsurface0 = \"#313244\",\n\tbase = \"#1e1e2e\",\n\tmantle = \"#181825\",\n\tcrust = \"#11111b\",\n}\n"
  },
  {
    "path": "lua/catppuccin/special/bufferline.lua",
    "content": "local M = {}\n\nlocal ctp = require \"catppuccin\"\nlocal O = ctp.options\n\nfunction M.get_theme(user_config)\n\tuser_config = user_config or {}\n\treturn function()\n\t\tlocal C = require(\"catppuccin.palettes\").get_palette()\n\t\tlocal transparent_background = O.transparent_background\n\t\tlocal bg_highlight = (transparent_background and O.dim_inactive.enabled and C.dim)\n\t\t\tor (transparent_background and \"NONE\")\n\t\t\tor (O.dim_inactive.enabled and C.dim)\n\t\t\tor C.crust\n\n\t\tlocal active_bg = transparent_background and \"NONE\" or C.base\n\t\tlocal inactive_bg = transparent_background and \"NONE\" or C.mantle\n\n\t\tlocal separator_fg = O.transparent_background and C.surface1 or C.crust\n\n\t\tlocal styles = user_config.styles or { \"bold\", \"italic\" }\n\n\t\tlocal highlights = {\n\t\t\t-- buffers\n\t\t\tbackground = { bg = inactive_bg },\n\t\t\tbuffer_visible = { fg = C.surface1, bg = inactive_bg },\n\t\t\tbuffer_selected = { fg = C.text, bg = active_bg, style = styles }, -- current\n\t\t\t-- Duplicate\n\t\t\tduplicate_selected = { fg = C.text, bg = active_bg, style = styles },\n\t\t\tduplicate_visible = { fg = C.surface1, bg = inactive_bg, style = styles },\n\t\t\tduplicate = { fg = C.surface1, bg = inactive_bg, style = styles },\n\t\t\t-- tabs\n\t\t\ttab = { fg = C.surface1, bg = inactive_bg },\n\t\t\ttab_selected = { fg = C.sky, bg = active_bg, bold = true },\n\t\t\ttab_separator = { fg = separator_fg, bg = inactive_bg },\n\t\t\ttab_separator_selected = { fg = separator_fg, bg = active_bg },\n\n\t\t\ttab_close = { fg = C.red, bg = inactive_bg },\n\t\t\tindicator_visible = { fg = C.peach, bg = inactive_bg, style = styles },\n\t\t\tindicator_selected = { fg = C.peach, bg = active_bg, style = styles },\n\t\t\t-- separators\n\t\t\tseparator = { fg = separator_fg, bg = inactive_bg },\n\t\t\tseparator_visible = { fg = separator_fg, bg = inactive_bg },\n\t\t\tseparator_selected = { fg = separator_fg, bg = active_bg },\n\t\t\toffset_separator = { fg = separator_fg, bg = active_bg },\n\t\t\t-- close buttons\n\t\t\tclose_button = { fg = C.surface1, bg = inactive_bg },\n\t\t\tclose_button_visible = { fg = C.surface1, bg = inactive_bg },\n\t\t\tclose_button_selected = { fg = C.red, bg = active_bg },\n\t\t\t-- Empty fill\n\t\t\tfill = { bg = bg_highlight },\n\t\t\t-- Numbers\n\t\t\tnumbers = { fg = C.subtext0, bg = inactive_bg },\n\t\t\tnumbers_visible = { fg = C.subtext0, bg = inactive_bg },\n\t\t\tnumbers_selected = { fg = C.subtext0, bg = active_bg, style = styles },\n\t\t\t-- Errors\n\t\t\terror = { fg = C.red, bg = inactive_bg },\n\t\t\terror_visible = { fg = C.red, bg = inactive_bg },\n\t\t\terror_selected = { fg = C.red, bg = active_bg, style = styles },\n\t\t\terror_diagnostic = { fg = C.red, bg = inactive_bg },\n\t\t\terror_diagnostic_visible = { fg = C.red, bg = inactive_bg },\n\t\t\terror_diagnostic_selected = { fg = C.red, bg = active_bg },\n\t\t\t-- Warnings\n\t\t\twarning = { fg = C.yellow, bg = inactive_bg },\n\t\t\twarning_visible = { fg = C.yellow, bg = inactive_bg },\n\t\t\twarning_selected = { fg = C.yellow, bg = active_bg, style = styles },\n\t\t\twarning_diagnostic = { fg = C.yellow, bg = inactive_bg },\n\t\t\twarning_diagnostic_visible = { fg = C.yellow, bg = inactive_bg },\n\t\t\twarning_diagnostic_selected = { fg = C.yellow, bg = active_bg },\n\t\t\t-- Infos\n\t\t\tinfo = { fg = C.sky, bg = inactive_bg },\n\t\t\tinfo_visible = { fg = C.sky, bg = inactive_bg },\n\t\t\tinfo_selected = { fg = C.sky, bg = active_bg, style = styles },\n\t\t\tinfo_diagnostic = { fg = C.sky, bg = inactive_bg },\n\t\t\tinfo_diagnostic_visible = { fg = C.sky, bg = inactive_bg },\n\t\t\tinfo_diagnostic_selected = { fg = C.sky, bg = active_bg },\n\t\t\t-- Hint\n\t\t\thint = { fg = C.teal, bg = inactive_bg },\n\t\t\thint_visible = { fg = C.teal, bg = inactive_bg },\n\t\t\thint_selected = { fg = C.teal, bg = active_bg, style = styles },\n\t\t\thint_diagnostic = { fg = C.teal, bg = inactive_bg },\n\t\t\thint_diagnostic_visible = { fg = C.teal, bg = inactive_bg },\n\t\t\thint_diagnostic_selected = { fg = C.teal, bg = active_bg },\n\t\t\t-- Diagnostics\n\t\t\tdiagnostic = { fg = C.subtext0, bg = inactive_bg },\n\t\t\tdiagnostic_visible = { fg = C.subtext0, bg = inactive_bg },\n\t\t\tdiagnostic_selected = { fg = C.subtext0, bg = active_bg, style = styles },\n\t\t\t-- Modified\n\t\t\tmodified = { fg = C.peach, bg = inactive_bg },\n\t\t\tmodified_visible = { fg = C.peach, bg = inactive_bg },\n\t\t\tmodified_selected = { fg = C.peach, bg = active_bg },\n\t\t}\n\n\t\tlocal user_highlights = user_config.custom or {}\n\t\thighlights =\n\t\t\tvim.tbl_deep_extend(\"keep\", user_highlights[ctp.flavour] or {}, user_highlights.all or {}, highlights)\n\n\t\tfor _, color in pairs(highlights) do\n\t\t\t-- Because default is gui=bold,italic\n\t\t\tcolor.italic = false\n\t\t\tcolor.bold = false\n\n\t\t\tif color.style then\n\t\t\t\tfor _, style in pairs(color.style) do\n\t\t\t\t\tcolor[style] = true\n\t\t\t\t\tif O.no_italic and style == \"italic\" then color[style] = false end\n\t\t\t\t\tif O.no_bold and style == \"bold\" then color[style] = false end\n\t\t\t\t\tif O.no_underline and style == \"underline\" then color[style] = false end\n\t\t\t\tend\n\t\t\tend\n\t\t\tcolor.style = nil\n\t\tend\n\n\t\treturn highlights\n\tend\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/special/feline.lua",
    "content": "local M = {}\n\nlocal C = require(\"catppuccin.palettes\").get_palette()\nlocal ok, lsp = pcall(require, \"feline.providers.lsp\")\nlocal assets = nil\n\nif ok then\n\tassets = {\n\t\tleft_separator = \"\",\n\t\tright_separator = \"\",\n\t\tmode_icon = \"\",\n\t\tdir = \"󰉖\",\n\t\tfile = \"󰈙\",\n\t\tlsp = {\n\t\t\tserver = \"󰅡\",\n\t\t\terror = \"\",\n\t\t\twarning = \"\",\n\t\t\tinfo = \"\",\n\t\t\thint = \"\",\n\t\t},\n\t\tgit = {\n\t\t\tbranch = \"\",\n\t\t\tadded = \"\",\n\t\t\tchanged = \"\",\n\t\t\tremoved = \"\",\n\t\t},\n\t}\n\n\tlocal sett = {\n\t\ttext = C.mantle,\n\t\tbkg = C.crust,\n\t\tdiffs = C.mauve,\n\t\textras = C.overlay1,\n\t\tcurr_file = C.maroon,\n\t\tcurr_dir = C.flamingo,\n\t\tshow_modified = false,\n\t\tshow_lazy_updates = false,\n\t}\n\n\tif require(\"catppuccin\").flavour == \"latte\" then\n\t\tlocal latte = require(\"catppuccin.palettes\").get_palette \"latte\"\n\t\tsett.text = latte.base\n\t\tsett.bkg = latte.crust\n\tend\n\n\tif require(\"catppuccin\").options.transparent_background then sett.bkg = \"NONE\" end\n\n\tlocal mode_colors = {\n\t\t[\"n\"] = { \"NORMAL\", C.lavender },\n\t\t[\"no\"] = { \"N-PENDING\", C.lavender },\n\t\t[\"i\"] = { \"INSERT\", C.green },\n\t\t[\"ic\"] = { \"INSERT\", C.green },\n\t\t[\"t\"] = { \"TERMINAL\", C.green },\n\t\t[\"v\"] = { \"VISUAL\", C.flamingo },\n\t\t[\"V\"] = { \"V-LINE\", C.flamingo },\n\t\t[\"\u0016\"] = { \"V-BLOCK\", C.flamingo },\n\t\t[\"R\"] = { \"REPLACE\", C.maroon },\n\t\t[\"Rv\"] = { \"V-REPLACE\", C.maroon },\n\t\t[\"s\"] = { \"SELECT\", C.maroon },\n\t\t[\"S\"] = { \"S-LINE\", C.maroon },\n\t\t[\"\u0013\"] = { \"S-BLOCK\", C.maroon },\n\t\t[\"c\"] = { \"COMMAND\", C.peach },\n\t\t[\"cv\"] = { \"COMMAND\", C.peach },\n\t\t[\"ce\"] = { \"COMMAND\", C.peach },\n\t\t[\"r\"] = { \"PROMPT\", C.teal },\n\t\t[\"rm\"] = { \"MORE\", C.teal },\n\t\t[\"r?\"] = { \"CONFIRM\", C.mauve },\n\t\t[\"!\"] = { \"SHELL\", C.green },\n\t}\n\n\tlocal view = {\n\t\tlsp = {\n\t\t\tprogress = true,\n\t\t\tname = false,\n\t\t\texclude_lsp_names = {},\n\t\t\tseparator = \"|\",\n\t\t},\n\t}\n\n\tlocal is_lsp_in_excluded_list = function(lsp_name)\n\t\tfor _, excluded_lsp in ipairs(view.lsp.exclude_lsp_names) do\n\t\t\tif lsp_name == excluded_lsp then return true end\n\t\tend\n\t\treturn false\n\tend\n\n\tfunction M.setup(opts)\n\t\tif opts then\n\t\t\topts.assets = opts.assets or {}\n\t\t\topts.sett = opts.sett or {}\n\t\t\topts.mode_colors = opts.mode_colors or {}\n\t\t\topts.view = opts.view or {}\n\t\telse\n\t\t\topts = {\n\t\t\t\tassets = {},\n\t\t\t\tsett = {},\n\t\t\t\tmode_colors = {},\n\t\t\t\tview = {},\n\t\t\t}\n\t\tend\n\t\tassets = vim.tbl_deep_extend(\"force\", assets, opts.assets)\n\t\tsett = vim.tbl_deep_extend(\"force\", sett, opts.sett)\n\t\tmode_colors = vim.tbl_deep_extend(\"force\", mode_colors, opts.mode_colors)\n\t\tview = vim.tbl_deep_extend(\"force\", view, opts.view)\n\tend\n\n\tfunction M.get_statusline()\n\t\tlocal shortline = false\n\n\t\tlocal components = {\n\t\t\tactive = { {}, {}, {} }, -- left, center, right\n\t\t\tinactive = { {} },\n\t\t}\n\n\t\tlocal function is_enabled(min_width)\n\t\t\tif shortline then return true end\n\n\t\t\treturn vim.api.nvim_win_get_width(0) > min_width\n\t\tend\n\n\t\t-- global components\n\t\tlocal invi_sep = {\n\t\t\tstr = \" \",\n\t\t\thl = {\n\t\t\t\tfg = sett.bkg,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t}\n\n\t\t-- helpers\n\t\tlocal function any_git_changes()\n\t\t\tlocal gst = vim.b.gitsigns_status_dict -- git stats\n\t\t\tif gst then\n\t\t\t\tif\n\t\t\t\t\tgst[\"added\"] and gst[\"added\"] > 0\n\t\t\t\t\tor gst[\"removed\"] and gst[\"removed\"] > 0\n\t\t\t\t\tor gst[\"changed\"] and gst[\"changed\"] > 0\n\t\t\t\tthen\n\t\t\t\t\treturn true\n\t\t\t\tend\n\t\t\tend\n\t\t\treturn false\n\t\tend\n\n\t\t-- #################### STATUSLINE ->\n\n\t\t-- ######## Left\n\n\t\t-- Current vi mode ------>\n\t\tlocal vi_mode_hl = function()\n\t\t\treturn {\n\t\t\t\tfg = sett.text,\n\t\t\t\tbg = mode_colors[vim.fn.mode()][2],\n\t\t\t\tstyle = \"bold\",\n\t\t\t}\n\t\tend\n\n\t\tcomponents.active[1][1] = {\n\t\t\tprovider = \" \" .. assets.mode_icon .. \" \",\n\t\t\thl = function()\n\t\t\t\treturn {\n\t\t\t\t\tfg = sett.text,\n\t\t\t\t\tbg = mode_colors[vim.fn.mode()][2],\n\t\t\t\t}\n\t\t\tend,\n\t\t}\n\n\t\tcomponents.active[1][2] = {\n\t\t\tprovider = function() return mode_colors[vim.fn.mode()][1] .. \" \" end,\n\t\t\thl = vi_mode_hl,\n\t\t}\n\n\t\t-- there is a dilemma: we need to hide Diffs if there is no git info. We can do that, but this will\n\t\t-- leave the right_separator colored with purple, and since we can't change the color conditonally\n\t\t-- then the solution is to create two right_separators: one with a mauve sett.bkg and the other one normal\n\t\t-- sett.bkg; both have the same fg (vi mode). The mauve one appears if there is git info, else the one with\n\t\t-- the normal sett.bkg appears. Fixed :)\n\n\t\t-- enable if git diffs are not available\n\t\tcomponents.active[1][3] = {\n\t\t\tprovider = assets.right_separator,\n\t\t\thl = function()\n\t\t\t\treturn {\n\t\t\t\t\tfg = mode_colors[vim.fn.mode()][2],\n\t\t\t\t\tbg = sett.bkg,\n\t\t\t\t}\n\t\t\tend,\n\t\t\tenabled = function() return not any_git_changes() end,\n\t\t}\n\n\t\t-- enable if git diffs are available\n\t\tcomponents.active[1][4] = {\n\t\t\tprovider = assets.right_separator,\n\t\t\thl = function()\n\t\t\t\treturn {\n\t\t\t\t\tfg = mode_colors[vim.fn.mode()][2],\n\t\t\t\t\tbg = sett.diffs,\n\t\t\t\t}\n\t\t\tend,\n\t\t\tenabled = function() return any_git_changes() end,\n\t\t}\n\t\t-- Current vi mode ------>\n\n\t\t-- Diffs ------>\n\t\tcomponents.active[1][5] = {\n\t\t\tprovider = \"git_diff_added\",\n\t\t\thl = {\n\t\t\t\tfg = sett.text,\n\t\t\t\tbg = sett.diffs,\n\t\t\t},\n\t\t\ticon = \" \" .. assets.git.added .. \" \",\n\t\t}\n\n\t\tcomponents.active[1][6] = {\n\t\t\tprovider = \"git_diff_changed\",\n\t\t\thl = {\n\t\t\t\tfg = sett.text,\n\t\t\t\tbg = sett.diffs,\n\t\t\t},\n\t\t\ticon = \" \" .. assets.git.changed .. \" \",\n\t\t}\n\n\t\tcomponents.active[1][7] = {\n\t\t\tprovider = \"git_diff_removed\",\n\t\t\thl = {\n\t\t\t\tfg = sett.text,\n\t\t\t\tbg = sett.diffs,\n\t\t\t},\n\t\t\ticon = \" \" .. assets.git.removed .. \" \",\n\t\t}\n\n\t\tcomponents.active[1][8] = {\n\t\t\tprovider = \" \",\n\t\t\thl = {\n\t\t\t\tfg = sett.bkg,\n\t\t\t\tbg = sett.diffs,\n\t\t\t},\n\t\t\tenabled = function() return any_git_changes() end,\n\t\t}\n\n\t\tcomponents.active[1][9] = {\n\t\t\tprovider = assets.right_separator,\n\t\t\thl = {\n\t\t\t\tfg = sett.diffs,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t\tenabled = function() return any_git_changes() end,\n\t\t}\n\t\t-- Diffs ------>\n\n\t\t-- Extras ------>\n\n\t\t-- file progress\n\t\tcomponents.active[1][10] = {\n\t\t\tprovider = function()\n\t\t\t\tlocal current_line = vim.fn.line \".\"\n\t\t\t\tlocal total_line = vim.fn.line \"$\"\n\n\t\t\t\tif current_line == 1 then\n\t\t\t\t\treturn \"Top\"\n\t\t\t\telseif current_line == vim.fn.line \"$\" then\n\t\t\t\t\treturn \"Bot\"\n\t\t\t\tend\n\t\t\t\tlocal result, _ = math.modf((current_line / total_line) * 100)\n\t\t\t\treturn result .. \"%%\"\n\t\t\tend,\n\t\t\t-- enabled = shortline or function(winid)\n\t\t\t-- \treturn vim.api.nvim_win_get_width(winid) > 90\n\t\t\t-- end,\n\t\t\thl = {\n\t\t\t\tfg = sett.extras,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t\tleft_sep = invi_sep,\n\t\t}\n\n\t\t-- position\n\t\tcomponents.active[1][11] = {\n\t\t\tprovider = \"position\",\n\t\t\t-- enabled = shortline or function(winid)\n\t\t\t-- \treturn vim.api.nvim_win_get_width(winid) > 90\n\t\t\t-- end,\n\t\t\thl = {\n\t\t\t\tfg = sett.extras,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t\tleft_sep = invi_sep,\n\t\t}\n\n\t\t-- macro\n\t\tcomponents.active[1][12] = {\n\t\t\tprovider = \"macro\",\n\t\t\tenabled = function() return vim.api.nvim_get_option_value(\"cmdheight\", { scope = \"global\" }) == 0 end,\n\t\t\thl = {\n\t\t\t\tfg = sett.extras,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t\tleft_sep = invi_sep,\n\t\t}\n\n\t\t-- search count\n\t\tcomponents.active[1][13] = {\n\t\t\tprovider = \"search_count\",\n\t\t\tenabled = function() return vim.api.nvim_get_option_value(\"cmdheight\", { scope = \"global\" }) == 0 end,\n\t\t\thl = {\n\t\t\t\tfg = sett.extras,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t\tleft_sep = invi_sep,\n\t\t}\n\n\t\t-- lazy.nvim updates\n\t\tcomponents.active[1][14] = {\n\t\t\tprovider = function() return require(\"lazy.status\").updates() end,\n\t\t\tenabled = function()\n\t\t\t\tif sett.show_lazy_updates and pcall(require, \"lazy\") then\n\t\t\t\t\treturn require(\"lazy.status\").has_updates()\n\t\t\t\telse\n\t\t\t\t\treturn false\n\t\t\t\tend\n\t\t\tend,\n\t\t\thl = {\n\t\t\t\tfg = sett.extras,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t\tleft_sep = invi_sep,\n\t\t}\n\t\t-- Extras ------>\n\n\t\t-- ######## Left\n\n\t\t-- ######## Center\n\n\t\t-- Diagnostics ------>\n\t\t-- workspace loader\n\t\tcomponents.active[2][1] = {\n\t\t\tprovider = function()\n\t\t\t\tif vim.lsp.status then return \"\" end\n\t\t\t\tlocal Lsp = vim.lsp.util.get_progress_messages()[1]\n\n\t\t\t\tif Lsp then\n\t\t\t\t\tlocal msg = Lsp.message or \"\"\n\t\t\t\t\tlocal percentage = Lsp.percentage\n\t\t\t\t\tif not percentage then return \"\" end\n\t\t\t\t\tlocal title = Lsp.title or \"\"\n\t\t\t\t\tlocal spinners = {\n\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\"󰀚\",\n\t\t\t\t\t\t\"\",\n\t\t\t\t\t}\n\t\t\t\t\tlocal success_icon = {\n\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\"\",\n\t\t\t\t\t}\n\t\t\t\t\tlocal ms = vim.loop.hrtime() / 1000000\n\t\t\t\t\tlocal frame = math.floor(ms / 120) % #spinners\n\n\t\t\t\t\tif percentage >= 70 then\n\t\t\t\t\t\treturn string.format(\" %%<%s %s %s (%s%%%%) \", success_icon[frame + 1], title, msg, percentage)\n\t\t\t\t\tend\n\n\t\t\t\t\treturn string.format(\" %%<%s %s %s (%s%%%%) \", spinners[frame + 1], title, msg, percentage)\n\t\t\t\tend\n\n\t\t\t\treturn \"\"\n\t\t\tend,\n\t\t\tenabled = is_enabled(80) and view.lsp.progress == true,\n\t\t\thl = {\n\t\t\t\tfg = C.rosewater,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t}\n\n\t\t-- general diagnostics (errors, warnings. info and hints)\n\t\tcomponents.active[2][2] = {\n\t\t\tprovider = \"diagnostic_errors\",\n\t\t\tenabled = function() return lsp.diagnostics_exist(vim.diagnostic.severity.ERROR) end,\n\n\t\t\thl = {\n\t\t\t\tfg = C.red,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t\ticon = \" \" .. assets.lsp.error .. \" \",\n\t\t}\n\n\t\tcomponents.active[2][3] = {\n\t\t\tprovider = \"diagnostic_warnings\",\n\t\t\tenabled = function() return lsp.diagnostics_exist(vim.diagnostic.severity.WARN) end,\n\t\t\thl = {\n\t\t\t\tfg = C.yellow,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t\ticon = \" \" .. assets.lsp.warning .. \" \",\n\t\t}\n\n\t\tcomponents.active[2][4] = {\n\t\t\tprovider = \"diagnostic_info\",\n\t\t\tenabled = function() return lsp.diagnostics_exist(vim.diagnostic.severity.INFO) end,\n\t\t\thl = {\n\t\t\t\tfg = C.sky,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t\ticon = \" \" .. assets.lsp.info .. \" \",\n\t\t}\n\n\t\tcomponents.active[2][5] = {\n\t\t\tprovider = \"diagnostic_hints\",\n\t\t\tenabled = function() return lsp.diagnostics_exist(vim.diagnostic.severity.HINT) end,\n\t\t\thl = {\n\t\t\t\tfg = C.rosewater,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t\ticon = \" \" .. assets.lsp.hint .. \" \",\n\t\t}\n\t\t-- Diagnostics ------>\n\n\t\t-- ######## Center\n\n\t\t-- ######## Right\n\n\t\tcomponents.active[3][1] = {\n\t\t\tprovider = \"git_branch\",\n\t\t\tenabled = is_enabled(70),\n\t\t\thl = {\n\t\t\t\tfg = sett.extras,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\t\t\ticon = assets.git.branch .. \" \",\n\t\t\tright_sep = invi_sep,\n\t\t}\n\n\t\tcomponents.active[3][2] = {\n\t\t\tprovider = function()\n\t\t\t\tlocal active_clients = vim.lsp.get_clients { bufnr = 0 }\n\n\t\t\t\t-- show an indicator that we have running lsps\n\t\t\t\tif view.lsp.name == false and next(active_clients) ~= nil then\n\t\t\t\t\treturn assets.lsp.server .. \" \" .. \"Lsp\"\n\t\t\t\tend\n\n\t\t\t\t-- show the actual name of the running lsps\n\t\t\t\tlocal index = 0\n\t\t\t\tlocal lsp_names = \"\"\n\t\t\t\tfor _, lsp_config in ipairs(active_clients) do\n\t\t\t\t\tif is_lsp_in_excluded_list(lsp_config.name) then goto continue end\n\n\t\t\t\t\tindex = index + 1\n\t\t\t\t\tif index == 1 then\n\t\t\t\t\t\tlsp_names = assets.lsp.server .. \" \" .. lsp_config.name\n\t\t\t\t\telse\n\t\t\t\t\t\tlsp_names = lsp_names .. view.lsp.separator .. lsp_config.name\n\t\t\t\t\tend\n\n\t\t\t\t\t::continue::\n\t\t\t\tend\n\n\t\t\t\treturn lsp_names\n\t\t\tend,\n\n\t\t\thl = {\n\t\t\t\tfg = sett.extras,\n\t\t\t\tbg = sett.bkg,\n\t\t\t},\n\n\t\t\tright_sep = invi_sep,\n\t\t}\n\n\t\tcomponents.active[3][3] = {\n\t\t\tprovider = function()\n\t\t\t\tlocal filename = vim.fn.expand \"%:t\"\n\t\t\t\tlocal extension = vim.fn.expand \"%:e\"\n\t\t\t\tlocal present, icons = pcall(require, \"nvim-web-devicons\")\n\t\t\t\tlocal icon = present and icons.get_icon(filename, extension) or assets.file\n\t\t\t\treturn (sett.show_modified and \"%m\" or \"\") .. \" \" .. icon .. \" \" .. filename .. \" \"\n\t\t\tend,\n\t\t\tenabled = is_enabled(70),\n\t\t\thl = {\n\t\t\t\tfg = sett.text,\n\t\t\t\tbg = sett.curr_file,\n\t\t\t},\n\t\t\tleft_sep = {\n\t\t\t\tstr = assets.left_separator,\n\t\t\t\thl = {\n\t\t\t\t\tfg = sett.curr_file,\n\t\t\t\t\tbg = sett.bkg,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tcomponents.active[3][4] = {\n\t\t\tprovider = function()\n\t\t\t\tlocal dir_name = vim.fn.fnamemodify(vim.fn.getcwd(), \":t\")\n\t\t\t\treturn \" \" .. assets.dir .. \" \" .. dir_name .. \" \"\n\t\t\tend,\n\t\t\tenabled = is_enabled(80),\n\t\t\thl = {\n\t\t\t\tfg = sett.text,\n\t\t\t\tbg = sett.curr_dir,\n\t\t\t},\n\t\t\tleft_sep = {\n\t\t\t\tstr = assets.left_separator,\n\t\t\t\thl = {\n\t\t\t\t\tfg = sett.curr_dir,\n\t\t\t\t\tbg = sett.curr_file,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\t-- ######## Right\n\n\t\t-- Inanctive components\n\t\tcomponents.inactive[1][1] = {\n\t\t\tprovider = function() return \" \" .. string.upper(vim.bo.ft) .. \" \" end,\n\t\t\thl = {\n\t\t\t\tfg = C.overlay2,\n\t\t\t\tbg = C.mantle,\n\t\t\t},\n\t\t}\n\n\t\treturn components\n\tend\nend\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/types.lua",
    "content": "---@class Catppuccin\n---@field options CatppuccinOptions\n---@field setup fun(opts: CatppuccinOptions?)\n\n---@alias CtpFlavor \"mocha\" | \"macchiato\" | \"frappe\" | \"latte\" | \"auto\"\n---@alias CtpColor \"rosewater\" | \"flamingo\" | \"pink\" | \"mauve\" | \"red\" | \"maroon\" | \"peach\" | \"yellow\" | \"green\" | \"teal\" | \"sky\" | \"sapphire\" | \"blue\" | \"lavender\" | \"text\" | \"subtext1\" | \"subtext0\" | \"overlay2\" | \"overlay1\" | \"overlay0\" | \"surface2\" | \"surface1\" | \"surface0\" | \"base\" | \"mantle\" | \"crust\"\n---@class CtpFlavors<T>: {all: T, mocha: T, macchiato: T, frappe: T, latte: T }\n---@class CtpColors<T>: {rosewater: T, flamingo: T, pink: T, mauve: T, red: T, maroon: T, peach: T, yellow: T, green: T, teal: T, sky: T, sapphire: T, blue: T, lavender: T, text: T, subtext1: T, subtext0: T, overlay2: T, overlay1: T, overlay0: T, surface2: T, surface1: T, surface0: T, base: T, mantle: T, crust: T, none: T }\n\n---@class CatppuccinOptions\n-- Changes the flavor based on the background. See `:h background` for more info.\n---@field background CtpBackground?\n-- By default catppuccin writes the compiled results into the system's cache directory.\n-- You can change the cache dir by changing this value.\n---@field compile_path string?\n-- Whether to enable transparency.\n---@field transparent_background boolean?\n---@field float CtpFloatOpts?\n-- Toggle the `~` characters after the end of buffers.\n---@field show_end_of_buffer boolean?\n-- If true, sets terminal colors (e.g. `g:terminal_color_0`).\n---@field term_colors boolean?\n-- Workaround for kitty transparency issue: https://github.com/kovidgoyal/kitty/issues/2917\n---@field kitty boolean?\n-- Settings for dimming of inactive windows.\n---@field dim_inactive CtpDimInactive?\n-- Disables all italic styles.\n---@field no_italic boolean?\n-- Disables all bold styles.\n---@field no_bold boolean?\n-- Disables all underline styles.\n---@field no_underline boolean?\n-- Handles the style of general hl groups (see `:h highlight-groups`).\n---@field styles CtpStyles?\n-- Handles the style of specific lsp hl groups (see `:h lsp-highlight`).\n---@field lsp_styles CtpLspStyles?\n-- Should default integrations be used.\n---@field default_integrations boolean?\n-- Should detect integrations automatically\n---@field auto_integrations boolean?\n-- Toggle integrations. Integrations allow Catppuccin to set the theme of various plugins.\n---@field integrations CtpIntegrations?\n-- Catppuccin colors can be overwritten here.\n---@field color_overrides CtpColors | CtpFlavors<CtpColors<string>> | nil\n-- Catppuccin highlights can be overwritten here.\n---@field highlight_overrides CtpHighlightOverrides?\n-- Global highlight overrides.\n---@field custom_highlights CtpHighlightOverrideFn | {[string]: CtpHighlight} | nil\n-- The default flavor to use on startup.\n---@field flavour CtpFlavor?\n\n---@class CtpBackground\n-- Catppuccin flavor to use when `:set background=dark` is set.\n---@field dark CtpFlavor?\n-- Catppuccin flavor to use when `:set background=light` is set.\n---@field light CtpFlavor?\n\n---@class CtpFloatOpts\n---@field transparent boolean enable transparent floating windows\n---@field solid boolean use solid style floating windows, see |winborder|\n\n---@class CtpDimInactive\n-- Whether to dim inactive windows.\n---@field enabled boolean\n-- Whether to darken or lighten inactive windows.\n---@field shade \"dark\" | \"light\" | nil\n-- Percentage of the shade to apply to the inactive window\n---@field percentage number?\n\n---@class CtpStyles\n-- Change the style of comments.\n---@field comments CtpHighlightArgs[]?\n-- Change the style of conditionals.\n---@field conditionals CtpHighlightArgs[]?\n-- Change the style of loops.\n---@field loops CtpHighlightArgs[]?\n-- Change the style of functions.\n---@field functions CtpHighlightArgs[]?\n-- Change the style of keywords.\n---@field keywords CtpHighlightArgs[]?\n-- Change the style of strings.\n---@field strings CtpHighlightArgs[]?\n-- Change the style of variables.\n---@field variables CtpHighlightArgs[]?\n-- Change the style of numbers.\n---@field numbers CtpHighlightArgs[]?\n-- Change the style of booleans.\n---@field booleans CtpHighlightArgs[]?\n-- Change the style of properties.\n---@field properties CtpHighlightArgs[]?\n-- Change the style of types.\n---@field types CtpHighlightArgs[]?\n-- Change the style of operators.\n---@field operators CtpHighlightArgs[]?\n-- Change the style of miscs.\n---@field miscs CtpHighlightArgs[]?\n\n---@class CtpLspStyles\n-- Styles to apply to virtual text.\n---@field virtual_text CtpLspDiagnosticStyles?\n-- Styles to apply to underlines.\n---@field underlines CtpLspDiagnosticStyles?\n-- Inlay hints options.\n---@field inlay_hints CtpLspStylesInlayHints?\n\n---@class CtpLspDiagnosticStyles\n-- Change the style of LSP error diagnostics.\n---@field errors CtpHighlightArgs[]?\n-- Change the style of LSP hint diagnostics.\n---@field hints CtpHighlightArgs[]?\n-- Change the style of LSP warning diagnostics.\n---@field warnings CtpHighlightArgs[]?\n-- Change the style of LSP information diagnostics.\n---@field information CtpHighlightArgs[]?\n-- Change the style of LSP ok diagnostics.\n---@field ok CtpHighlightArgs[]?\n\n---@class CtpLspStylesInlayHints\n-- Toggle the background of inlay hints.\n---@field background boolean?\n\n---@class CtpIntegrations\n---@field aerial boolean?\n---@field alpha boolean?\n---@field artio boolean?\n---@field avante CtpIntegratinAvant | boolean?\n---@field barbar boolean?\n-- Use this to set it up:\n--\n-- ```lua\n-- require(\"barbecue\").setup {\n-- -- valid options:\n-- -- \"catppuccin-latte\"\n-- -- \"catppuccin-frappe\"\n-- -- \"catppuccin-macchiato\"\n-- -- \"catppuccin-mocha\"\n--   theme = \"catppuccin\",\n-- }\n---```\n---@field barbecue CtpIntegrationBarbecue | boolean?\n---@field beacon boolean?\n---@field blink_cmp CtpIntegrationsBlinkCmp | boolean?\n---@field blink_indent boolean?\n---@field blink_pairs boolean?\n---@field cmp boolean?\n---@field buffon boolean?\n-- `coc.nvim` links to `lsp_styles` highlight groups, so you can use\n-- `lsp_styles.virtual_text` and `lsp_styles.underlines` to style diagnostics.\n---@field coc_nvim boolean?\n---@field colorful_winsep CtpIntegrationColorfulWinsep | boolean?\n---@field copilot_vim boolean?\n-- ```lua\n-- local sign = vim.fn.sign_define\n--\n-- sign(\"DapBreakpoint\", { text = \"●\", texthl = \"DapBreakpoint\", linehl = \"\", numhl = \"\"})\n-- sign(\"DapBreakpointCondition\", { text = \"●\", texthl = \"DapBreakpointCondition\", linehl = \"\", numhl = \"\"})\n-- sign(\"DapLogPoint\", { text = \"◆\", texthl = \"DapLogPoint\", linehl = \"\", numhl = \"\"})\n-- ```\n---@field dadbod_ui boolean?\n---@field dap boolean?\n---@field dap_ui boolean?\n---@field dashboard boolean?\n---@field diffview boolean?\n---@field dropbar CtpIntegrationDropbar | boolean?\n---@field fern boolean?\n-- Set `notification.window.winblend` to `0` in your `fidget` config:\n--\n-- ```lua\n-- require(\"fidget\").setup {\n--   notification = {\n--     window = { winblend = 0 },\n--   }\n-- }\n-- ```\n---@field fidget boolean?\n---@field flash boolean?\n---@field fzf boolean?\n---@field gitgutter boolean?\n---@field gitgraph boolean?\n---@field gitsigns CtpIntegrationGitsigns | boolean?\n---@field grug_far boolean?\n---@field harpoon boolean?\n---@field headlines boolean?\n---@field hop boolean?\n---@field illuminate CtpIntegrationIlluminate | boolean?\n---@field indent_blankline CtpIntegrationIndentBlankline | boolean?\n---@field leap boolean?\n---@field lightspeed boolean?\n---@field lir CtpIntegrationLir | boolean?\n-- For custom Lsp kind icon and colors, adjust your `lspsaga` config:\n--\n-- ```lua\n-- require(\"lspsaga\").setup {\n--    ui = {\n--        kind = require(\"catppuccin.groups.integrations.lsp_saga\").custom_kind(),\n--    },\n-- }\n-- ```\n---@field lsp_saga boolean?\n---@field lsp_trouble boolean?\n---@field lualine CtpIntegrationLualine?\n---@field markview boolean?\n---@field mason boolean?\n-- You **NEED** to enable highlight in your `nvim-navic` config or it won't work:\n--\n-- ```lua\n-- require(\"nvim-navic\").setup {\n--\t\thighlight = true\n-- }\n-- ```\n---@field navic CtpIntegrationNavic | boolean?\n---@field neogit boolean?\n---@field neotest boolean?\n---@field neotree boolean?\n---@field noice boolean?\n---@field notify boolean?\n---@field nvim_surround boolean?\n---@field nvimtree boolean?\n---@field octo boolean?\n---@field overseer boolean?\n---@field pounce boolean?\n---@field rainbow_delimiters boolean?\n---@field render_markdown boolean?\n---@field sandwich boolean?\n---@field snacks CtpIntegrationSnacks | boolean?\n---@field signify boolean?\n---@field symbols_outline boolean?\n---@field telekasten boolean?\n---@field telescope CtpIntegrationTelescope | boolean?\n---@field treesitter_context boolean?\n---@field ts_rainbow boolean?\n---@field ts_rainbow2 boolean?\n---@field vim_sneak boolean?\n---@field vimwiki boolean?\n---@field which_key boolean?\n---@field window_picker boolean?\n\n---@class CtpIntegratinAvant\n--  Whether the opts.windows.sidebar_header.rounded option is set on Avante\n---@field enabled boolean\n---@field windows_sidebar_header_rounded boolean?\n\n---@class CtpIntegrationBarbecue\n--  Whether to use the alternative background.\n---@field alt_background boolean?\n-- Whether the basename should be bold.\n---@field bold_basename boolean?\n-- Whether the context should be dimmed.\n---@field dim_context boolean?\n-- Whether the directory name should be dimmed.\n---@field dim_dirname boolean?\n\n---@class CtpIntegrationsBlinkCmp\n--- The border style for the completion menu\n---@field style 'solid'|'bordered'\n\n---@class CtpIntegrationColorfulWinsep\n-- Whether to enable the colorful-winsep integration.\n---@field enabled boolean\n-- Set to a Catppuccin color name to use for the split separator.\n---@field color CtpColor?\n\n---@class CtpIntegrationDropbar\n-- Whether to enable the dropbar integration.\n---@field enabled boolean\n-- Set to true to apply color to the text in dropbar, false to only apply it to the icons.\n---@field color_mode boolean?\n\n---@class CtpIntegrationGitsigns\n--- Whether to enable the gitsigns integration\n---@field enabled boolean\n--- Whether to enabled transparent background option\n---@field transparent boolean?\n\n---@class CtpIntegrationIndentBlankline\n-- Whether to enable the integration.\n---@field enabled boolean\n-- Sets the color of the scope line\n---@field scope_color CtpColor?\n-- Enables char highlights per indent level.\n-- Follow the instructions on the plugins GitHub repo to set it up.\n---@field colored_indent_levels boolean?\n\n---@class CtpIntegrationLir\n-- Whether to enable the integration.\n---@field enabled boolean\n-- Sets lir-git-status.nvim highlight groups\n---@field git_status boolean\n\n---@class CtpIntegrationMini\n-- Whether to enable the integration.\n---@field enabled boolean\n-- Sets the color of the scope line\n---@field indentscope_color CtpColor?\n\n---@alias CtpIntegrationLualine CtpFlavors<CtpIntegrationLualineOverride | CtpIntegrationLualineOverrideFn>\n---@alias CtpIntegrationLualineOverride CtpIntegrationLualineModes<CtpIntegrationLualineSectionOverrides>\n---@alias CtpIntegrationLualineOverrideFn fun(colors: CtpColors<string>): CtpIntegrationLualineOverride\n---@alias CtpIntegrationLualineMode \"normal\" | \"insert\" | \"visual\" | \"replace\" | \"command\" | \"terminal\" | \"inactive\"\n---@class CtpIntegrationLualineModes<T>: { all: T, normal: T, insert: T, visual: T, replace: T, command: T, terminal: T, inactive: T }\n---@alias CtpIntegrationLualineSectionOverrides CtpIntegrationLualineSections<CtpIntegrationLualineSectionOverride>\n---@alias CtpIntegrationLualineSection \"a\" | \"b\" | \"c\"\n---@class CtpIntegrationLualineSections<T>: { a: T, b: T, c: T }\n---@class CtpIntegrationLualineSectionOverride\n---@field fg string?\n---@field bg string?\n---@field gui string? `gui` argument such as \"italic,bold\", see |highlight-gui|\n\n---@class CtpIntegrationNavic\n-- Whether to enable the navic integration.\n---@field enabled boolean\n-- Override the background color for navic.\n---@field custom_bg CtpColor | \"NONE\" | \"lualine\" | nil\n\n---@class CtpIntegrationSnacks\n-- Whether to enable the snacks integration.\n---@field enabled boolean\n-- Sets the color of the indent scope line\n---@field indent_scope_color CtpColor?\n\n---@class CtpIntegrationTelescope\n-- Whether to enable the telescope integration\n---@field enabled boolean?\n\n---@class CtpIntegrationIlluminate\n-- Whether to enable the vim-illuminate integration\n---@field enabled boolean?\n-- Whether to standout IlluminatedWordWrite hl group\n---@field lsp boolean?\n\n---@alias CtpHighlightArgs \"bold\" | \"underline\" | \"undercurl\" | \"underdouble\" | \"underdotted\" | \"underdashed\" | \"strikethrough\" | \"reverse\" | \"inverse\" | \"italic\" | \"standout\" | \"altfont\" | \"nocombine\" | \"NONE\"\n---@alias CtpHighlightOverrideFn fun(colors: CtpColors<string>): { [string]: CtpHighlight}\n---@alias CtpHighlightOverrides CtpFlavors<CtpHighlightOverrideFn>\n\n---@class CtpHighlight\n---@field fg string?\n---@field bg string?\n---@field style CtpHighlightArgs[]?\n---@field link string?\n"
  },
  {
    "path": "lua/catppuccin/utils/barbecue.lua",
    "content": "return function(flavour)\n\tlocal C = require(\"catppuccin.palettes\").get_palette(flavour)\n\tlocal O = require(\"catppuccin\").options\n\n\tlocal transparent_bg = O.transparent_background and C.none or C.mantle\n\n\tlocal dirname_color = O.integrations.barbecue.dim_dirname and C.overlay1 or C.text\n\tlocal basename_bold = O.integrations.barbecue.bold_basename\n\tlocal context_color = O.integrations.barbecue.dim_context and C.overlay1 or C.text\n\tlocal background_color = O.integrations.barbecue.alt_background and transparent_bg or C.none\n\n\tlocal M = {\n\t\tnormal = { fg = C.text, bg = background_color },\n\n\t\tellipsis = { fg = C.overlay1 },\n\t\tseparator = { fg = C.overlay1 },\n\t\tmodified = { fg = C.peach },\n\n\t\tdirname = { fg = dirname_color },\n\t\tbasename = { fg = C.text, bold = basename_bold },\n\t\tcontext = { fg = context_color },\n\n\t\t-- Same keys as navic\n\t\tcontext_file = { fg = C.blue },\n\t\tcontext_module = { fg = C.blue },\n\t\tcontext_namespace = { fg = C.blue },\n\t\tcontext_package = { fg = C.blue },\n\t\tcontext_class = { fg = C.yellow },\n\t\tcontext_method = { fg = C.blue },\n\t\tcontext_property = { fg = C.green },\n\t\tcontext_field = { fg = C.green },\n\t\tcontext_constructor = { fg = C.blue },\n\t\tcontext_enum = { fg = C.green },\n\t\tcontext_interface = { fg = C.yellow },\n\t\tcontext_function = { fg = C.blue },\n\t\tcontext_variable = { fg = C.flamingo },\n\t\tcontext_constant = { fg = C.peach },\n\t\tcontext_string = { fg = C.green },\n\t\tcontext_number = { fg = C.peach },\n\t\tcontext_boolean = { fg = C.peach },\n\t\tcontext_array = { fg = C.blue },\n\t\tcontext_object = { fg = C.blue },\n\t\tcontext_key = { fg = C.flamingo },\n\t\tcontext_null = { fg = C.peach },\n\t\tcontext_enum_member = { fg = C.red },\n\t\tcontext_struct = { fg = C.blue },\n\t\tcontext_event = { fg = C.blue },\n\t\tcontext_operator = { fg = C.blue },\n\t\tcontext_type_parameter = { fg = C.blue },\n\t}\n\n\treturn M\nend\n"
  },
  {
    "path": "lua/catppuccin/utils/colors.lua",
    "content": "local M = {}\n\nlocal hsluv = require \"catppuccin.lib.hsluv\"\n\nM.bg = \"#000000\"\nM.fg = \"#ffffff\"\nM.day_brightness = 0.3\n\n---@param hex_str string hexadecimal value of a color\nlocal hex_to_rgb = function(hex_str)\n\tlocal hex = \"[abcdef0-9][abcdef0-9]\"\n\tlocal pat = \"^#(\" .. hex .. \")(\" .. hex .. \")(\" .. hex .. \")$\"\n\thex_str = string.lower(hex_str)\n\n\tassert(string.find(hex_str, pat) ~= nil, \"hex_to_rgb: invalid hex_str: \" .. tostring(hex_str))\n\n\tlocal red, green, blue = string.match(hex_str, pat)\n\treturn { tonumber(red, 16), tonumber(green, 16), tonumber(blue, 16) }\nend\n\n---@param fg string forecrust color\n---@param bg string background color\n---@param alpha number number between 0 and 1. 0 results in bg, 1 results in fg\nfunction M.blend(fg, bg, alpha)\n\tbg = hex_to_rgb(bg)\n\tfg = hex_to_rgb(fg)\n\n\tlocal blendChannel = function(i)\n\t\tlocal ret = (alpha * fg[i] + ((1 - alpha) * bg[i]))\n\t\treturn math.floor(math.min(math.max(0, ret), 255) + 0.5)\n\tend\n\n\treturn string.format(\"#%02X%02X%02X\", blendChannel(1), blendChannel(2), blendChannel(3))\nend\n\nfunction M.darken(hex, amount, bg) return M.blend(hex, bg or M.bg, math.abs(amount)) end\n\nfunction M.lighten(hex, amount, fg) return M.blend(hex, fg or M.fg, math.abs(amount)) end\n\nfunction M.brighten(color, percentage)\n\tlocal hsl = hsluv.hex_to_hsluv(color)\n\tlocal larpSpace = 100 - hsl[3]\n\tif percentage < 0 then larpSpace = hsl[3] end\n\thsl[3] = hsl[3] + larpSpace * percentage\n\treturn hsluv.hsluv_to_hex(hsl)\nend\n\nfunction M.invertColor(color)\n\tif color ~= \"NONE\" then\n\t\tlocal hsl = hsluv.hex_to_hsluv(color)\n\t\thsl[3] = 100 - hsl[3]\n\t\tif hsl[3] < 40 then hsl[3] = hsl[3] + (100 - hsl[3]) * M.day_brightness end\n\t\treturn hsluv.hsluv_to_hex(hsl)\n\tend\n\treturn color\nend\n\nfunction M.string_to_color(colors, value, default)\n\tif not value or value == \"\" then return default end\n\n\t-- If the value is a hex color code then return it\n\tlocal hex = \"[abcdef0-9][abcdef0-9]\"\n\tlocal pat = \"^#\" .. hex .. hex .. hex .. \"$\"\n\tif string.match(value, pat) then return value end\n\n\tlocal acceptable_colors = { \"black\", \"red\", \"green\", \"blue\", \"magenta\", \"cyan\", \"text\", \"orange\", \"pink\" }\n\tfor _, ac in ipairs(acceptable_colors) do\n\t\tif string.match(value, ac) then return colors[value] end\n\tend\n\n\t-- Did not match anything to return default\n\treturn default\nend\n\nfunction M.color_is_bright(r, g, b)\n\t-- Counting the perceptive luminance - human eye favors green color\n\tlocal luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255\n\tif luminance > 0.5 then\n\t\treturn true -- Bright colors, black font\n\telse\n\t\treturn false -- Dark colors, text font\n\tend\nend\n\nfunction M.hex2rgb(hex)\n\treturn tonumber(\"0x\" .. hex:sub(1, 2)), tonumber(\"0x\" .. hex:sub(3, 4)), tonumber(\"0x\" .. hex:sub(5, 6))\nend\n\nfunction M.assert_brightness(color)\n\tlocal hex = color:gsub(\"#\", \"\")\n\tlocal r = M.hex2rgb(string.sub(hex, 1, 2))\n\tlocal g = M.hex2rgb(string.sub(hex, 3, 4))\n\tlocal b = M.hex2rgb(string.sub(hex, 5, 6))\n\n\tif M.color_is_bright(tonumber(r), tonumber(g), tonumber(b)) == true then\n\t\treturn true -- bright\n\tend\n\n\treturn false -- dull\nend\n\nfunction M.vary_color(palettes, default)\n\tlocal flvr = require(\"catppuccin\").flavour\n\n\tif palettes[flvr] ~= nil then return palettes[flvr] end\n\treturn default\nend\n\nlocal function rgb2Hex(rgb)\n\tlocal hexadecimal = \"#\"\n\n\tfor _, value in pairs(rgb) do\n\t\tlocal hex = \"\"\n\n\t\twhile value > 0 do\n\t\t\tlocal index = math.fmod(value, 16) + 1\n\t\t\tvalue = math.floor(value / 16)\n\t\t\thex = string.sub(hsluv.hexChars, index, index) .. hex\n\t\tend\n\n\t\tif string.len(hex) == 0 then\n\t\t\thex = \"00\"\n\t\telseif string.len(hex) == 1 then\n\t\t\thex = \"0\" .. hex\n\t\tend\n\n\t\thexadecimal = hexadecimal .. hex\n\tend\n\n\treturn hexadecimal\nend\n\nfunction M.increase_saturation(hex, percentage)\n\tlocal rgb = hex_to_rgb(hex)\n\n\tlocal saturation_float = percentage\n\n\ttable.sort(rgb)\n\tlocal rgb_intensity = {\n\t\tmin = rgb[1] / 255,\n\t\tmid = rgb[2] / 255,\n\t\tmax = rgb[3] / 255,\n\t}\n\n\tif rgb_intensity.max == rgb_intensity.min then\n\t\t-- all colors have same intensity, which means\n\t\t-- the original color is gray, so we can't change saturation.\n\t\treturn hex\n\tend\n\n\tlocal new_intensities = {}\n\tnew_intensities.max = rgb_intensity.max\n\tnew_intensities.min = rgb_intensity.max * (1 - saturation_float)\n\n\tif rgb_intensity.mid == rgb_intensity.min then\n\t\tnew_intensities.mid = new_intensities.min\n\telse\n\t\tlocal intensity_proportion = (rgb_intensity.max - rgb_intensity.mid) / (rgb_intensity.mid - rgb_intensity.min)\n\t\tnew_intensities.mid = (intensity_proportion * new_intensities.min + rgb_intensity.max)\n\t\t\t/ (intensity_proportion + 1)\n\tend\n\n\tfor i, v in pairs(new_intensities) do\n\t\tnew_intensities[i] = math.floor(v * 255)\n\tend\n\ttable.sort(new_intensities)\n\treturn (rgb2Hex { new_intensities.max, new_intensities.min, new_intensities.mid })\nend\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/utils/integration_mappings.lua",
    "content": "local M = {\n\t[\"aerial.nvim\"] = \"aerial\",\n\t[\"alpha-nvim\"] = \"alpha\",\n\t[\"artio.nvim\"] = \"artio\",\n\t[\"avante.nvim\"] = \"avante\",\n\t[\"barbar.nvim\"] = \"barbar\",\n\t[\"beacon.nvim\"] = \"beacon\",\n\t[\"blink.cmp\"] = \"blink_cmp\",\n\t[\"blink.indent\"] = \"blink_indent\",\n\t[\"blink.pairs\"] = \"blink_pairs\",\n\t[\"buffon.nvim\"] = \"buffon\",\n\t[\"coc.nvim\"] = \"coc_nvim\",\n\t[\"colorful-winsep.nvim\"] = \"colorful_winsep\",\n\t[\"copilot.vim\"] = \"copilot_vim\",\n\t[\"dashboard-nvim\"] = \"dashboard\",\n\t[\"diffview.nvim\"] = \"diffview\",\n\t[\"dropbar.nvim\"] = \"dropbar\",\n\t[\"fidget.nvim\"] = \"fidget\",\n\t[\"flash.nvim\"] = \"flash\",\n\t[\"fzf-lua\"] = \"fzf\",\n\t[\"gitgraph.nvim\"] = \"gitgraph\",\n\t[\"gitsigns.nvim\"] = \"gitsigns\",\n\t[\"grug-far.nvim\"] = \"grug_far\",\n\t[\"harpoon\"] = \"harpoon\",\n\t[\"headlines.nvim\"] = \"headlines\",\n\t[\"hop.nvim\"] = \"hop\",\n\t[\"indent-blankline.nvim\"] = \"indent_blankline\",\n\t[\"leap.nvim\"] = \"leap\",\n\t[\"lightspeed.nvim\"] = \"lightspeed\",\n\t[\"lir.nvim\"] = \"lir\",\n\t[\"lspsaga.nvim\"] = \"lsp_saga\",\n\t[\"markview.nvim\"] = \"markview\",\n\t[\"mason.nvim\"] = \"mason\",\n\t[\"mini.nvim\"] = \"mini\",\n\t[\"neo-tree.nvim\"] = \"neotree\",\n\t[\"neogit\"] = \"neogit\",\n\t[\"neotest\"] = \"neotest\",\n\t[\"notifier.nvim\"] = \"notifier\",\n\t[\"nvim-cmp\"] = \"cmp\",\n\t[\"nvim-dap\"] = \"dap\",\n\t[\"nvim-dap-ui\"] = \"dap_ui\",\n\t[\"nvim-navic\"] = \"navic\",\n\t[\"nvim-notify\"] = \"notify\",\n\t[\"nvim-surround\"] = \"nvim_surround\",\n\t[\"nvim-tree.lua\"] = \"nvimtree\",\n\t[\"nvim-treesitter-context\"] = \"treesitter_context\",\n\t[\"nvim-ts-rainbow\"] = \"ts_rainbow\",\n\t[\"nvim-ts-rainbow2\"] = \"ts_rainbow2\",\n\t[\"nvim-ufo\"] = \"ufo\",\n\t[\"nvim-window-picker\"] = \"window_picker\",\n\t[\"octo.nvim\"] = \"octo\",\n\t[\"overseer.nvim\"] = \"overseer\",\n\t[\"pounce.nvim\"] = \"pounce\",\n\t[\"rainbow-delimiters.nvim\"] = \"rainbow_delimiters\",\n\t[\"render-markdown.nvim\"] = \"render_markdown\",\n\t[\"snacks.nvim\"] = \"snacks\",\n\t[\"symbols-outline.nvim\"] = \"symbols_outline\",\n\t[\"telekasten.nvim\"] = \"telekasten\",\n\t[\"telescope.nvim\"] = \"telescope\",\n\t[\"trouble.nvim\"] = \"lsp_trouble\",\n\t[\"vim-dadbod-ui\"] = \"dadbod_ui\",\n\t[\"vim-fern\"] = \"fern\",\n\t[\"vim-gitgutter\"] = \"gitgutter\",\n\t[\"vim-illuminate\"] = \"illuminate\",\n\t[\"vim-sandwich\"] = \"sandwich\",\n\t[\"vim-signify\"] = \"signify\",\n\t[\"vim-sneak\"] = \"vim_sneak\",\n\t[\"vimwiki\"] = \"vimwiki\",\n\t[\"which-key.nvim\"] = \"which_key\",\n}\n\nreturn M\n"
  },
  {
    "path": "lua/catppuccin/utils/lualine.lua",
    "content": "---@param colors_override (CtpIntegrationLualineOverride | CtpIntegrationLualineOverrideFn)?\n---@param colors CtpColors<string>\nlocal function get_colors(colors_override, colors)\n\tif colors_override == nil then\n\t\treturn {}\n\telseif type(colors_override) == \"function\" then\n\t\treturn colors_override(colors)\n\telse\n\t\treturn colors_override\n\tend\nend\nreturn function(flavour)\n\tflavour = flavour or require(\"catppuccin\").flavour or vim.g.catppuccin_flavour or \"mocha\"\n\tlocal C = require(\"catppuccin.palettes\").get_palette(flavour)\n\tlocal O = require(\"catppuccin\").options\n\n\tlocal transparent_bg = O.transparent_background and \"NONE\" or C.mantle\n\tlocal default_colors = {\n\t\tnormal = {\n\t\t\ta = { bg = C.blue, fg = C.mantle, gui = \"bold\" },\n\t\t\tb = { bg = C.surface0, fg = C.blue },\n\t\t\tc = { bg = transparent_bg, fg = C.text },\n\t\t},\n\n\t\tinsert = {\n\t\t\ta = { bg = C.green, fg = C.base, gui = \"bold\" },\n\t\t\tb = { bg = C.surface0, fg = C.green },\n\t\t},\n\n\t\tterminal = {\n\t\t\ta = { bg = C.green, fg = C.base, gui = \"bold\" },\n\t\t\tb = { bg = C.surface0, fg = C.green },\n\t\t},\n\n\t\tcommand = {\n\t\t\ta = { bg = C.peach, fg = C.base, gui = \"bold\" },\n\t\t\tb = { bg = C.surface0, fg = C.peach },\n\t\t},\n\t\tvisual = {\n\t\t\ta = { bg = C.mauve, fg = C.base, gui = \"bold\" },\n\t\t\tb = { bg = C.surface0, fg = C.mauve },\n\t\t},\n\t\treplace = {\n\t\t\ta = { bg = C.red, fg = C.base, gui = \"bold\" },\n\t\t\tb = { bg = C.surface0, fg = C.red },\n\t\t},\n\t\tinactive = {\n\t\t\ta = { bg = transparent_bg, fg = C.blue },\n\t\t\tb = { bg = transparent_bg, fg = C.surface1, gui = \"bold\" },\n\t\t\tc = { bg = transparent_bg, fg = C.overlay0 },\n\t\t},\n\t}\n\tlocal overrides = O.integrations.lualine\n\tif overrides then\n\t\tlocal default_override = get_colors(overrides.all, C)\n\t\tlocal flavor_override = get_colors(overrides[flavour], C)\n\t\treturn vim.tbl_deep_extend(\"force\", default_colors, default_override, flavor_override)\n\tend\n\treturn default_colors\nend\n"
  },
  {
    "path": "lua/catppuccin/utils/reactive.lua",
    "content": "local M = {}\n\nfunction M.cursor(name, palette)\n\treturn {\n\t\tname = name,\n\t\tinit = function() vim.opt.guicursor:append \"a:ReactiveCursor\" end,\n\t\tmodes = {\n\t\t\tn = {\n\t\t\t\thl = {\n\t\t\t\t\tReactiveCursor = { bg = palette.yellow },\n\t\t\t\t},\n\t\t\t},\n\t\t\ti = {\n\t\t\t\thl = {\n\t\t\t\t\tReactiveCursor = { bg = palette.teal },\n\t\t\t\t},\n\t\t\t},\n\t\t\tno = {\n\t\t\t\toperators = {\n\t\t\t\t\td = {\n\t\t\t\t\t\thl = {\n\t\t\t\t\t\t\tReactiveCursor = { bg = palette.red },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\ty = {\n\t\t\t\t\t\thl = {\n\t\t\t\t\t\t\tReactiveCursor = { bg = palette.peach },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tc = {\n\t\t\t\t\t\thl = {\n\t\t\t\t\t\t\tReactiveCursor = { bg = palette.blue },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tR = {\n\t\t\t\thl = {\n\t\t\t\t\tReactiveCursor = { bg = palette.sapphire },\n\t\t\t\t},\n\t\t\t},\n\t\t\t-- visual\n\t\t\t[{ \"v\", \"V\", \"\\x16\" }] = {\n\t\t\t\thl = {\n\t\t\t\t\tReactiveCursor = { bg = palette.mauve },\n\t\t\t\t},\n\t\t\t},\n\t\t\t-- select\n\t\t\t[{ \"s\", \"S\", \"\\x13\" }] = {\n\t\t\t\thl = {\n\t\t\t\t\tReactiveCursor = { bg = palette.pink },\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\nend\n\nfunction M.cursorline(name, palette)\n\tlocal darken = require(\"catppuccin.utils.colors\").darken\n\n\treturn {\n\t\tname = name,\n\t\tstatic = {\n\t\t\twinhl = {\n\t\t\t\tinactive = {\n\t\t\t\t\tCursorLine = { bg = darken(palette.surface0, 0.75) },\n\t\t\t\t\tCursorLineNr = { bg = darken(palette.surface0, 0.75) },\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tmodes = {\n\t\t\t-- insert mode\n\t\t\ti = {\n\t\t\t\twinhl = {\n\t\t\t\t\tCursorLine = { bg = darken(palette.sky, 0.3) },\n\t\t\t\t\tCursorLineNr = { bg = darken(palette.sky, 0.3) },\n\t\t\t\t},\n\t\t\t},\n\t\t\t-- normal mode\n\t\t\tn = {\n\t\t\t\twinhl = {\n\t\t\t\t\tCursorLine = { bg = palette.surface0 },\n\t\t\t\t\tCursorLineNr = { bg = palette.surface0 },\n\t\t\t\t},\n\t\t\t},\n\t\t\t-- operator-pending mode\n\t\t\tno = {\n\t\t\t\toperators = {\n\t\t\t\t\t[{ \"gu\", \"gU\", \"g~\", \"~\" }] = {\n\t\t\t\t\t\twinhl = {\n\t\t\t\t\t\t\tCursorLine = { bg = palette.surface2 },\n\t\t\t\t\t\t\tCursorLineNr = { bg = palette.surface2 },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t-- delete operator\n\t\t\t\t\td = {\n\t\t\t\t\t\twinhl = {\n\t\t\t\t\t\t\tCursorLine = { bg = darken(palette.red, 0.4) },\n\t\t\t\t\t\t\tCursorLineNr = { bg = darken(palette.red, 0.4) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t-- yank operator\n\t\t\t\t\ty = {\n\t\t\t\t\t\twinhl = {\n\t\t\t\t\t\t\tCursorLine = { bg = darken(palette.peach, 0.3) },\n\t\t\t\t\t\t\tCursorLineNr = { bg = darken(palette.peach, 0.3) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t-- change operator\n\t\t\t\t\tc = {\n\t\t\t\t\t\twinhl = {\n\t\t\t\t\t\t\tCursorLine = { bg = darken(palette.blue, 0.4) },\n\t\t\t\t\t\t\tCursorLineNr = { bg = darken(palette.blue, 0.4) },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tR = {\n\t\t\t\twinhl = {\n\t\t\t\t\tCursorLine = { bg = darken(palette.sapphire, 0.4) },\n\t\t\t\t\tCursorLineNr = { bg = darken(palette.sapphire, 0.4) },\n\t\t\t\t},\n\t\t\t},\n\t\t\t-- visual mode\n\t\t\t[{ \"v\", \"V\", \"\\x16\" }] = {\n\t\t\t\twinhl = {\n\t\t\t\t\tVisual = { bg = darken(palette.mauve, 0.4) },\n\t\t\t\t},\n\t\t\t},\n\t\t\t-- select mode\n\t\t\t[{ \"s\", \"S\", \"\\x13\" }] = {\n\t\t\t\twinhl = {\n\t\t\t\t\tVisual = { bg = darken(palette.pink, 0.4) },\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\nend\n\nreturn M\n"
  },
  {
    "path": "lua/lualine/themes/catppuccin-frappe.lua",
    "content": "return require \"catppuccin.utils.lualine\" \"frappe\"\n"
  },
  {
    "path": "lua/lualine/themes/catppuccin-latte.lua",
    "content": "return require \"catppuccin.utils.lualine\" \"latte\"\n"
  },
  {
    "path": "lua/lualine/themes/catppuccin-macchiato.lua",
    "content": "return require \"catppuccin.utils.lualine\" \"macchiato\"\n"
  },
  {
    "path": "lua/lualine/themes/catppuccin-mocha.lua",
    "content": "return require \"catppuccin.utils.lualine\" \"mocha\"\n"
  },
  {
    "path": "lua/lualine/themes/catppuccin-nvim.lua",
    "content": "return require \"catppuccin.utils.lualine\"()\n"
  },
  {
    "path": "lua/reactive/presets/catppuccin-frappe-cursor.lua",
    "content": "local palette = require(\"catppuccin.palettes\").get_palette \"frappe\"\nlocal presets = require \"catppuccin.utils.reactive\"\n\nreturn presets.cursor(\"catppuccin-frappe-cursor\", palette)\n"
  },
  {
    "path": "lua/reactive/presets/catppuccin-frappe-cursorline.lua",
    "content": "local darken = require(\"catppuccin.utils.colors\").darken\nlocal palette = require(\"catppuccin.palettes\").get_palette \"frappe\"\n\nreturn {\n\tname = \"catppuccin-frappe-cursorline\",\n\tstatic = {\n\t\twinhl = {\n\t\t\tinactive = {\n\t\t\t\tCursorLine = { bg = darken(palette.surface0, 0.85) },\n\t\t\t\tCursorLineNr = { bg = darken(palette.surface0, 0.85) },\n\t\t\t},\n\t\t},\n\t},\n\tmodes = {\n\t\ti = {\n\t\t\twinhl = {\n\t\t\t\tCursorLine = { bg = darken(palette.sky, 0.4) },\n\t\t\t\tCursorLineNr = { bg = darken(palette.sky, 0.4) },\n\t\t\t},\n\t\t},\n\t\tn = {\n\t\t\twinhl = {\n\t\t\t\tCursorLine = { bg = palette.surface0 },\n\t\t\t\tCursorLineNr = { bg = palette.surface0 },\n\t\t\t},\n\t\t},\n\t\tno = {\n\t\t\toperators = {\n\t\t\t\t[{ \"gu\", \"gU\", \"g~\", \"~\" }] = {\n\t\t\t\t\twinhl = {\n\t\t\t\t\t\tCursorLine = { bg = palette.surface2 },\n\t\t\t\t\t\tCursorLineNr = { bg = palette.surface2 },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t-- delete operator\n\t\t\t\td = {\n\t\t\t\t\twinhl = {\n\t\t\t\t\t\tCursorLine = { bg = darken(palette.red, 0.4) },\n\t\t\t\t\t\tCursorLineNr = { bg = darken(palette.red, 0.4) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t-- yank operator\n\t\t\t\ty = {\n\t\t\t\t\twinhl = {\n\t\t\t\t\t\tCursorLine = { bg = darken(palette.peach, 0.4) },\n\t\t\t\t\t\tCursorLineNr = { bg = darken(palette.peach, 0.4) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t-- change operator\n\t\t\t\tc = {\n\t\t\t\t\twinhl = {\n\t\t\t\t\t\tCursorLine = { bg = darken(palette.blue, 0.5) },\n\t\t\t\t\t\tCursorLineNr = { bg = darken(palette.blue, 0.5) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t-- replace mode\n\t\tR = {\n\t\t\twinhl = {\n\t\t\t\tCursorLine = { bg = darken(palette.sapphire, 0.5) },\n\t\t\t\tCursorLineNr = { bg = darken(palette.sapphire, 0.5) },\n\t\t\t},\n\t\t},\n\t\t-- visual mode\n\t\t[{ \"v\", \"V\", \"\\x16\" }] = {\n\t\t\twinhl = {\n\t\t\t\tVisual = { bg = darken(palette.mauve, 0.4) },\n\t\t\t},\n\t\t},\n\t\t-- select mode\n\t\t[{ \"s\", \"S\", \"\\x13\" }] = {\n\t\t\twinhl = {\n\t\t\t\tVisual = { bg = darken(palette.pink, 0.4) },\n\t\t\t},\n\t\t},\n\t},\n}\n"
  },
  {
    "path": "lua/reactive/presets/catppuccin-latte-cursor.lua",
    "content": "local palette = require(\"catppuccin.palettes\").get_palette \"latte\"\nlocal presets = require \"catppuccin.utils.reactive\"\n\nlocal preset = presets.cursor(\"catppuccin-latte-cursor\", palette)\n\npreset.modes.R.hl.ReactiveCursor = { bg = palette.flamingo }\n\nreturn preset\n"
  },
  {
    "path": "lua/reactive/presets/catppuccin-latte-cursorline.lua",
    "content": "local lighten = require(\"catppuccin.utils.colors\").lighten\nlocal palette = require(\"catppuccin.palettes\").get_palette \"latte\"\n\nreturn {\n\tname = \"catppuccin-latte-cursorline\",\n\tstatic = {\n\t\twinhl = {\n\t\t\tinactive = {\n\t\t\t\tCursorLine = { bg = lighten(palette.surface0, 0.5) },\n\t\t\t\tCursorLineNr = { bg = lighten(palette.surface0, 0.5) },\n\t\t\t},\n\t\t},\n\t},\n\tmodes = {\n\t\ti = {\n\t\t\twinhl = {\n\t\t\t\tCursorLine = { bg = lighten(palette.teal, 0.4) },\n\t\t\t\tCursorLineNr = { bg = lighten(palette.teal, 0.4) },\n\t\t\t},\n\t\t},\n\t\tn = {\n\t\t\twinhl = {\n\t\t\t\tCursorLine = { bg = palette.surface0 },\n\t\t\t\tCursorLineNr = { bg = palette.surface0 },\n\t\t\t},\n\t\t},\n\t\tno = {\n\t\t\toperators = {\n\t\t\t\t[{ \"gu\", \"gU\", \"g~\", \"~\" }] = {\n\t\t\t\t\twinhl = {\n\t\t\t\t\t\tCursorLine = { bg = palette.surface2 },\n\t\t\t\t\t\tCursorLineNr = { bg = palette.surface2 },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t-- delete operator\n\t\t\t\td = {\n\t\t\t\t\twinhl = {\n\t\t\t\t\t\tCursorLine = { bg = lighten(palette.red, 0.3) },\n\t\t\t\t\t\tCursorLineNr = { bg = lighten(palette.red, 0.3) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t-- yank operator\n\t\t\t\ty = {\n\t\t\t\t\twinhl = {\n\t\t\t\t\t\tCursorLine = { bg = lighten(palette.peach, 0.3) },\n\t\t\t\t\t\tCursorLineNr = { bg = lighten(palette.peach, 0.3) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t-- change operator\n\t\t\t\tc = {\n\t\t\t\t\twinhl = {\n\t\t\t\t\t\tCursorLine = { bg = lighten(palette.blue, 0.3) },\n\t\t\t\t\t\tCursorLineNr = { bg = lighten(palette.blue, 0.3) },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t-- visual\n\t\t[{ \"v\", \"V\", \"\\x16\" }] = {\n\t\t\twinhl = {\n\t\t\t\tVisual = { bg = lighten(palette.mauve, 0.3) },\n\t\t\t},\n\t\t},\n\t\t-- select\n\t\t[{ \"s\", \"S\", \"\\x13\" }] = {\n\t\t\twinhl = {\n\t\t\t\tVisual = { bg = lighten(palette.pink, 0.3) },\n\t\t\t},\n\t\t},\n\t\tR = {\n\t\t\twinhl = {\n\t\t\t\tCursorLine = { bg = lighten(palette.flamingo, 0.2) },\n\t\t\t\tCursorLineNr = { bg = lighten(palette.flamingo, 0.2) },\n\t\t\t},\n\t\t},\n\t},\n}\n"
  },
  {
    "path": "lua/reactive/presets/catppuccin-macchiato-cursor.lua",
    "content": "local palette = require(\"catppuccin.palettes\").get_palette \"macchiato\"\nlocal presets = require \"catppuccin.utils.reactive\"\n\nreturn presets.cursor(\"catppuccin-macchiato-cursor\", palette)\n"
  },
  {
    "path": "lua/reactive/presets/catppuccin-macchiato-cursorline.lua",
    "content": "local palette = require(\"catppuccin.palettes\").get_palette \"macchiato\"\nlocal presets = require \"catppuccin.utils.reactive\"\nlocal darken = require(\"catppuccin.utils.colors\").darken\n\nlocal preset = presets.cursorline(\"catppuccin-macchiato-cursorline\", palette)\n\npreset.static.winhl.inactive.CursorLine = { bg = darken(palette.surface0, 0.8) }\npreset.static.winhl.inactive.CursorLineNr = { bg = darken(palette.surface0, 0.8) }\n\nreturn preset\n"
  },
  {
    "path": "lua/reactive/presets/catppuccin-mocha-cursor.lua",
    "content": "local palette = require(\"catppuccin.palettes\").get_palette \"mocha\"\nlocal presets = require \"catppuccin.utils.reactive\"\n\nreturn presets.cursor(\"catppuccin-mocha-cursor\", palette)\n"
  },
  {
    "path": "lua/reactive/presets/catppuccin-mocha-cursorline.lua",
    "content": "local palette = require(\"catppuccin.palettes\").get_palette \"mocha\"\nlocal presets = require \"catppuccin.utils.reactive\"\n\nreturn presets.cursorline(\"catppuccin-mocha-cursorline\", palette)\n"
  },
  {
    "path": "nvim.tera",
    "content": "---\nwhiskers:\n  version: 2.5.1\n  matrix:\n    - flavor\n  filename: \"lua/catppuccin/palettes/{{flavor.identifier}}.lua\"\n---\nreturn {\n{%- for id, color in flavor.colors %}\n\t{{id}} = \"#{{color.hex}}\",\n{%- endfor %}\n}\n"
  },
  {
    "path": "renovate.json",
    "content": "{\n  \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\",\n  \"extends\": [\n    \"local>catppuccin/renovate-config\"\n  ]\n}\n"
  },
  {
    "path": "scripts/generate_integration_mappings_table.lua",
    "content": "local M = {}\n\nlocal catppuccin_path = vim.fn.getcwd() -- get to the root directory of the plugin\nlocal lua_path = catppuccin_path .. \"/lua\"\n\npackage.path = package.path .. string.format(\";%s/?.lua\", lua_path) .. string.format(\";%s/?/init.lua\", lua_path)\n\nlocal integrations_path = lua_path .. \"/catppuccin/groups/integrations/\"\nlocal target_path = lua_path .. \"/catppuccin/utils/integration_mappings.lua\"\n\n---@return table mappings table holding plugin to catppuccin name\nlocal function create_table()\n\tlocal mappings = vim.iter(vim.fs.dir(integrations_path)):fold({}, function(m, filename, _)\n\t\tfilename = vim.fn.fnamemodify(filename, \":r\")\n\n\t\tlocal ok, mod = pcall(require, \"catppuccin.groups.integrations.\" .. filename)\n\n\t\tif not ok then return m end\n\n\t\t---@type string\n\t\tlocal plugin_url = mod.url\n\t\tif not plugin_url then return m end\n\t\tlocal plugin_name = require(\"catppuccin.lib.detect_integrations\").parse_url(plugin_url)\n\t\tm[plugin_name] = filename\n\n\t\treturn m\n\tend)\n\treturn mappings\nend\n\n---@return string[] lines holding the lines to be written to `target_file`\nlocal function format_table(mappings_table)\n\t-- sort the table alphabetically\n\tlocal keys = vim.tbl_keys(mappings_table)\n\ttable.sort(keys)\n\n\tlocal lines = {}\n\tfor _, plugin_name in pairs(keys) do\n\t\ttable.insert(lines, string.format('\\t[\"%s\"] = \"%s\",\\n', plugin_name, mappings_table[plugin_name]))\n\tend\n\treturn lines\nend\n\nlocal mappings = create_table()\nlocal lines = format_table(mappings)\n\nlocal target_file = io.open(target_path, \"w+\")\nassert(target_file ~= nil)\n\ntarget_file:write \"local M = {\\n\"\nfor _, line in ipairs(lines) do\n\ttarget_file:write(line)\nend\ntarget_file:write \"}\\n\"\ntarget_file:write \"\\nreturn M\\n\"\n\ntarget_file:close()\n\nreturn M\n"
  },
  {
    "path": "selene.toml",
    "content": "std = 'vim'\n\n[lints]\nmixed_table = 'allow'\n"
  },
  {
    "path": "stylua.toml",
    "content": "column_width = 120\nline_endings = \"Unix\"\nindent_type = \"Tabs\"\nindent_width = 4\nquote_style = \"AutoPreferDouble\"\ncollapse_simple_statement = \"Always\"\ncall_parentheses = \"None\"\n"
  },
  {
    "path": "tests/flavour_spec.lua",
    "content": "local function reload()\n\tfor name, _ in pairs(package.loaded) do\n\t\tif name:match \"^catppuccin\" then package.loaded[name] = nil end\n\tend\n\tvim.g.catppuccin_flavour = nil\n\tvim.cmd [[highlight clear]]\nend\n\ndescribe(\"set background to\", function()\n\tbefore_each(function()\n\t\treload()\n\t\tvim.cmd.colorscheme \"catppuccin-nvim\"\n\tend)\n\tit(\"light\", function()\n\t\tvim.o.background = \"light\"\n\t\tassert.equals(\"catppuccin-latte\", vim.g.colors_name)\n\tend)\n\tit(\"dark\", function()\n\t\tvim.o.background = \"dark\"\n\t\tassert.equals(\"catppuccin-mocha\", vim.g.colors_name)\n\tend)\nend)\n\ndescribe(\"respect vim.o.background =\", function()\n\tbefore_each(function() reload() end)\n\tit(\"light\", function()\n\t\tvim.o.background = \"light\"\n\t\tvim.cmd.colorscheme \"catppuccin-nvim\"\n\t\tassert.equals(\"catppuccin-latte\", vim.g.colors_name)\n\tend)\n\tit(\"dark\", function()\n\t\tvim.o.background = \"dark\"\n\t\tvim.cmd.colorscheme \"catppuccin-nvim\"\n\t\tassert.equals(\"catppuccin-mocha\", vim.g.colors_name)\n\tend)\nend)\n\ndescribe(\"change flavour to\", function()\n\tbefore_each(function() reload() end)\n\tit(\"latte\", function()\n\t\tvim.cmd.colorscheme \"catppuccin-latte\"\n\t\tassert.equals(\"catppuccin-latte\", vim.g.colors_name)\n\tend)\n\tit(\"frappe\", function()\n\t\tvim.cmd.colorscheme \"catppuccin-frappe\"\n\t\tassert.equals(\"catppuccin-frappe\", vim.g.colors_name)\n\tend)\n\tit(\"macchiato\", function()\n\t\tvim.cmd.colorscheme \"catppuccin-macchiato\"\n\t\tassert.equals(\"catppuccin-macchiato\", vim.g.colors_name)\n\tend)\n\tit(\"mocha\", function()\n\t\tvim.cmd.colorscheme \"catppuccin-mocha\"\n\t\tassert.equals(\"catppuccin-mocha\", vim.g.colors_name)\n\tend)\nend)\n\ndescribe(\"respect setup flavour =\", function()\n\tbefore_each(function() reload() end)\n\tit(\"latte\", function()\n\t\trequire(\"catppuccin\").setup { flavour = \"latte\" }\n\t\tvim.cmd.colorscheme \"catppuccin-nvim\"\n\t\tassert.equals(\"catppuccin-latte\", vim.g.colors_name)\n\tend)\n\tit(\"frappe\", function()\n\t\trequire(\"catppuccin\").setup { flavour = \"frappe\" }\n\t\tvim.cmd.colorscheme \"catppuccin-nvim\"\n\t\tassert.equals(\"catppuccin-frappe\", vim.g.colors_name)\n\tend)\n\tit(\"macchiato\", function()\n\t\trequire(\"catppuccin\").setup { flavour = \"macchiato\" }\n\t\tvim.cmd.colorscheme \"catppuccin-nvim\"\n\t\tassert.equals(\"catppuccin-macchiato\", vim.g.colors_name)\n\tend)\n\tit(\"mocha\", function()\n\t\trequire(\"catppuccin\").setup { flavour = \"mocha\" }\n\t\tvim.cmd.colorscheme \"catppuccin-nvim\"\n\t\tassert.equals(\"catppuccin-mocha\", vim.g.colors_name)\n\tend)\nend)\n\ndescribe(\"(deprecated) respect vim.g.catppuccin_flavour =\", function()\n\tbefore_each(function() reload() end)\n\tit(\"latte\", function()\n\t\tvim.g.catppuccin_flavour = \"latte\"\n\t\tvim.cmd.colorscheme \"catppuccin-nvim\"\n\t\tassert.equals(\"catppuccin-latte\", vim.g.colors_name)\n\tend)\n\tit(\"frappe\", function()\n\t\tvim.g.catppuccin_flavour = \"frappe\"\n\t\tvim.cmd.colorscheme \"catppuccin-nvim\"\n\t\tassert.equals(\"catppuccin-frappe\", vim.g.colors_name)\n\tend)\n\tit(\"macchiato\", function()\n\t\tvim.g.catppuccin_flavour = \"macchiato\"\n\t\tvim.cmd.colorscheme \"catppuccin-nvim\"\n\t\tassert.equals(\"catppuccin-macchiato\", vim.g.colors_name)\n\tend)\n\tit(\"mocha\", function()\n\t\tvim.g.catppuccin_flavour = \"mocha\"\n\t\tvim.cmd.colorscheme \"catppuccin-nvim\"\n\t\tassert.equals(\"catppuccin-mocha\", vim.g.colors_name)\n\tend)\nend)\n"
  },
  {
    "path": "tests/hash_spec.lua",
    "content": "describe(\"hash\", function()\n\tlocal hash = require(\"catppuccin.lib.hashing\").hash\n\tit(\"typo\", function() assert.are_not.equals(hash { custom_highlight = {} }, hash { ustom_highlight = {} }) end)\n\tit(\n\t\t\"when table order is shuffled\",\n\t\tfunction()\n\t\t\tassert.equals(\n\t\t\t\thash {\n\t\t\t\t\tcustom_highlight = {\n\t\t\t\t\t\tSearch = { fg = \"#F5C2E7\", bg = \"#45475A\", style = { \"bold\" } },\n\t\t\t\t\t\tIncSearch = { fg = \"#45475A\", bg = \"#F5C2E7\" },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\thash {\n\t\t\t\t\tcustom_highlight = {\n\t\t\t\t\t\tSearch = { style = { \"bold\" }, bg = \"#45475A\", fg = \"#F5C2E7\" },\n\t\t\t\t\t\tIncSearch = { bg = \"#F5C2E7\", fg = \"#45475A\" },\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\t\tend\n\t)\n\tit(\n\t\t\"when toggle true/false\",\n\t\tfunction()\n\t\t\tassert.are_not.equals({\n\t\t\t\tintegrations = {\n\t\t\t\t\tnavic = true,\n\t\t\t\t\tnoice = true,\n\t\t\t\t\tfidget = true,\n\t\t\t\t},\n\t\t\t}, {\n\t\t\t\tintegrations = {\n\t\t\t\t\tnavic = true,\n\t\t\t\t\tnoice = false,\n\t\t\t\t\tfidget = false,\n\t\t\t\t},\n\t\t\t})\n\t\tend\n\t)\nend)\n"
  },
  {
    "path": "tests/init.lua",
    "content": "local status, error = pcall(function()\n\tlocal root = vim.fn.fnamemodify(\".repro\", \":p\")\n\tfor _, name in ipairs { \"config\", \"data\", \"state\", \"cache\" } do\n\t\tvim.env[(\"XDG_%s_HOME\"):format(name:upper())] = root .. \"/\" .. name\n\tend\n\n\tlocal lazypath = root .. \"/plugins/lazy.nvim\"\n\tif not vim.loop.fs_stat(lazypath) then\n\t\tvim.fn.system { \"git\", \"clone\", \"--filter=blob:none\", \"https://github.com/folke/lazy.nvim.git\", lazypath }\n\tend\n\tvim.opt.runtimepath:prepend(lazypath)\n\n\trequire(\"lazy\").setup({\n\t\t{ \"catppuccin/nvim\", dev = true },\n\t}, {\n\t\troot = root .. \"/plugins\",\n\t\tdev = {\n\t\t\tpath = debug.getinfo(1).source:sub(2, -21),\n\t\t},\n\t})\n\n\trequire(\"catppuccin\").setup()\n\tvim.cmd.colorscheme \"catppuccin-nvim\"\nend)\n\nif error then print(error) end\nvim.cmd(status and \"0cq\" or \"1cq\")\n"
  },
  {
    "path": "tests/init.vim",
    "content": "try\n\tcall plug#begin()\n\tPlug expand('<sfile>')[0:-16] \n\tcall plug#end()\n\n\tlua require(\"catppuccin\").setup {}\n  colorscheme catppuccin-nvim\ncatch\n\techo v:exception\n\t1cq\nfinally\n\t0cq\nendtry\n"
  },
  {
    "path": "tests/minimal_init.vim",
    "content": "set rtp+=.\n\nruntime! plugin/plenary.vim\n"
  },
  {
    "path": "tests/palette_spec.lua",
    "content": "local function reload()\n\tfor name, _ in pairs(package.loaded) do\n\t\tif name:match \"^catppuccin\" then package.loaded[name] = nil end\n\tend\n\tvim.g.catppuccin_flavour = nil\n\tvim.cmd [[highlight clear]]\nend\n\n-- TODO: Move this to setup_spec\ndescribe(\"get palette\", function()\n\tbefore_each(function() reload() end)\n\tit(\"before setup\", function()\n\t\tassert.equals(pcall(function() require(\"catppuccin.palettes\").get_palette() end), true)\n\tend)\n\tit(\"after setup\", function()\n\t\trequire(\"catppuccin\").setup()\n\t\tassert.equals(pcall(function() require(\"catppuccin.palettes\").get_palette() end), true)\n\tend)\nend)\n"
  },
  {
    "path": "tests/pattern_spec.lua",
    "content": "describe(\"parse url from\", function()\n\tlocal parse_url = require(\"catppuccin.lib.detect_integrations\").parse_url\n\n\tit(\n\t\t\"word-word-word\",\n\t\tfunction()\n\t\t\tassert.equals(\n\t\t\t\tparse_url \"https://github.com/nvim-treesitter/nvim-treesitter-context\",\n\t\t\t\t\"nvim-treesitter-context\"\n\t\t\t)\n\t\tend\n\t)\n\tit(\n\t\t\"nvim-word-word[d]\",\n\t\tfunction() assert.equals(parse_url \"https://github.com/HiPhish/nvim-ts-rainbow2\", \"nvim-ts-rainbow2\") end\n\t)\n\tit(\"nvim-word\", function() assert.equals(parse_url \"https://github.com/kevinhwang91/nvim-ufo\", \"nvim-ufo\") end)\n\tit(\n\t\t\"word.nvim\",\n\t\tfunction() assert.equals(parse_url \"https://www.github.com/nvim-telescope/telescope.nvim\", \"telescope.nvim\") end\n\t)\n\tit(\n\t\t\"word-word.nvim\",\n\t\tfunction()\n\t\t\tassert.equals(\n\t\t\t\tparse_url \"https://github.com/MeanderingProgrammer/render-markdown.nvim\",\n\t\t\t\t\"render-markdown.nvim\"\n\t\t\t)\n\t\tend\n\t)\nend)\n"
  },
  {
    "path": "vim.toml",
    "content": "[selene]\nbase = \"lua51\"\nname = \"vim\"\n\n[vim]\nany = true\n\n[jit]\nany = true\n\n[assert]\nany = true\n\n[describe]\nany = true\n\n[it]\nany = true\n\n[before_each.args]\nany = true\n"
  }
]