Showing preview only (334K chars total). Download the full file or copy to clipboard to get everything.
Repository: catppuccin/nvim
Branch: main
Commit: 384f304c8b04
Files: 151
Total size: 299.3 KB
Directory structure:
gitextract_sldfuu1t/
├── .editorconfig
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.yml
│ │ ├── config.yml
│ │ └── feature_request.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── workflows/
│ ├── formatting.yml
│ ├── neovim.yml
│ ├── patch.yml
│ ├── release.yml
│ └── tests.yml
├── .gitignore
├── CHANGELOG.md
├── LICENSE.md
├── README.md
├── after/
│ └── queries/
│ ├── css/
│ │ └── highlights.scm
│ ├── javascript/
│ │ └── highlights.scm
│ └── typescript/
│ └── highlights.scm
├── colors/
│ ├── catppuccin-frappe.lua
│ ├── catppuccin-latte.lua
│ ├── catppuccin-macchiato.lua
│ ├── catppuccin-mocha.lua
│ ├── catppuccin-nvim.vim
│ └── catppuccin.lua
├── doc/
│ └── catppuccin.txt
├── justfile
├── lua/
│ ├── barbecue/
│ │ └── theme/
│ │ ├── catppuccin-frappe.lua
│ │ ├── catppuccin-latte.lua
│ │ ├── catppuccin-macchiato.lua
│ │ ├── catppuccin-mocha.lua
│ │ └── catppuccin-nvim.lua
│ ├── catppuccin/
│ │ ├── groups/
│ │ │ ├── editor.lua
│ │ │ ├── integrations/
│ │ │ │ ├── aerial.lua
│ │ │ │ ├── alpha.lua
│ │ │ │ ├── artio.lua
│ │ │ │ ├── avante.lua
│ │ │ │ ├── barbar.lua
│ │ │ │ ├── beacon.lua
│ │ │ │ ├── blink_cmp.lua
│ │ │ │ ├── blink_indent.lua
│ │ │ │ ├── blink_pairs.lua
│ │ │ │ ├── buffon.lua
│ │ │ │ ├── cmp.lua
│ │ │ │ ├── coc_nvim.lua
│ │ │ │ ├── colorful_winsep.lua
│ │ │ │ ├── copilot_vim.lua
│ │ │ │ ├── dadbod_ui.lua
│ │ │ │ ├── dap.lua
│ │ │ │ ├── dap_ui.lua
│ │ │ │ ├── dashboard.lua
│ │ │ │ ├── diffview.lua
│ │ │ │ ├── dropbar.lua
│ │ │ │ ├── fern.lua
│ │ │ │ ├── fidget.lua
│ │ │ │ ├── flash.lua
│ │ │ │ ├── fzf.lua
│ │ │ │ ├── gitgraph.lua
│ │ │ │ ├── gitgutter.lua
│ │ │ │ ├── gitsigns.lua
│ │ │ │ ├── grug_far.lua
│ │ │ │ ├── harpoon.lua
│ │ │ │ ├── headlines.lua
│ │ │ │ ├── hop.lua
│ │ │ │ ├── illuminate.lua
│ │ │ │ ├── indent_blankline.lua
│ │ │ │ ├── leap.lua
│ │ │ │ ├── lightspeed.lua
│ │ │ │ ├── lir.lua
│ │ │ │ ├── lsp_saga.lua
│ │ │ │ ├── lsp_trouble.lua
│ │ │ │ ├── markview.lua
│ │ │ │ ├── mason.lua
│ │ │ │ ├── mini.lua
│ │ │ │ ├── navic.lua
│ │ │ │ ├── neogit.lua
│ │ │ │ ├── neotest.lua
│ │ │ │ ├── neotree.lua
│ │ │ │ ├── noice.lua
│ │ │ │ ├── notifier.lua
│ │ │ │ ├── notify.lua
│ │ │ │ ├── nvim_surround.lua
│ │ │ │ ├── nvimtree.lua
│ │ │ │ ├── octo.lua
│ │ │ │ ├── overseer.lua
│ │ │ │ ├── pounce.lua
│ │ │ │ ├── rainbow_delimiters.lua
│ │ │ │ ├── render_markdown.lua
│ │ │ │ ├── sandwich.lua
│ │ │ │ ├── signify.lua
│ │ │ │ ├── snacks.lua
│ │ │ │ ├── symbols_outline.lua
│ │ │ │ ├── telekasten.lua
│ │ │ │ ├── telescope.lua
│ │ │ │ ├── treesitter_context.lua
│ │ │ │ ├── ts_rainbow.lua
│ │ │ │ ├── ts_rainbow2.lua
│ │ │ │ ├── ufo.lua
│ │ │ │ ├── vim_sneak.lua
│ │ │ │ ├── vimwiki.lua
│ │ │ │ ├── which_key.lua
│ │ │ │ └── window_picker.lua
│ │ │ ├── lsp.lua
│ │ │ ├── semantic_tokens.lua
│ │ │ ├── syntax.lua
│ │ │ ├── terminal.lua
│ │ │ └── treesitter.lua
│ │ ├── init.lua
│ │ ├── lib/
│ │ │ ├── compiler.lua
│ │ │ ├── detect_integrations.lua
│ │ │ ├── hashing.lua
│ │ │ ├── highlighter.lua
│ │ │ ├── hsluv.lua
│ │ │ └── mapper.lua
│ │ ├── palettes/
│ │ │ ├── frappe.lua
│ │ │ ├── init.lua
│ │ │ ├── latte.lua
│ │ │ ├── macchiato.lua
│ │ │ └── mocha.lua
│ │ ├── special/
│ │ │ ├── bufferline.lua
│ │ │ └── feline.lua
│ │ ├── types.lua
│ │ └── utils/
│ │ ├── barbecue.lua
│ │ ├── colors.lua
│ │ ├── integration_mappings.lua
│ │ ├── lualine.lua
│ │ └── reactive.lua
│ ├── lualine/
│ │ └── themes/
│ │ ├── catppuccin-frappe.lua
│ │ ├── catppuccin-latte.lua
│ │ ├── catppuccin-macchiato.lua
│ │ ├── catppuccin-mocha.lua
│ │ └── catppuccin-nvim.lua
│ └── reactive/
│ └── presets/
│ ├── catppuccin-frappe-cursor.lua
│ ├── catppuccin-frappe-cursorline.lua
│ ├── catppuccin-latte-cursor.lua
│ ├── catppuccin-latte-cursorline.lua
│ ├── catppuccin-macchiato-cursor.lua
│ ├── catppuccin-macchiato-cursorline.lua
│ ├── catppuccin-mocha-cursor.lua
│ └── catppuccin-mocha-cursorline.lua
├── nvim.tera
├── renovate.json
├── scripts/
│ └── generate_integration_mappings_table.lua
├── selene.toml
├── stylua.toml
├── tests/
│ ├── flavour_spec.lua
│ ├── hash_spec.lua
│ ├── init.lua
│ ├── init.vim
│ ├── minimal_init.vim
│ ├── palette_spec.lua
│ └── pattern_spec.lua
└── vim.toml
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# EditorConfig is awesome: https://EditorConfig.org
root = true
[*]
end_of_line = lf
charset = utf-8
insert_final_newline = true
[*.{lua,tera}]
indent_style = tab
[*.{diff,md}]
trim_trailing_whitespace = false
indent_style = space
indent_size = 4
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: Bug report
description: Report a problem with Catppuccin
labels: [bug]
body:
- type: textarea
attributes:
label: "Description"
description: "A short description of the problem you are reporting."
validations:
required: true
- type: textarea
attributes:
label: "Neovim version"
description: "Output of `nvim --version` (Catppuccin requires neovim >= 0.8)"
render: markdown
placeholder: |
NVIM v0.9.0
Build type: Release
LuaJIT 2.1.0-beta3
validations:
required: true
- type: input
attributes:
label: "Terminal and multiplexer"
placeholder: "kitty 0.29.2 with tmux 3.3a"
validations:
required: true
- type: markdown
attributes:
value: |
# FOR TMUX USERS
FOLLOW THESE GIST BEFORE OPENING THE ISSUE
- [Enable true color support](https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6) to fix the [abnormal colors](https://github.com/catppuccin/nvim/issues/415)
- [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)
- type: input
attributes:
label: "Catppuccin version / branch / rev"
placeholder: "catppuccin v1.4.0"
validations:
required: true
- type: textarea
attributes:
label: "Steps to reproduce"
description: "Steps to reproduce using the minimal config provided below."
placeholder: |
1. `nvim -u repro.lua`
2. ...
validations:
required: true
- type: textarea
attributes:
label: "Expected behavior"
description: "A description of the behavior you expected:"
validations:
required: true
- type: textarea
attributes:
label: "Actual behavior"
description: "Observed behavior (may optionally include logs, images, or videos)."
validations:
required: true
- type: textarea
attributes:
label: Repro
description: Minimal `init.lua` to reproduce this issue. Save as `repro.lua` and run with `nvim -u repro.lua`
value: |
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"catppuccin/nvim",
-- add any other plugins here
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("catppuccin-nvim")
-- add anything else here
render: Lua
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
- name: Question
url: https://discord.com/servers/catppuccin-907385605422448742
about: Join our discord server for real-time answers and more!
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: "Suggest an idea for the project"
title: ""
labels: enhancement
assignees: ""
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is.
Ex. I'm always frustrated when [...]. My workflow is like this [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
🎉 First off, thanks for taking the time to contribute! 🎉
Here are some guidelines:
- Format code using [stylua](https://github.com/johnnymorganz/stylua).
- New plugin integration should be added in alphabetical order:
- to the [README](https://github.com/catppuccin/nvim#integrations) (vimdoc is auto-generated).
- to [types.lua](https://github.com/catppuccin/nvim/blob/main/lua/catppuccin/types.lua)
- Create a topic branch on your fork for your specific PR.
- Use [conventionalcommits.org's](https://www.conventionalcommits.org/en/v1.0.0/)
rules for explicit and meaningful commit messages.
- If it's your first time contributing to a project, then read
[About pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)
on Github's docs.
Here are some tips:
- Use `vim.g.catppuccin_debug = true` to get live config re-loading
================================================
FILE: .github/workflows/formatting.yml
================================================
name: StyLua
on:
pull_request:
push:
paths-ignore:
- "*.md"
branches:
- main
jobs:
stylua:
name: StyLua
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: JohnnyMorganz/stylua-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
version: latest
args: --check --config-path=stylua.toml .
================================================
FILE: .github/workflows/neovim.yml
================================================
---
name: Neovim
on:
pull_request:
push:
paths-ignore:
- "*.md"
branches:
- main
jobs:
ubuntu:
name: Ubuntu
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Install Neovim
uses: MunifTanjim/setup-neovim-action@v1
- name: Run neovim
run: |
nvim --version
nvim --headless -u tests/init.lua +q
macos:
name: Macos
runs-on: macos-latest
steps:
- uses: actions/checkout@v5
- name: Install Neovim
run: |
wget -q https://github.com/neovim/neovim/releases/download/nightly/nvim-macos-x86_64.tar.gz
xattr -c ./nvim-macos-x86_64.tar.gz
tar xzvf nvim-macos-x86_64.tar.gz &> /dev/null
ln -s $(pwd)/nvim-macos-x86_64/bin/nvim /usr/local/bin/nvim
- name: Run neovim
run: |
nvim --version
nvim --headless -u tests/init.lua +q
windows:
name: Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v5
- name: Install Neovim
run: |
C:\msys64\usr\bin\wget.exe -q https://github.com/neovim/neovim/releases/download/nightly/nvim-win64.zip
7z x nvim-win64.zip
Add-Content $env:GITHUB_PATH ".\nvim-win64\bin\"
- name: Run neovim
run: |
nvim --version
nvim --headless -u tests/init.lua +q
================================================
FILE: .github/workflows/patch.yml
================================================
name: Patch
on:
workflow_dispatch:
pull_request:
branches: [main]
jobs:
docs:
name: generate vimdoc
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.head_ref }}
- name: panvimdoc
uses: kdheepak/panvimdoc@main
with:
vimdoc: catppuccin
description: "Soothing pastel theme for NeoVim"
pandoc: "README.md"
toc: true
version: "nvim >= 0.8.0"
treesitter: true
- uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: "docs: auto generate vimdoc"
integration-table-gen:
needs: [docs]
name: update integration table
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.head_ref }}
- name: Install Neovim
uses: MunifTanjim/setup-neovim-action@v1
- name: Update integration table
run: |
nvim -l scripts/generate_integration_mappings_table.lua
- uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: "chore: auto generate integration table"
================================================
FILE: .github/workflows/release.yml
================================================
name: release
on:
push:
branches: [main]
workflow_dispatch:
jobs:
release:
name: release
runs-on: ubuntu-latest
steps:
- uses: googleapis/release-please-action@v4
id: release
with:
release-type: simple
package-name: catppuccin
- uses: actions/checkout@v5
- name: tag stable versions
if: ${{ steps.release.outputs.release_created }}
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
git remote add gh-token "https://${{ secrets.GITHUB_TOKEN }}@github.com/googleapis/release-please-action.git"
git tag -d stable || true
git push origin :stable || true
git tag -a stable -m "Last Stable Release"
git push origin stable
================================================
FILE: .github/workflows/tests.yml
================================================
---
name: Tests
on:
pull_request:
push:
paths-ignore:
- "*.md"
branches:
- main
workflow_dispatch:
schedule:
- cron: '0 0 * * *' # Run every day at midnight UTC
jobs:
ubuntu:
name: Plenary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
path: nvim
- uses: actions/checkout@v5
with:
ref: user-configs
path: user-configs
- run: |
mv user-configs/tests/* nvim/tests/
- name: Install Neovim
uses: MunifTanjim/setup-neovim-action@v1
- name: Fetch dependencies
run: |
git clone --depth 1 https://github.com/nvim-lua/plenary.nvim ~/.local/share/nvim/site/pack/vendor/start/plenary.nvim
ln -s $(pwd) ~/.local/share/nvim/site/pack/vendor/start
- name: Run tests
working-directory: ./nvim
run: |
nvim --version
[ ! -d tests ] && exit 0
nvim --headless -u tests/minimal_init.vim -c "PlenaryBustedDirectory tests/ {minimal_init = 'tests/minimal_init.vim', sequential = true}"
================================================
FILE: .gitignore
================================================
doc/tags
.vscode/
.DS_Store
.repro
================================================
FILE: CHANGELOG.md
================================================
# Changelog
## [1.11.0](https://github.com/catppuccin/nvim/compare/v1.10.0...v1.11.0) (2025-07-31)
### Features
* automatic integration detection ([#871](https://github.com/catppuccin/nvim/issues/871)) ([44bd5ea](https://github.com/catppuccin/nvim/commit/44bd5ea20a1eccba71ee39e436d2fdf5017f1f80))
* **blink-cmp:** add `style` option ([#867](https://github.com/catppuccin/nvim/issues/867)) ([fa42eb5](https://github.com/catppuccin/nvim/commit/fa42eb5e26819ef58884257d5ae95dd0552b9a66))
* **blink-cmp:** improved support ([#862](https://github.com/catppuccin/nvim/issues/862)) ([d0972f1](https://github.com/catppuccin/nvim/commit/d0972f1de6fa771654bb881879afc27d3ddb7421))
* **buffon:** add buffon.nvim integration ([#855](https://github.com/catppuccin/nvim/issues/855)) ([ae1bac4](https://github.com/catppuccin/nvim/commit/ae1bac4c8026f705ef54677c0353be922480bea5))
* **buffon:** add to auto integration list ([#878](https://github.com/catppuccin/nvim/issues/878)) ([82f3dce](https://github.com/catppuccin/nvim/commit/82f3dcedc9acc242d2d4f98abca02e2f10a75248))
* make bg of `FloatBorder` same as `NormalFloat` ([#877](https://github.com/catppuccin/nvim/issues/877)) ([aac17a6](https://github.com/catppuccin/nvim/commit/aac17a6b20931e6aa6ca036c63a6f59e8c92135a))
* **markview:** add markview integration ([#854](https://github.com/catppuccin/nvim/issues/854)) ([961ec64](https://github.com/catppuccin/nvim/commit/961ec64a14e4b329475fc20226a59a28eb040303))
* **snacks:** add nvchad style for snacks.picker ([#858](https://github.com/catppuccin/nvim/issues/858)) ([84336e0](https://github.com/catppuccin/nvim/commit/84336e08415858f6d835835e81a4f79e585463c6))
* **snacks:** add snacks.picker support ([#853](https://github.com/catppuccin/nvim/issues/853)) ([be1e5e6](https://github.com/catppuccin/nvim/commit/be1e5e6308bb9d016bf5c1565e0f1d5e46400d7a))
* **telescope:** add `nvchad_outlined` style ([aac17a6](https://github.com/catppuccin/nvim/commit/aac17a6b20931e6aa6ca036c63a6f59e8c92135a))
### Bug Fixes
* 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))
* adjust default integration settings ([#863](https://github.com/catppuccin/nvim/issues/863)) ([62dbc84](https://github.com/catppuccin/nvim/commit/62dbc841f48046dfe1be74179e92f53e1c33952c))
* **avante:** link background and border hl ([#865](https://github.com/catppuccin/nvim/issues/865)) ([387b4b1](https://github.com/catppuccin/nvim/commit/387b4b19568cbda82c1d6def9ded31fd6ae7fb99))
* **cursor:** update cursor color to rosewater / base ([#857](https://github.com/catppuccin/nvim/issues/857)) ([a0c769b](https://github.com/catppuccin/nvim/commit/a0c769bc7cd04bbbf258b3d5f01e2bdce744108d))
* **editor:** link `FloatTitle` bg to `NormalFloat` ([#882](https://github.com/catppuccin/nvim/issues/882)) ([d7b413f](https://github.com/catppuccin/nvim/commit/d7b413fdc2c2dfcff1404c0ef1e16c6d8314b20f))
* enable auto detected integrations with table options ([#886](https://github.com/catppuccin/nvim/issues/886)) ([5fa8d24](https://github.com/catppuccin/nvim/commit/5fa8d240944c47261f5e9172dc3dbc790fecaed2))
* **fzf:** link normal and title to defaults ([#883](https://github.com/catppuccin/nvim/issues/883)) ([0cf15ba](https://github.com/catppuccin/nvim/commit/0cf15babf716ed56593da425a236245f709dcbfb))
* **markview:** adjust highlights ([#860](https://github.com/catppuccin/nvim/issues/860)) ([30b1a81](https://github.com/catppuccin/nvim/commit/30b1a81c9f7a5d1b5616da0afff1bfe9aa26e622))
* **markview:** incorrect heading bg when using transparent bg ([56a9dfd](https://github.com/catppuccin/nvim/commit/56a9dfd1e05868cf3189369aad87242941396563))
* **mini.picker:** border and match styling ([#889](https://github.com/catppuccin/nvim/issues/889)) ([94f6e8a](https://github.com/catppuccin/nvim/commit/94f6e8a06b6bb7b8e5529cf9f93adb4654534241))
* **octo:** clear OctoFilePanelFileName hl group ([#875](https://github.com/catppuccin/nvim/issues/875)) ([784e529](https://github.com/catppuccin/nvim/commit/784e529c790b451abd0c169f055fc5ae89af039f))
* **render-markdown:** incorrect heading bg when using transparent bg ([56a9dfd](https://github.com/catppuccin/nvim/commit/56a9dfd1e05868cf3189369aad87242941396563))
## [1.10.0](https://github.com/catppuccin/nvim/compare/v1.9.0...v1.10.0) (2025-05-04)
### Features
* add background highlight to LSP signature help ([#771](https://github.com/catppuccin/nvim/issues/771)) ([de096dd](https://github.com/catppuccin/nvim/commit/de096dd4bc88be563617db50594b2dabe7f1bd86))
* **blink-cmp:** add integration ([#777](https://github.com/catppuccin/nvim/issues/777)) ([abceb64](https://github.com/catppuccin/nvim/commit/abceb64a223aaada38c21e744763d111e73aaf0a))
* **blink-cmp:** support `BlinkCmpLabelMatch` hl ([#802](https://github.com/catppuccin/nvim/issues/802)) ([637d99e](https://github.com/catppuccin/nvim/commit/637d99e638bc6f1efedac582f6ccab08badac0c6))
* **blink.cmp:** highlight `BlinkCmpKindCopilot` as `teal` ([#813](https://github.com/catppuccin/nvim/issues/813)) ([bd80c25](https://github.com/catppuccin/nvim/commit/bd80c256606770395b901f7c0b849517957da882))
* **copilot:** add integration ([#803](https://github.com/catppuccin/nvim/issues/803)) ([b71eacb](https://github.com/catppuccin/nvim/commit/b71eacb06842c493a490d24730f0a7c1fe82b61c))
* **gitgutter:** add LineNr highlights ([#833](https://github.com/catppuccin/nvim/issues/833)) ([4bb938b](https://github.com/catppuccin/nvim/commit/4bb938bbba41d306db18bf0eb0633a5f28fd7ba0))
* **gitsign:** improve gitsign inline add and delete colors ([#808](https://github.com/catppuccin/nvim/issues/808)) ([4965db2](https://github.com/catppuccin/nvim/commit/4965db2d6155c25db4e8417465fc2703fdf4c2b7))
* **integrations:** add support for gitgraph.nvim ([#822](https://github.com/catppuccin/nvim/issues/822)) ([58f1a92](https://github.com/catppuccin/nvim/commit/58f1a926a018b226ce2fd67e0878f1fc9bc45bb7))
* **integrations:** remove normalnvim ([#828](https://github.com/catppuccin/nvim/issues/828)) ([be45e04](https://github.com/catppuccin/nvim/commit/be45e0456b8faf37bd0cfed3c26617cbdad4152b))
* **integrations:** update mini.indentscope ([#821](https://github.com/catppuccin/nvim/issues/821)) ([0b2437b](https://github.com/catppuccin/nvim/commit/0b2437bcc12b4021614dc41fcea9d0f136d94063))
* **PmenuExtra:** add support for PmenuExtra highlights ([#851](https://github.com/catppuccin/nvim/issues/851)) ([b01060e](https://github.com/catppuccin/nvim/commit/b01060ef9e0a9d39681d18eafd91bc4a88114681))
* **reactive:** add cursor color for normal mode ([#834](https://github.com/catppuccin/nvim/issues/834)) ([5b5e3ae](https://github.com/catppuccin/nvim/commit/5b5e3aef9ad7af84f463d17b5479f06b87d5c429))
* **render-markdown:** change code block background to `mantle` ([#774](https://github.com/catppuccin/nvim/issues/774)) ([7be452e](https://github.com/catppuccin/nvim/commit/7be452ee067978cdc8b2c5f3411f0c71ffa612b9))
* **signify:** add vim-signify integration ([#850](https://github.com/catppuccin/nvim/issues/850)) ([54fb7f4](https://github.com/catppuccin/nvim/commit/54fb7f43e1eeadd2401a002d4856760c3f12a55c))
* **snacks:** add indent highlights ([#827](https://github.com/catppuccin/nvim/issues/827)) ([57c4077](https://github.com/catppuccin/nvim/commit/57c4077c4c1eb8430de4ae001738aa55f0a79fd8))
* **snacks:** add integration ([#807](https://github.com/catppuccin/nvim/issues/807)) ([f8a155a](https://github.com/catppuccin/nvim/commit/f8a155ab5891c5d2fb709b7e85627f1783d5a5d9))
### Bug Fixes
* **blink-cmp:** follow `Pmenu` highlights ([#799](https://github.com/catppuccin/nvim/issues/799)) ([35d8057](https://github.com/catppuccin/nvim/commit/35d8057137af463c9f41f169539e9b190d57d269))
* **colorful-winsep:** respect transparent_background configuration ([#775](https://github.com/catppuccin/nvim/issues/775)) ([9e6ec28](https://github.com/catppuccin/nvim/commit/9e6ec281f58038e5b30ce9a8828e6f9f9d744a27))
* **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))
* **editor:** add missing background for `TabLineFill` ([#757](https://github.com/catppuccin/nvim/issues/757)) ([bfdd6b3](https://github.com/catppuccin/nvim/commit/bfdd6b3833e991fa45c3d5931ffed853dca60fab))
* **editor:** make TabLine more readable ([#760](https://github.com/catppuccin/nvim/issues/760)) ([4fd72a9](https://github.com/catppuccin/nvim/commit/4fd72a9ab64b393c2c22b168508fd244877fec96))
* **editor:** more "modern" tabline ([#776](https://github.com/catppuccin/nvim/issues/776)) ([5ea0888](https://github.com/catppuccin/nvim/commit/5ea0888e9003f1457d13685ac76f046af26a5524))
* **gitsigns:** respect transparent option for gitsigns ([#844](https://github.com/catppuccin/nvim/issues/844)) ([2dfca93](https://github.com/catppuccin/nvim/commit/2dfca93e077a1568cc9d4a9d88eaabcf5fd4142c))
* **kitty:** respect `transparent_background` option ([#786](https://github.com/catppuccin/nvim/issues/786)) ([08efbef](https://github.com/catppuccin/nvim/commit/08efbefa415fbe8ae48799cddc6a5783d2465375))
* match fzf-lua highlights to telescope ([#812](https://github.com/catppuccin/nvim/issues/812)) ([f67b886](https://github.com/catppuccin/nvim/commit/f67b886d65a029f12ffa298701fb8f1efd89295d))
* **nvim-surround:** bg conflicts with document highlight ([#800](https://github.com/catppuccin/nvim/issues/800)) ([a4c64d7](https://github.com/catppuccin/nvim/commit/a4c64d7605f6eb95674e322bbbedfaa00aab7904))
* **octo:** incorrect highlight backgrounds ([#836](https://github.com/catppuccin/nvim/issues/836)) ([7ab1a6e](https://github.com/catppuccin/nvim/commit/7ab1a6ec70a664ecb95d84669efc20aaf4f4ed1b))
* respect transparent option for gitsigns integration ([#826](https://github.com/catppuccin/nvim/issues/826)) ([ebfb647](https://github.com/catppuccin/nvim/commit/ebfb6471cc4faa107234def49c308e95e44fd056))
* **syntax:** use `overlay2` for comments ([#768](https://github.com/catppuccin/nvim/issues/768)) ([147e7cf](https://github.com/catppuccin/nvim/commit/147e7cfb5b7ec05702468c332cf7e378d935abd3))
### Reverts
* fix(kitty): respect `transparent_background` option ([#794](https://github.com/catppuccin/nvim/issues/794)) ([65bf0b1](https://github.com/catppuccin/nvim/commit/65bf0b16f57a3db70d6a93ac68882dd9a31d0565))
## [1.9.0](https://github.com/catppuccin/nvim/compare/v1.8.0...v1.9.0) (2024-08-09)
### Features
* add fzf-lua integration ([#746](https://github.com/catppuccin/nvim/issues/746)) ([05206bb](https://github.com/catppuccin/nvim/commit/05206bbb6d500a339cd55a9486532c3871a4455e))
* 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))
* add markdown.nvim integration ([ba41328](https://github.com/catppuccin/nvim/commit/ba413282677e1027a42d6ff585115d3e1df12b66))
* add vim-dadbod-ui integration ([#747](https://github.com/catppuccin/nvim/issues/747)) ([4db4c77](https://github.com/catppuccin/nvim/commit/4db4c77cc17d23aa90b393f3e550ce99b9e903d5))
* **render-markdown:** add highlights for callouts ([03a2f35](https://github.com/catppuccin/nvim/commit/03a2f354456373c199eb7829fd14120cc2099108))
* **terminal:** highlight `TermCursor` and `TermCursorNC` ([#749](https://github.com/catppuccin/nvim/issues/749)) ([548b2a2](https://github.com/catppuccin/nvim/commit/548b2a25415bb60e05c536b7658aa8ffbfeb3e45))
## [1.8.0](https://github.com/catppuccin/nvim/compare/v1.7.0...v1.8.0) (2024-07-25)
### Features
* add `grug-far.nvim` integration ([#735](https://github.com/catppuccin/nvim/issues/735)) ([07f1ee8](https://github.com/catppuccin/nvim/commit/07f1ee861394c163d1f1d3e1926eb309e0c81027))
* **bufferline:** add `indicator_visible` and `modified_visible` ([#716](https://github.com/catppuccin/nvim/issues/716)) ([cc8e290](https://github.com/catppuccin/nvim/commit/cc8e290d4c0d572171243087f8541e49be2c8764))
* **csv:** built-in rainbow highlighting ([#720](https://github.com/catppuccin/nvim/issues/720)) ([67565cd](https://github.com/catppuccin/nvim/commit/67565cd353fa543fa30cb738570c2e4c87da3e9c))
* **diffview:** add diffview integrations ([#700](https://github.com/catppuccin/nvim/issues/700)) ([182f256](https://github.com/catppuccin/nvim/commit/182f25640f85a3da2f1f22b088848d896a50fcce))
* **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))
* **feline:** allow to hide lazy.nvim updates ([#731](https://github.com/catppuccin/nvim/issues/731)) ([7946d1a](https://github.com/catppuccin/nvim/commit/7946d1a195c66fed38b3e34f9fa8e0c5a2da0700))
* **integration:** add colorful-winsep.nvim ([#701](https://github.com/catppuccin/nvim/issues/701)) ([30481d6](https://github.com/catppuccin/nvim/commit/30481d659b6524e6bcae0756201d737e5bc1f209))
* **mini:** add new highlight groups ([#721](https://github.com/catppuccin/nvim/issues/721)) ([6827a67](https://github.com/catppuccin/nvim/commit/6827a6763888f73df686f32c0e5ffb5b6b754d7b))
* **nvim-surround:** add integration ([#733](https://github.com/catppuccin/nvim/issues/733)) ([3f16c6d](https://github.com/catppuccin/nvim/commit/3f16c6d1f25bcb641f7b59f7108b9f4533974c41))
* support new "Ok" diagnostics ([5215ea5](https://github.com/catppuccin/nvim/commit/5215ea59df6d0a7e27da9a5cd1165e06d1b04cbe))
* **treesitter-content:** highlight line number ([#709](https://github.com/catppuccin/nvim/issues/709)) ([4edca6b](https://github.com/catppuccin/nvim/commit/4edca6bed2ccc2715317725985c692ef0a992a50))
### Bug Fixes
* **dapui:** border match bg color ([#727](https://github.com/catppuccin/nvim/issues/727)) ([4ea0173](https://github.com/catppuccin/nvim/commit/4ea01738dc7b872f0081e7093e46d418d8d4c5a1))
* **defaults:** Enable mini integration by default ([894efb5](https://github.com/catppuccin/nvim/commit/894efb557728e532aa98b98029d16907a214ec05))
* **leap:** highlight group for LeapLabel ([2d3419c](https://github.com/catppuccin/nvim/commit/2d3419c2aead379b7d1854d32458f20ffaa58562))
* **neogit:** link WinSeparator ([#713](https://github.com/catppuccin/nvim/issues/713)) ([afccb3d](https://github.com/catppuccin/nvim/commit/afccb3d2377a3d6f0f65405899c9c23b1fd7cc28))
* small typo in feline.lua file ([#719](https://github.com/catppuccin/nvim/issues/719)) ([c0bea77](https://github.com/catppuccin/nvim/commit/c0bea773a09e49e123136b099bce9ddc1bf395d2))
* **treesitter:** highlight paths in `.gitignore` as text ([#736](https://github.com/catppuccin/nvim/issues/736)) ([4374588](https://github.com/catppuccin/nvim/commit/4374588df4e99d403a359cda2ddececcf645d8a9))
## [1.7.0](https://github.com/catppuccin/nvim/compare/v1.6.0...v1.7.0) (2024-04-13)
### Features
* add ability to toggle default integrations ([#687](https://github.com/catppuccin/nvim/issues/687)) ([e60e400](https://github.com/catppuccin/nvim/commit/e60e400c411519f29e203185ddda121d4ec8ef57))
* add support for `outline.nvim` plugin ([#647](https://github.com/catppuccin/nvim/issues/647)) ([048c18f](https://github.com/catppuccin/nvim/commit/048c18fc531703815f5e10765ea46ce9b2c75ae4))
* **defaults:** enable neotree ([c536623](https://github.com/catppuccin/nvim/commit/c536623eac60f8443c93ae4ca0e03b51574b5f50))
* **defaults:** enable treesitter context ([dc392c0](https://github.com/catppuccin/nvim/commit/dc392c067739326c3cff380a8c52b0f31319e6dd)), closes [#683](https://github.com/catppuccin/nvim/issues/683)
* **feline:** fix feline integration ([#685](https://github.com/catppuccin/nvim/issues/685)) ([07679af](https://github.com/catppuccin/nvim/commit/07679af1af4f446655682ee2557b5840ac551504))
* **feline:** improve feline lsp display ([#688](https://github.com/catppuccin/nvim/issues/688)) ([f66654d](https://github.com/catppuccin/nvim/commit/f66654d5d5190865333e8e46474c1593302c558e))
* **integration:** add reactive.nvim integration ([#654](https://github.com/catppuccin/nvim/issues/654)) ([151e478](https://github.com/catppuccin/nvim/commit/151e478edf8108cfd451a3cbd44d0a20503e7b42))
* **lsp:** add highlight for `LspCodeLensSeparator` ([#693](https://github.com/catppuccin/nvim/issues/693)) ([02bdd74](https://github.com/catppuccin/nvim/commit/02bdd749931a5d739063562e57531c118e081882))
* 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))
* **treesitter:** add styles.miscs to disable hardcoded italics ([#659](https://github.com/catppuccin/nvim/issues/659)) ([c0de3b4](https://github.com/catppuccin/nvim/commit/c0de3b46811fe1ce3912e2245a9dfbea6b41c300))
* **treesitter:** follow upstream captures ([#630](https://github.com/catppuccin/nvim/issues/630)) ([f288876](https://github.com/catppuccin/nvim/commit/f288876c6d05d3bb91b0e72b8031fe9e26ef05b8))
* **treesitter:** follow upstream captures ([#694](https://github.com/catppuccin/nvim/issues/694)) ([08c6417](https://github.com/catppuccin/nvim/commit/08c6417bdc3b29e5f8c53e2cfe4067f288d49a54))
* use a more distinguishable color for todos ([#645](https://github.com/catppuccin/nvim/issues/645)) ([657cc4f](https://github.com/catppuccin/nvim/commit/657cc4f35cf193cadac7e5471eb802c97e7a1b59))
### Bug Fixes
* **compile:** string.dump isn't deterministic ([836de8b](https://github.com/catppuccin/nvim/commit/836de8bc1898250b69332e66cbe993058870f849)), closes [#664](https://github.com/catppuccin/nvim/issues/664)
* **dropbar:** correct keyword highlight link ([#652](https://github.com/catppuccin/nvim/issues/652)) ([afab7ec](https://github.com/catppuccin/nvim/commit/afab7ec2a79c7127627dede79c0018b6e45663d0))
* ensure consistency between JSX and HTML markup ([#660](https://github.com/catppuccin/nvim/issues/660)) ([9703f22](https://github.com/catppuccin/nvim/commit/9703f227bfab20d04bcee62d2f08f1795723b4ae))
* **flavour:** g:catppuccin_flavour backwards compatibility ([fc98570](https://github.com/catppuccin/nvim/commit/fc98570d85ae772e56dc42cf8d7d6a497a909bdb))
* **flavour:** respect terminal's background ([#696](https://github.com/catppuccin/nvim/issues/696)) ([d5760c5](https://github.com/catppuccin/nvim/commit/d5760c53ae3b48f0f539298ec4165adc5c0afb19))
* **illuminate:** update type ([#690](https://github.com/catppuccin/nvim/issues/690)) ([30930f9](https://github.com/catppuccin/nvim/commit/30930f9656cffd068bcf52ced70cdfffd1e83a44))
* **integrations:** respect default options ([c2e6f8e](https://github.com/catppuccin/nvim/commit/c2e6f8e7eb8d0ebf55700c89bdf842809aeecf09))
* **neotree:** add `NeoTreeModified` ([#642](https://github.com/catppuccin/nvim/issues/642)) ([6853cc8](https://github.com/catppuccin/nvim/commit/6853cc8e6efc76e85e10ec153d05fc2520653508))
* **neotree:** blend sidebar with win separator ([56fb982](https://github.com/catppuccin/nvim/commit/56fb98218d22d5c326387bf9e4076227e7372e6b)), closes [#670](https://github.com/catppuccin/nvim/issues/670)
* repair treesitter underlined text (`Underline` -> `Underlined`) ([#663](https://github.com/catppuccin/nvim/issues/663)) ([42b687c](https://github.com/catppuccin/nvim/commit/42b687c42a35633366ed45e562bf921fb914048b))
* respect background variable on startup ([6b7a4df](https://github.com/catppuccin/nvim/commit/6b7a4dfdf241c8be0af6ec691b302e85cce03cab))
* **semantic_tokens:** namespace -> module ([196f301](https://github.com/catppuccin/nvim/commit/196f301de06090c40d7f98297675ac38ae7d6675))
* **treesitter:** some captures missing leading `@` ([#650](https://github.com/catppuccin/nvim/issues/650)) ([bc1f215](https://github.com/catppuccin/nvim/commit/bc1f2151f23227ba02ac203c2c59ad693352a741))
* use external index for lsp counting ([c3572a9](https://github.com/catppuccin/nvim/commit/c3572a968a79b64bd0ef16f2c3e93014f112e66d))
* 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)
## [1.6.0](https://github.com/catppuccin/nvim/compare/v1.5.0...v1.6.0) (2023-12-28)
### Features
* add `WinSeparator` highlight group ([#623](https://github.com/catppuccin/nvim/issues/623)) ([988c0b2](https://github.com/catppuccin/nvim/commit/988c0b2dde4140572ed37c6b8b5d5deac0219f9f))
* **bufferline:** support `no_underline` option ([#601](https://github.com/catppuccin/nvim/issues/601)) ([f7638a1](https://github.com/catppuccin/nvim/commit/f7638a1a65cbffdd01a9ddac0018a20ec4be29e2))
* **dashboard:** add highlight groups for `doom` theme ([#593](https://github.com/catppuccin/nvim/issues/593)) ([3bdd5e8](https://github.com/catppuccin/nvim/commit/3bdd5e8296971f8c7ba5e499dac8247c3d621508))
* **integrations:** enable dap & dap_ui by default ([64dc309](https://github.com/catppuccin/nvim/commit/64dc309bc157779691be38bbfc5123584e0a4a85))
* **lualine:** darken lualine `b` section for better readability ([#606](https://github.com/catppuccin/nvim/issues/606)) ([32ee05d](https://github.com/catppuccin/nvim/commit/32ee05d014a4611555c7f56a73283efb4718d9c5))
* **mini.indentscope:** add scope color ([#592](https://github.com/catppuccin/nvim/issues/592)) ([795f639](https://github.com/catppuccin/nvim/commit/795f639ac50d6b8400c1d5868fca54844d579f37))
* **neogit:** support new highlight groups ([#610](https://github.com/catppuccin/nvim/issues/610)) ([f90c7c0](https://github.com/catppuccin/nvim/commit/f90c7c0c467722dc7acacbae3c3904720e09efb6))
* **notify:** add `NotifyBackground` hl group ([#637](https://github.com/catppuccin/nvim/issues/637)) ([c7cf3af](https://github.com/catppuccin/nvim/commit/c7cf3afe2eb6d9058eec4abb3ace2c1da006478a))
### Bug Fixes
* **airline:** missing refresh function ([dcef0a0](https://github.com/catppuccin/nvim/commit/dcef0a062de380885193fb0f919217d58b979753)), closes [#594](https://github.com/catppuccin/nvim/issues/594)
* **dashboard:** `orange` -> `peach` ([54002a1](https://github.com/catppuccin/nvim/commit/54002a1adfd543f54352b3ec79d4e62c4163e9ee))
* **flash:** link `FlashPrompt` to `NormalFloat` ([#605](https://github.com/catppuccin/nvim/issues/605)) ([40dc9f0](https://github.com/catppuccin/nvim/commit/40dc9f0621c55bd40da4ad0731fac44d15bb393a))
* **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))
* **neogit:** remove `NeogitCursorLine` from integration ([#613](https://github.com/catppuccin/nvim/issues/613)) ([5e4be43](https://github.com/catppuccin/nvim/commit/5e4be43e1a6acb044d5c55cd10f22461c40656ed))
* **neogit:** remove diff context highlight fg ([1b40f07](https://github.com/catppuccin/nvim/commit/1b40f072305be71b73c730ff5c7d881e638fd040)), closes [#627](https://github.com/catppuccin/nvim/issues/627)
* **neogit:** tweak diff context highlighting ([#614](https://github.com/catppuccin/nvim/issues/614)) ([cc717ac](https://github.com/catppuccin/nvim/commit/cc717acba29259d578548973c41448b092453c52))
* **neotree:** change color of untracked files ([#608](https://github.com/catppuccin/nvim/issues/608)) ([d7521f6](https://github.com/catppuccin/nvim/commit/d7521f6050b94cb0e23067f63829d86886f870fe))
* **neotree:** make popup titlebar text visible ([#618](https://github.com/catppuccin/nvim/issues/618)) ([919d1f7](https://github.com/catppuccin/nvim/commit/919d1f786338ebeced798afbf28cd085cd54542a))
* **noice:** respect transparency ([#632](https://github.com/catppuccin/nvim/issues/632)) ([4fbab1f](https://github.com/catppuccin/nvim/commit/4fbab1f01488718c3d54034a473d0346346b90e3))
* **selene:** allow mixed tables ([#611](https://github.com/catppuccin/nvim/issues/611)) ([9f3c13b](https://github.com/catppuccin/nvim/commit/9f3c13bbcf16fcaec3a429c03743a13e5923f3e3))
* sync focused and unfocused winbars ([#628](https://github.com/catppuccin/nvim/issues/628)) ([079500a](https://github.com/catppuccin/nvim/commit/079500a625f3ae5aa6efb758f1a17fe4c7a57e52))
* **vim:** resolve deprecation of nested [[ ([7a4bcda](https://github.com/catppuccin/nvim/commit/7a4bcdadafc59a5bedbd866c643fa486d8cca4a1))
## [1.5.0](https://github.com/catppuccin/nvim/compare/v1.4.0...v1.5.0) (2023-09-29)
### Features
* add kitty detection ([d3da439](https://github.com/catppuccin/nvim/commit/d3da43907d1896ba3e68a62f18820d1d12574317))
* add ufo integration ([1f53686](https://github.com/catppuccin/nvim/commit/1f536869b1a2ca1710fc892db84d7e8bbc6ad8d9))
* add workaround for kitty transparent issue ([#579](https://github.com/catppuccin/nvim/issues/579)) ([f36fa5c](https://github.com/catppuccin/nvim/commit/f36fa5cdce162450df88298a16631eeed16b68a3))
* **compile:** use indexed cmd ([85e9360](https://github.com/catppuccin/nvim/commit/85e93601e0f0b48aa2c6bbfae4d0e9d7a1898280))
* **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)
* **indent-blankline:** update to v3, add scope color ([#585](https://github.com/catppuccin/nvim/issues/585)) ([f04336b](https://github.com/catppuccin/nvim/commit/f04336ba4a2400ee2c5250068b39541652c0962f))
* **integrations:** add NormalNvim ([0e3c128](https://github.com/catppuccin/nvim/commit/0e3c128eea8a7de692778d52b8429817df5c9040)), closes [#580](https://github.com/catppuccin/nvim/issues/580)
* **integrations:** add notifier.nvim ([d029098](https://github.com/catppuccin/nvim/commit/d029098e124f6201a07298c0c1c499ed8d5aef76)), closes [#574](https://github.com/catppuccin/nvim/issues/574)
* **lib:** soft deprecate highlighter ([8202348](https://github.com/catppuccin/nvim/commit/82023485fec1703d6f700a4b2a92fd431d4882f4))
* **syntax:** respect style guide part 3 ([#576](https://github.com/catppuccin/nvim/issues/576)) ([81096ca](https://github.com/catppuccin/nvim/commit/81096cabe67f360acb06d64c0f7db8dd840afeba))
### Bug Fixes
* **coc:** improve inlay hints ([#582](https://github.com/catppuccin/nvim/issues/582)) ([3d9a5ed](https://github.com/catppuccin/nvim/commit/3d9a5ed556e289bce6c1fb0af89ec838360641b2))
* **editor:** invisible fold with transparent ([1c15c5e](https://github.com/catppuccin/nvim/commit/1c15c5e51a998c9198d63c6d2b75e9d1e4a84541)), closes [#577](https://github.com/catppuccin/nvim/issues/577)
* **template:** broken tmux italic gist link ([128e0d2](https://github.com/catppuccin/nvim/commit/128e0d27946491da979e2e04f5a4acf330ccdefd))
* **treesitter:** invalid string in type builtin ([135f9b0](https://github.com/catppuccin/nvim/commit/135f9b01386fa18da6d75c16ceb83e1aa3669430))
* **ufo:** use folded ellipsis ([846388d](https://github.com/catppuccin/nvim/commit/846388d137590e653390ce2f84fea5351a7516ac))
* **vim:** add vim.env index ([1786287](https://github.com/catppuccin/nvim/commit/17862877792db104d48c3260aec0ace92d55f863))
### Performance Improvements
* **compile:** reduce else statement ([a937d54](https://github.com/catppuccin/nvim/commit/a937d546f4783a1ff67f84043d2d7871ad4ecd83))
## [1.4.0](https://github.com/catppuccin/nvim/compare/v1.3.0...v1.4.0) (2023-08-21)
### Features
* 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))
* add flash.nvim integration ([#550](https://github.com/catppuccin/nvim/issues/550)) ([381eddd](https://github.com/catppuccin/nvim/commit/381edddc4ad12126cfa7276818bca07c3d5606ed))
* enable neogit by default ([91f9f6f](https://github.com/catppuccin/nvim/commit/91f9f6fb413caff2bd06e326ec174deee1c1b7a9)), closes [#568](https://github.com/catppuccin/nvim/issues/568)
* **flash:** enable by default ([#551](https://github.com/catppuccin/nvim/issues/551)) ([a84ee18](https://github.com/catppuccin/nvim/commit/a84ee1848bfac4601771805396552bdbaa0a0e91))
* **gitsigns:** Support GitSignsCurrentLineBlame highlights ([#567](https://github.com/catppuccin/nvim/issues/567)) ([3fdd394](https://github.com/catppuccin/nvim/commit/3fdd3942567503d23b65ccc21e7d7757334defd5))
* **lspsaga:** support v0.3 ([#543](https://github.com/catppuccin/nvim/issues/543)) ([3ffd2f5](https://github.com/catppuccin/nvim/commit/3ffd2f511f3dc6c01258923d7170ccaf1445634b))
* **lspsaga:** upstream new hl groups ([#544](https://github.com/catppuccin/nvim/issues/544)) ([e0dd3f9](https://github.com/catppuccin/nvim/commit/e0dd3f9bb1513c98ab4ef9404ea26e18babf858a))
* **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))
* **telescope:** make nvchad style great again ([#538](https://github.com/catppuccin/nvim/issues/538)) ([51961da](https://github.com/catppuccin/nvim/commit/51961da41e8189ca6f9ed73f37dfa83087b4e65c))
* **treesitter-context:** add color for normal background ([#564](https://github.com/catppuccin/nvim/issues/564)) ([b1caff9](https://github.com/catppuccin/nvim/commit/b1caff988fb395c0aae585cecff58b1ffa0a21c6))
### Bug Fixes
* don't highlight fg of `PmenuSel` ([#554](https://github.com/catppuccin/nvim/issues/554)) ([6425df1](https://github.com/catppuccin/nvim/commit/6425df128d46f2db2cccf9aa7a66ca2823c1d153))
* highlight NonText characters ([#547](https://github.com/catppuccin/nvim/issues/547)) ([bfe91df](https://github.com/catppuccin/nvim/commit/bfe91dfb3a19ffd4445e43611fcde68acbb3fed4))
* **integration_default:** hotfix for [#559](https://github.com/catppuccin/nvim/issues/559) ([4913a8b](https://github.com/catppuccin/nvim/commit/4913a8b47554a89a71ed44da39fc1f6e5c2841c3))
* **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))
* **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))
* **nvim-window-picker:** missing table keys ([#569](https://github.com/catppuccin/nvim/issues/569)) ([b9e4dae](https://github.com/catppuccin/nvim/commit/b9e4dae160bf9bc28d4ceb6d29a7e0134b107724))
* **options:** disable deprecated ts_rainbow and ts_rainbow2 by default ([096385d](https://github.com/catppuccin/nvim/commit/096385dd024ecd1332659916fd7f09d7d18d7374))
* **telescope:** keep consistency between the two styles ([#540](https://github.com/catppuccin/nvim/issues/540)) ([dfbc8e2](https://github.com/catppuccin/nvim/commit/dfbc8e2b478a65104d34556698067f2d40f1c227))
* **telescope:** respect transparency ([#542](https://github.com/catppuccin/nvim/issues/542)) ([f36af06](https://github.com/catppuccin/nvim/commit/f36af062e3242f333b12fe9b730053fdda36e000))
* **treesitter:** avoid possible nil ([17ae783](https://github.com/catppuccin/nvim/commit/17ae783b88bb7ae73dc004370473138d9d43ee46))
* **types:** make all options besides nested `enabled` optional ([#565](https://github.com/catppuccin/nvim/issues/565)) ([490078b](https://github.com/catppuccin/nvim/commit/490078b1593c6609e6a50ad5001e7902ea601824))
## [1.3.0](https://github.com/catppuccin/nvim/compare/v1.2.0...v1.3.0) (2023-07-10)
### Features
* auto-sync upstream palettes ([#507](https://github.com/catppuccin/nvim/issues/507)) ([8426d3b](https://github.com/catppuccin/nvim/commit/8426d3bfd55f4dc68ae451a82927d2ff88e47e95))
* **debug:** add auto compile on save ([c9cc5a9](https://github.com/catppuccin/nvim/commit/c9cc5a997f1dae3f35b4bdd62f35958fee363ab4))
* **dropbar:** add new highlight groups ([4f22a1e](https://github.com/catppuccin/nvim/commit/4f22a1e78460ae06e78a1085a8e0e6cc8027aef2)), closes [#503](https://github.com/catppuccin/nvim/issues/503)
* **integration:** add dropbar.nvim ([#499](https://github.com/catppuccin/nvim/issues/499)) ([e86aeb8](https://github.com/catppuccin/nvim/commit/e86aeb8ca0f03e97192074fba9dc6c836f953a83))
* **integrations:** accept both boolean and table config ([#534](https://github.com/catppuccin/nvim/issues/534)) ([f0b947a](https://github.com/catppuccin/nvim/commit/f0b947ab8cfdb9ca7ba6230b30bbc1ed48dd30a1))
* **integrations:** add rainbow_delimiters.nvim support ([#530](https://github.com/catppuccin/nvim/issues/530)) ([cc8d3ab](https://github.com/catppuccin/nvim/commit/cc8d3abc944d78cb6bf2a4cc88871ab383c4da62))
* **markdown:** add rainbow headlines ([#493](https://github.com/catppuccin/nvim/issues/493)) ([cc517bd](https://github.com/catppuccin/nvim/commit/cc517bdcb66a0f8dee90bab10ccdd651fa967bbe))
* **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))
* **native_lsp:** support inlay hints ([#516](https://github.com/catppuccin/nvim/issues/516)) ([d32b0bb](https://github.com/catppuccin/nvim/commit/d32b0bb5b1033920de5026e326869838aba856ee))
* **navic:** change text color ([278bfeb](https://github.com/catppuccin/nvim/commit/278bfeb61bd627dc2a8885180a0441a1ebe65a41))
* **semantic_tokens:** add some lsp semantic tokens ([#512](https://github.com/catppuccin/nvim/issues/512)) ([506a4aa](https://github.com/catppuccin/nvim/commit/506a4aa13443e0104ea49b99947cc09488d0791d))
* **telescope:** telescope flat style support ([#521](https://github.com/catppuccin/nvim/issues/521)) ([fc73faa](https://github.com/catppuccin/nvim/commit/fc73faa37bda393e3c4f846fb3e810a6ac8aae16))
* **types:** add type annotations ([#495](https://github.com/catppuccin/nvim/issues/495)) ([1d3eda1](https://github.com/catppuccin/nvim/commit/1d3eda15703ba70f57e94e6451db55914ff7017f))
* **workflows:** auto-sync upstream palettes ([e9fbeec](https://github.com/catppuccin/nvim/commit/e9fbeec106562475e82bae79304b6a421eee73f3))
### Bug Fixes
* calling palette before setup ([841d8ab](https://github.com/catppuccin/nvim/commit/841d8abf3be39de833d95a592a1fbbb1b9851296))
* **feline:** disable lsp status on nightly ([#510](https://github.com/catppuccin/nvim/issues/510)) ([9aaf5b4](https://github.com/catppuccin/nvim/commit/9aaf5b4ce5cd256695d8bbddb65869d19919abde))
* **feline:** use new `vim.lsp.status()` method ([#509](https://github.com/catppuccin/nvim/issues/509)) ([57ee09d](https://github.com/catppuccin/nvim/commit/57ee09dd532bd442b53d65c2b2f35550960981ed))
* **lsp:** do not link `LspInlayHint` to `Comment` directly ([#517](https://github.com/catppuccin/nvim/issues/517)) ([5dc566c](https://github.com/catppuccin/nvim/commit/5dc566c4206f383657d67500253559d3be82c421))
* **mapper:** remove unnecessary globals ([#529](https://github.com/catppuccin/nvim/issues/529)) ([c75562c](https://github.com/catppuccin/nvim/commit/c75562cbc954136f279ced91661251543b6f2a20))
* **native_lsp:** boolean logic ([#526](https://github.com/catppuccin/nvim/issues/526)) ([8d02781](https://github.com/catppuccin/nvim/commit/8d02781a638123394f9bc160aad47a9560a113f9))
* **tests:** shadowing variable ([15043d3](https://github.com/catppuccin/nvim/commit/15043d363729f1ef20e615c41bbd8b7e92c1453e))
* **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))
* **which-key:** wrong separator highlight group ([d438c01](https://github.com/catppuccin/nvim/commit/d438c0141609338140b18363a9a1e8eb8bb17130))
* **workflows:** stylua format ([2df7036](https://github.com/catppuccin/nvim/commit/2df7036c5c303c9184869936e40ca18935e4afcb))
================================================
FILE: LICENSE.md
================================================
MIT License
Copyright (c) 2021 Catppuccin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
<!-- panvimdoc-ignore-start -->
<h3 align="center">
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/1544x1544_circle.png" width="100" alt="Logo"/><br/>
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
Catppuccin for <a href="https://github.com/neovim/neovim">Neovim</a>
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
</h3>
<p align="center">
<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>
<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>
<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>
</p>
<p align="center">
<img src="https://user-images.githubusercontent.com/56817415/213472445-091e54fb-091f-4448-a631-fa6b2ba7d8a5.png"/>
</p>
<p align="center">
This 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.
</p>
## Previews
<details>
<summary>🌻 Latte</summary>
<img src="https://user-images.githubusercontent.com/56817415/213473391-603bdc68-68f4-4877-a15a-b469040928b5.png"/>
</details>
<details>
<summary>🪴 Frappé</summary>
<img src="https://user-images.githubusercontent.com/56817415/213473368-16931b70-fd84-4a89-a698-1b1bca1f82de.png"/>
</details>
<details>
<summary>🌺 Macchiato</summary>
<img src="https://user-images.githubusercontent.com/56817415/213473285-7bd858be-6947-4d9e-8c01-2573cbc7e76c.png"/>
</details>
<details>
<summary>🌿 Mocha</summary>
<img src="https://user-images.githubusercontent.com/56817415/213471997-34837219-88cc-4db2-baca-e25813a89789.png"/>
</details>
<!-- panvimdoc-ignore-end -->
## Features
- Supports [Neovim](https://github.com/neovim/neovim/) >= 0.8
- Highly configurable with 4 different flavours and [the ability to create your own!](https://github.com/catppuccin/nvim/discussions/323)
- [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/)
- Integrations with lsp, treesitter and [a bunch of plugins](https://github.com/catppuccin/nvim#integrations)
- Support for [many other applications](https://github.com/catppuccin/catppuccin)
## Installation
[lazy.nvim](https://github.com/folke/lazy.nvim)
```lua
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 }
```
[mini.deps](https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-deps.md)
```lua
add({ source = "catppuccin/nvim", name = "catppuccin" })
```
[packer.nvim](https://github.com/wbthomason/packer.nvim)
```lua
use { "catppuccin/nvim", as = "catppuccin" }
```
with Neovim 0.12's `vim.pack`
```lua
vim.pack.add({ src = "https://github.com/catppuccin/nvim", name = "catppuccin" })
```
### vim support
Support for vim is provided through the `vim` branch.
```vim
Plug 'catppuccin/nvim', { 'branch': 'vim', 'as': 'catppuccin' }
```
> ![NOTE]
> Keep in mind that vim support has been dropped
> ([#949](https://github.com/catppuccin/nvim/pull/949)) and this branch won't
> receive further updates unless necessary. For full vim support see
> [catppuccin/vim](https://github.com/catppuccin/vim)
## Usage
```vim
colorscheme catppuccin-nvim " catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha
```
```lua
vim.cmd.colorscheme "catppuccin-nvim"
```
## Configuration
There is no need to call `setup` if you don't want to change the default options and settings.
```lua
require("catppuccin").setup({
flavour = "auto", -- latte, frappe, macchiato, mocha
background = { -- :h background
light = "latte",
dark = "mocha",
},
transparent_background = false, -- disables setting the background color.
float = {
transparent = false, -- enable transparent floating windows
solid = false, -- use solid styling for floating windows, see |winborder|
},
show_end_of_buffer = false, -- shows the '~' characters after the end of buffers
term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`)
dim_inactive = {
enabled = false, -- dims the background color of inactive window
shade = "dark",
percentage = 0.15, -- percentage of the shade to apply to the inactive window
},
no_italic = false, -- Force no italic
no_bold = false, -- Force no bold
no_underline = false, -- Force no underline
styles = { -- Handles the styles of general hi groups (see `:h highlight-args`):
comments = { "italic" }, -- Change the style of comments
conditionals = { "italic" },
loops = {},
functions = {},
keywords = {},
strings = {},
variables = {},
numbers = {},
booleans = {},
properties = {},
types = {},
operators = {},
-- miscs = {}, -- Uncomment to turn off hard-coded styles
},
lsp_styles = { -- Handles the style of specific lsp hl groups (see `:h lsp-highlight`).
virtual_text = {
errors = { "italic" },
hints = { "italic" },
warnings = { "italic" },
information = { "italic" },
ok = { "italic" },
},
underlines = {
errors = { "underline" },
hints = { "underline" },
warnings = { "underline" },
information = { "underline" },
ok = { "underline" },
},
inlay_hints = {
background = true,
},
},
color_overrides = {},
custom_highlights = {},
default_integrations = true,
auto_integrations = false,
integrations = {
cmp = true,
gitsigns = true,
nvimtree = true,
notify = false,
mini = {
enabled = true,
indentscope_color = "",
},
-- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)
},
})
-- setup must be called before loading
vim.cmd.colorscheme "catppuccin-nvim"
```
## Customization
### Getting colors
```lua
local latte = require("catppuccin.palettes").get_palette "latte"
local frappe = require("catppuccin.palettes").get_palette "frappe"
local macchiato = require("catppuccin.palettes").get_palette "macchiato"
local mocha = require("catppuccin.palettes").get_palette "mocha"
```
Returns a table where the key is the name of the color and the value is the hex code.
### Overwriting colors
Colors can be overwritten using `color_overrides`, see https://github.com/catppuccin/nvim/discussions/323 for inspiration:
```lua
require("catppuccin").setup {
color_overrides = {
all = {
text = "#ffffff",
},
latte = {
base = "#ff0000",
mantle = "#242424",
crust = "#474747",
},
frappe = {},
macchiato = {},
mocha = {},
}
}
```
### Overwriting highlight groups
Global highlight groups can be overwritten, for example:
```lua
require("catppuccin").setup {
custom_highlights = function(colors)
return {
Comment = { fg = colors.flamingo },
TabLineSel = { bg = colors.pink },
CmpBorder = { fg = colors.surface2 },
Pmenu = { bg = colors.none },
}
end
}
```
Highlight groups per flavour can also be overwritten, for example:
```lua
require("catppuccin").setup {
highlight_overrides = {
all = function(colors)
return {
NvimTreeNormal = { fg = colors.none },
CmpBorder = { fg = "#3e4145" },
}
end,
latte = function(latte)
return {
Normal = { fg = latte.base },
}
end,
frappe = function(frappe)
return {
["@comment"] = { fg = frappe.surface2, style = { "italic" } },
}
end,
macchiato = function(macchiato)
return {
LineNr = { fg = macchiato.overlay1 },
}
end,
mocha = function(mocha)
return {
Comment = { fg = mocha.flamingo },
}
end,
},
}
```
## Integrations
Catppuccin provides theme support for other plugins in the Neovim ecosystem and extended Neovim functionality through _integrations_.
To enable/disable an integration you just need to set it to true/false, for example:
```lua
require("catppuccin").setup({
integrations = {
cmp = true,
gitsigns = true,
nvimtree = true,
notify = false,
mini = {
enabled = true,
indentscope_color = "",
},
}
})
```
Some integrations are enabled by default, you can control this behaviour with `default_integrations` option.
```lua
require("catppuccin").setup({
default_integrations = false,
})
```
If 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.
```lua
require("catppuccin").setup({
auto_integrations = true,
})
```
Below is a list of supported plugins and their corresponding integration module.
> [!Important]
> 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.
<table>
<tr>
<td> <b>Plugin</b> </td> <td> <b>Default</b> </td>
</tr>
<!-- aerial.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/stevearc/aerial.nvim">aerial.nvim</a> </td>
<td>
```lua
aerial = false
```
</td>
</tr>
<!-- aerial.nvim -->
<!-- alpha.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/goolord/alpha-nvim">alpha-nvim</a> </td>
<td>
```lua
alpha = true
```
</td>
</tr>
<!-- alpha.nvim -->
<!-- artio.nvim -->
</tr>
<tr
<tr>
<td> <a href="https://github.com/comfysage/artio.nvim">artio.nvim</a> </td>
<td>
```lua
artio = true
```
</td>
</tr>
<!-- artio.nvim -->
<!-- barbar.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/romgrk/barbar.nvim">barbar.nvim</a> </td>
<td>
```lua
barbar = false
```
</td>
</tr>
<!-- barbar.nvim -->
<!-- barbecue.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/utilyre/barbecue.nvim">barbecue.nvim</a> </td>
<td>
```lua
barbecue = {
dim_dirname = true, -- directory name is dimmed by default
bold_basename = true,
dim_context = false,
alt_background = false,
},
```
<details> <summary>Special</summary>
Use this to set it up:
```lua
require("barbecue").setup {
theme = "catppuccin-nvim", -- catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha
}
```
</details>
</td>
</tr>
<!-- barbecue.nvim -->
<!-- beacon.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/DanilaMihailov/beacon.nvim">beacon.nvim</a> </td>
<td>
```lua
beacon = false
```
</td>
</tr>
<!-- beacon.nvim -->
<!-- blink.cmp -->
</tr>
<tr>
<td> <a href="https://github.com/Saghen/blink.cmp">blink.cmp</a> </td>
<td>
```lua
blink_cmp = {
style = 'bordered',
}
```
</td>
</tr>
<!-- blink.cmp -->
<!-- blink.indent -->
</tr>
<tr>
<td> <a href="https://github.com/saghen/blink.indent">blink.indent</a> </td>
<td>
```lua
blink_indent = true
```
</td>
</tr>
<!-- blink.indent -->
<!-- blink.pairs -->
</tr>
<tr>
<td> <a href="https://github.com/saghen/blink.pairs">blink.pairs</a> </td>
<td>
```lua
blink_pairs = true
```
<details> <summary>Special</summary>
Use this to set it up:
```lua
require("blink.pairs").setup {
highlights = {
groups = {
"BlinkPairsRed",
"BlinkPairsYellow",
"BlinkPairsBlue",
"BlinkPairsOrange",
"BlinkPairsGreen",
"BlinkPairsPurple",
"BlinkPairsCyan",
},
},
}
```
</details>
</td>
</tr>
<!-- blink.pairs -->
<!-- bufferline.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/akinsho/bufferline.nvim">bufferline.nvim</a> </td>
<td>
<details> <summary>Special</summary>
Update your bufferline config to use the Catppuccin components:
> [!NOTE]
> bufferline needs to be loaded after setting up Catppuccin or it will highlight incorrectly
```lua
use "akinsho/bufferline.nvim" {
after = "catppuccin",
config = function()
require("bufferline").setup {
highlights = require("catppuccin.special.bufferline").get_theme()
}
end
}
```
Configurations are self-explanatory, see `:h bufferline-highlights` for detailed explanations:
```lua
local mocha = require("catppuccin.palettes").get_palette "mocha"
bufferline.setup {
highlights = require("catppuccin.special.bufferline").get_theme {
styles = { "italic", "bold" },
custom = {
all = {
fill = { bg = "#000000" },
},
mocha = {
background = { fg = mocha.text },
},
latte = {
background = { fg = "#000000" },
},
},
},
}
```
</details>
</td>
</tr>
<!-- bufferline.nvim -->
<!-- buffon.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/francescarpi/buffon.nvim">buffon.nvim</a> </td>
<td>
```lua
buffon = false
```
</td>
</tr>
<!-- buffon.nvim -->
<!-- coc.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/neoclide/coc.nvim">coc.nvim</a> </td>
<td>
```lua
coc_nvim = false
```
<details> <summary>Special</summary>
Setting `enabled` to `true` enables this integration.
```lua
coc_nvim = true,
```
> [!Note]
> coc.nvim by default link to native lsp highlight groups so `lsp_styles` options will also apply to coc
In 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)).
```lua
lsp_styles = {
virtual_text = {
errors = { "italic" },
hints = { "italic" },
warnings = { "italic" },
information = { "italic" },
ok = { "italic" },
},
underlines = {
errors = { "underline" },
hints = { "underline" },
warnings = { "underline" },
information = { "underline" },
ok = { "underline" },
},
inlay_hints = {
background = true,
},
},
```
</details>
</td>
</tr>
<!-- coc.nvim -->
<!-- colorful-winsep.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/nvim-zh/colorful-winsep.nvim">colorful-winsep.nvim</a>
</td>
<td>
```lua
colorful_winsep = {
enabled = false,
color = "red",
}
```
</td>
</tr>
<!-- colorful_winsep.nvim -->
<!-- dashboard-nvim -->
</tr>
<tr>
<td> <a href="https://github.com/glepnir/dashboard-nvim">dashboard-nvim</a> </td>
<td>
```lua
dashboard = true
```
</td>
</tr>
<!-- dashboard-nvim -->
<!-- diffview.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/sindrets/diffview.nvim">diffview.nvim</a> </td>
<td>
```lua
diffview = false
```
</td>
</tr>
<!-- diffview.nvim -->
<!-- dropbar.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/Bekaboo/dropbar.nvim">dropbar.nvim</a> </td>
<td>
```lua
dropbar = {
enabled = false,
color_mode = false, -- enable color for kind's texts, not just kind's icons
},
```
</td>
</tr>
<!-- dropbar.nvim -->
<!-- feline.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/freddiehaddad/feline.nvim/">feline.nvim</a> </td>
<td>
</details>
<details> <summary>Special</summary>
Update your Feline config to use the Catppuccin components:
```lua
local ctp_feline = require('catppuccin.special.feline')
ctp_feline.setup()
require("feline").setup({
components = ctp_feline.get_statusline(),
})
```
Notice that calling `setup()` is optional. You may pass a lua table in order to change assets, settings and the colors per vim mode.
Here are the defaults:
```lua
local clrs = require("catppuccin.palettes").get_palette()
local ctp_feline = require('catppuccin.special.feline')
local U = require "catppuccin.utils.colors"
ctp_feline.setup({
assets = {
left_separator = "",
right_separator = "",
mode_icon = "",
dir = "",
file = "",
lsp = {
server = "",
error = "",
warning = "",
info = "",
hint = "",
},
git = {
branch = "",
added = "",
changed = "",
removed = "",
},
},
sett = {
text = U.vary_color({ latte = latte.base }, clrs.surface0),
bkg = U.vary_color({ latte = latte.crust }, clrs.surface0),
diffs = clrs.mauve,
extras = clrs.overlay1,
curr_file = clrs.maroon,
curr_dir = clrs.flamingo,
show_modified = false, -- show if the file has been modified
show_lazy_updates = false -- show the count of updatable plugins from lazy.nvim
-- need to set checker.enabled = true in lazy.nvim first
-- the icon is set in ui.icons.plugin in lazy.nvim
},
mode_colors = {
["n"] = { "NORMAL", clrs.lavender },
["no"] = { "N-PENDING", clrs.lavender },
["i"] = { "INSERT", clrs.green },
["ic"] = { "INSERT", clrs.green },
["t"] = { "TERMINAL", clrs.green },
["v"] = { "VISUAL", clrs.flamingo },
["V"] = { "V-LINE", clrs.flamingo },
[""] = { "V-BLOCK", clrs.flamingo },
["R"] = { "REPLACE", clrs.maroon },
["Rv"] = { "V-REPLACE", clrs.maroon },
["s"] = { "SELECT", clrs.maroon },
["S"] = { "S-LINE", clrs.maroon },
[""] = { "S-BLOCK", clrs.maroon },
["c"] = { "COMMAND", clrs.peach },
["cv"] = { "COMMAND", clrs.peach },
["ce"] = { "COMMAND", clrs.peach },
["r"] = { "PROMPT", clrs.teal },
["rm"] = { "MORE", clrs.teal },
["r?"] = { "CONFIRM", clrs.mauve },
["!"] = { "SHELL", clrs.green },
},
view = {
lsp = {
progress = true, -- if true the status bar will display an lsp progress indicator
name = false, -- if true the status bar will display the lsp servers name, otherwise it will display the text "Lsp"
exclude_lsp_names = {}, -- lsp server names that should not be displayed when name is set to true
separator = "|", -- the separator used when there are multiple lsp servers
},
}
})
```
> [!Warning]
> 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:
```lua
vim.api.nvim_create_autocmd("ColorScheme", {
pattern = "*",
callback = function()
package.loaded["feline"] = nil
package.loaded["catppuccin.special.feline"] = nil
require("feline").setup {
components = require("catppuccin.special.feline").get_statusline(),
}
end,
})
```
</details>
</td>
</tr>
<!-- feline.nvim -->
<!-- fern.vim -->
</tr>
<tr>
<td> <a href="https://github.com/lambdalisue/fern.vim">fern.vim</a> </td>
<td>
```lua
fern = false
```
</td>
</tr>
<!-- fern.vim -->
<!-- fidget.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/j-hui/fidget.nvim">fidget.nvim</a> </td>
<td>
```lua
fidget = false
```
<details> <summary>Special</summary>
Set `notification.window.winblend` to `0`:
```lua
require("fidget").setup {
notification = {
window = {
winblend = 0,
},
}
-- ... the rest of your fidget config
}
```
</details>
</td>
</tr>
<!-- fidget.nvim -->
<!-- flash.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/folke/flash.nvim">flash.nvim</a> </td>
<td>
```lua
flash = true
```
<!-- flash.nvim -->
<!-- fzf-lua -->
</tr>
<tr>
<td> <a href="https://github.com/ibhagwan/fzf-lua">fzf-lua</a> </td>
<td>
```lua
fzf = true
```
</td>
</tr>
<!-- fzf-lua -->
<!-- gitgraph.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/isakbm/gitgraph.nvim">gitgraph.nvim</a> </td>
<td>
```lua
gitgraph = false
```
<!-- gitgraph.nvim -->
<!-- gitsigns.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/lewis6991/gitsigns.nvim">gitsigns.nvim</a> </td>
<td>
```lua
gitsigns = true
```
<details> <summary>Special</summary>
```lua
gitsigns = {
enabled = true,
-- align with the transparent_background option by default
transparent = false,
}
```
</details>
<!-- gitsigns.nvim -->
<!-- grug-far.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/MagicDuck/grug-far.nvim">grug-far.nvim</a> </td>
<td>
```lua
grug_far = false
```
<!-- grug-far.nvim -->
<!-- harpoon -->
</tr>
<tr>
<td> <a href="https://github.com/ThePrimeagen/harpoon">harpoon</a> </td>
<td>
```lua
harpoon = false
```
<!-- harpoon -->
<!-- headlines.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/lukas-reineke/headlines.nvim">headlines.nvim</a> </td>
<td>
```lua
headlines = false
```
<!-- headlines.nvim -->
<!-- hop.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/phaazon/hop.nvim">hop.nvim</a> </td>
<td>
```lua
hop = false
```
<!-- hop.nvim -->
<!-- indent-blankline.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/lukas-reineke/indent-blankline.nvim">indent-blankline.nvim</a> </td>
<td>
```lua
indent_blankline = {
enabled = true,
scope_color = "", -- catppuccin color (eg. `lavender`) Default: text
colored_indent_levels = false,
},
```
<details> <summary>Special</summary>
`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.
</details>
<!-- indent-blankline.nvim -->
<!-- leap.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/ggandor/leap.nvim">leap.nvim</a> </td>
<td>
```lua
leap = false
```
<!-- leap.nvim -->
<!-- lightline.vim -->
</tr>
<tr>
<td> <a href="https://github.com/itchyny/lightline.vim">lightline.vim</a> </td>
<td>
<details> <summary>Special</summary>
```vim
let g:lightline = {'colorscheme': 'catppuccin'}
```
</details>
<!-- lightline.vim -->
<!-- lightspeed.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/ggandor/lightspeed.nvim">lightspeed.nvim</a> </td>
<td>
```lua
lightspeed = false
```
<!-- lightspeed.nvim -->
<!-- lir.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/tamago324/lir.nvim">lir.nvim</a> </td>
<td>
```lua
lir = {
enabled = false,
git_status = false
}
```
<!-- lir.nvim -->
<!-- lspsaga.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/glepnir/lspsaga.nvim">lspsaga.nvim</a> </td>
<td>
```lua
lsp_saga = false
```
<details> <summary>Special</summary>
For custom Lsp Kind Icon and Color
```lua
require("lspsaga").setup {
ui = {
kind = require("catppuccin.groups.integrations.lsp_saga").custom_kind(),
},
}
```
</details>
</tr>
<!-- lspsaga.nvim -->
<!-- lualine.nvim -->
<tr>
<td> <a href="https://github.com/nvim-lualine/lualine.nvim">lualine.nvim</a> </td>
<td>
```lua
-- transparent_bg = opts.transparent_background and "NONE" or C.mantle
lualine = {
normal = {
a = { bg = C.blue, fg = C.mantle, gui = "bold" },
b = { bg = C.surface0, fg = C.blue },
c = { bg = transparent_bg, fg = C.text },
},
insert = {
a = { bg = C.green, fg = C.base, gui = "bold" },
b = { bg = C.surface0, fg = C.green },
},
terminal = {
a = { bg = C.green, fg = C.base, gui = "bold" },
b = { bg = C.surface0, fg = C.green },
},
command = {
a = { bg = C.peach, fg = C.base, gui = "bold" },
b = { bg = C.surface0, fg = C.peach },
},
visual = {
a = { bg = C.mauve, fg = C.base, gui = "bold" },
b = { bg = C.surface0, fg = C.mauve },
},
replace = {
a = { bg = C.red, fg = C.base, gui = "bold" },
b = { bg = C.surface0, fg = C.red },
},
inactive = {
a = { bg = transparent_bg, fg = C.blue },
b = { bg = transparent_bg, fg = C.surface1, gui = "bold" },
c = { bg = transparent_bg, fg = C.overlay0 },
},
},
```
<details> <summary>Special</summary>
To implement color overrides in the `integrations.lualine` spec:
```lua
-- In your catppuccin config (integrations):
lualine = {
-- lualine color overrides in the following hierarchy: Catppuccin Flavor -> Mode -> Lualine Section
-- The Catppuccin flavor entry can be any Catpuccin flavor or "all" to apply to all flavors
-- The flavor entry can be either a table or a function which consumes the current Catppuccin palette, just like custom_highlights and color_overrides
all = function(colors)
---@type CtpIntegrationLualineOverride
return {
-- Specifying a normal-mode status line override for section a's background and b's foreground to use lavender like the main Catppuccin theme
normal = {
a = { bg = colors.lavender, gui = "italic" },
b = { fg = colors.lavender },
}
}
end,
-- 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
macchiato = {
normal = {
a = { bg = "#abcdef" },
}
},
},
-- And in your lualine config:
require('lualine').setup {
options = {
-- lualine will integrate with catppuccin by name or automatically via `vim.g.colors_name` by setting this to "auto"
theme = "catppuccin-nvim"
-- ... the rest of your lualine config
}
}
```
</details>
<!-- lualine.nvim -->
<!-- markview.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/OXY2DEV/markview.nvim">markview.nvim</a> </td>
<td>
```lua
markview = false
```
</td>
</tr>
<!-- markview.nvim -->
<!-- mason.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/williamboman/mason.nvim">mason.nvim</a> </td>
<td>
```lua
mason = false
```
</td>
</tr>
<!-- mason.nvim -->
<!-- mini.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/echasnovski/mini.nvim">mini.nvim</a> </td>
<td>
```lua
mini = {
enabled = true,
indentscope_color = "", -- catppuccin color (eg. `lavender`) Default: text
},
```
</td>
</tr>
<!-- mini.nvim -->
<!-- neo-tree.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/nvim-neo-tree/neo-tree.nvim">neo-tree.nvim</a> </td>
<td>
```lua
neotree = true
```
</td>
</tr>
<!-- neo-tree.nvim -->
<!-- neogit -->
</tr>
<tr>
<td> <a href="https://github.com/NeogitOrg/neogit">neogit</a> </td>
<td>
```lua
neogit = true
```
</td>
</tr>
<!-- neogit -->
<!-- neotest -->
</tr>
<tr>
<td> <a href="https://github.com/nvim-neotest/neotest">neotest</a> </td>
<td>
```lua
neotest = false
```
</td>
</tr>
<!-- neotest -->
<!-- noice.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/folke/noice.nvim">noice.nvim</a> </td>
<td>
```lua
noice = false
```
</td>
</tr>
<!-- noice.nvim -->
<!-- notifier.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/vigoux/notifier.nvim">notifier.nvim</a> </td>
<td>
```lua
notifier = false
```
</td>
</tr>
<!-- notifier.nvim -->
<!-- nvim-cmp -->
</tr>
<tr>
<td> <a href="https://github.com/hrsh7th/nvim-cmp">nvim-cmp</a> </td>
<td>
```lua
cmp = true
```
</td>
</tr>
<!-- nvim-cmp -->
<!-- nvim-copilot-vim -->
</tr>
<tr>
<td> <a href="https://github.com/github/copilot.vim">copilot.vim</a> </td>
<td>
```lua
copilot_vim = false,
```
</td>
</tr>
<!-- nvim-copilot-vim -->
<!-- nvim-dap -->
</tr>
<tr>
<td> <a href="https://github.com/mfussenegger/nvim-dap">nvim-dap</a> </td>
<td>
```lua
dap = true
```
<details> <summary>Special</a> </summary>
```lua
local sign = vim.fn.sign_define
sign("DapBreakpoint", { text = "●", texthl = "DapBreakpoint", linehl = "", numhl = ""})
sign("DapBreakpointCondition", { text = "●", texthl = "DapBreakpointCondition", linehl = "", numhl = ""})
sign("DapLogPoint", { text = "◆", texthl = "DapLogPoint", linehl = "", numhl = ""})
```
</details>
</td>
</tr>
<!-- nvim-dap -->
<!-- nvim-dap-ui -->
</tr>
<tr>
<td> <a href="https://github.com/rcarriga/nvim-dap-ui">nvim-dap-ui</a> </td>
<td>
```lua
dap_ui = true
```
</td>
</tr>
<!-- nvim-dap-ui -->
<!-- navic -->
</tr>
<tr>
<td> <a href="https://github.com/SmiteshP/nvim-navic">navic</a> </td>
<td>
```lua
navic = {
enabled = false,
custom_bg = "NONE", -- "lualine" will set background to mantle
},
```
<details> <summary>Special</summary>
```lua
-- You NEED to enable highlight in nvim-navic setting or it won't work
require("nvim-navic").setup {
highlight = true
}
```
</details>
</td>
</tr>
<!-- navic -->
<!-- nvim-notify -->
</tr>
<tr>
<td> <a href="https://github.com/rcarriga/nvim-notify">nvim-notify</a> </td>
<td>
```lua
notify = false
```
</td>
</tr>
<!-- nvim-notify -->
<!-- nvim-surround -->
</tr>
<tr>
<td> <a href="https://github.com/kylechui/nvim-surround">nvim-surround</a> </td>
<td>
```lua
nvim_surround = false
```
</td>
</tr>
<!-- nvim-surround -->
<!-- nvim-tree.lua -->
</tr>
<tr>
<td> <a href="https://github.com/kyazdani42/nvim-tree.lua">nvim-tree.lua</a> </td>
<td>
```lua
nvimtree = true
```
</td>
</tr>
<!-- nvim-tree.lua -->
<!-- nvim-treesitter-context -->
</tr>
<tr>
<td> <a href="https://github.com/nvim-treesitter/nvim-treesitter-context">nvim-treesitter-context</a> </td>
<td>
```lua
treesitter_context = true
```
</td>
</tr>
<!-- nvim-treesitter-context -->
<!-- nvim-ts-rainbow2 -->
</tr>
<tr>
<td> <a href="https://github.com/HiPhish/nvim-ts-rainbow2">nvim-ts-rainbow2</a> </td>
<td>
```lua
ts_rainbow2 = false
```
</td>
</tr>
<!-- nvim-ts-rainbow2 -->
<!-- nvim-ts-rainbow -->
</tr>
<tr>
<td> <a href="https://github.com/p00f/nvim-ts-rainbow">nvim-ts-rainbow</a> </td>
<td>
```lua
ts_rainbow = false
```
</td>
</tr>
<!-- nvim-ts-rainbow -->
<!-- nvim-ufo -->
</tr>
<tr>
<td> <a href="https://github.com/kevinhwang91/nvim-ufo">nvim-ufo</a> </td>
<td>
```lua
ufo = true
```
</td>
</tr>
<!-- nvim-ufo -->
<!-- nvim-window-picker -->
</tr>
<tr>
<td> <a href="https://github.com/s1n7ax/nvim-window-picker">nvim-window-picker</a> </td>
<td>
```lua
window_picker = false
```
<!-- nvim-window-picker -->
<!-- octo.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/pwntester/octo.nvim">octo.nvim</a> </td>
<td>
```lua
octo = false
```
</td>
</tr>
<!-- octo.nvim -->
<!-- overseer.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/stevearc/overseer.nvim">overseer.nvim</a> </td>
<td>
```lua
overseer = false
```
</td>
</tr>
<!-- overseer.nvim -->
<!-- pounce.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/rlane/pounce.nvim">pounce.nvim</a> </td>
<td>
```lua
pounce = false
```
</td>
</tr>
<!-- pounce.nvim -->
<!-- rainbow-delimiters.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/HiPhish/rainbow-delimiters.nvim">rainbow-delimiters.nvim</a> </td>
<td>
```lua
rainbow_delimiters = true
```
</td>
</tr>
<!-- rainbow-delimiters.nvim -->
<!-- reactive.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/rasulomaroff/reactive.nvim">reactive.nvim</a> </td>
<td>
<details> <summary>Special</summary>
There're 2 available presets (`cursor` and `cursorline`) for every flavour.
Here is how you can use them.
```lua
require('reactive').setup {
load = { 'catppuccin-mocha-cursor', 'catppuccin-mocha-cursorline' }
}
```
To use another flavour just replace `mocha` with the one you want to use.
</details>
</td>
</tr>
<!-- reactive.nvim -->
<!-- render-markdown.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/MeanderingProgrammer/render-markdown.nvim">render-markdown.nvim</a> </td>
<td>
```lua
render_markdown = true
```
</td>
</tr>
<!-- render-markdown.nvim -->
<!-- snacks.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/folke/snacks.nvim">snacks.nvim</a> </td>
<td>
```lua
snacks = {
enabled = false,
indent_scope_color = "", -- catppuccin color (eg. `lavender`) Default: overlay2
}
```
</td>
</tr>
<!-- snacks.nvim -->
<!-- symbols-outline.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/simrat39/symbols-outline.nvim">symbols-outline.nvim</a> </td>
<td>
> [!NOTE]
> This plugin has been archived by the author, consider using [outline.nvim](https://github.com/hedyhli/outline.nvim)
```lua
symbols_outline = false
```
</td>
</tr>
<!-- symbols-outline.nvim -->
<!-- telekasten.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/renerocksai/telekasten.nvim">telekasten.nvim</a> </td>
<td>
```lua
telekasten = false
```
</td>
</tr>
<!-- telekasten.nvim -->
<!-- telescope.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/nvim-telescope/telescope.nvim">telescope.nvim</a> </td>
<td>
```lua
telescope = {
enabled = true,
}
```
</td>
</tr>
<!-- telescope.nvim -->
<!-- trouble.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/folke/trouble.nvim">trouble.nvim</a> </td>
<td>
```lua
lsp_trouble = false
```
</td>
</tr>
<!-- trouble.nvim -->
<!-- vim-airline -->
</tr>
<tr>
<td> <a href="https://github.com/vim-airline/vim-airline">vim-airline</a> </td>
<td>
<details> <summary>Special</summary>
```vim
let g:airline_theme = 'catppuccin'
```
</details>
</td>
</tr>
<!-- vim-airline -->
<!-- vim-clap -->
</tr>
<tr>
<td> <a href="https://github.com/liuchengxu/vim-clap">vim-clap</a> </td>
<td>
<details> <summary>Special</summary>
Use this to set it up:
```vim
let g:clap_theme = 'catppuccin'
```
</details>
</td>
</tr>
<!-- vim-clap -->
<!-- vim-dadbod-ui -->
</tr>
<tr>
<td> <a href="https://github.com/kristijanhusak/vim-dadbod-ui">vim-dadbod-ui</a> </td>
<td>
```lua
dadbod_ui = false
```
</td>
</tr>
<!-- vim-dadbod-ui -->
<!-- vim-gitgutter -->
</tr>
<tr>
<td> <a href="https://github.com/airblade/vim-gitgutter">vim-gitgutter</a> </td>
<td>
```lua
gitgutter = false
```
</td>
</tr>
<!-- vim-gitgutter -->
<!-- vim-illuminate -->
</tr>
<tr>
<td> <a href="https://github.com/RRethy/vim-illuminate">vim-illuminate</a> </td>
<td>
```lua
illuminate = {
enabled = true,
lsp = false
}
```
</td>
</tr>
<!-- vim-illuminate -->
<!-- vim-sandwich -->
</tr>
<tr>
<td> <a href="https://github.com/machakann/vim-sandwich">vim-sandwich</a> </td>
<td>
```lua
sandwich = false
```
</td>
</tr>
<!-- vim-sandwich -->
<!-- vim-signify -->
</tr>
<tr>
<td> <a href="https://github.com/mhinz/vim-signify">vim-signify</a> </td>
<td>
```lua
signify = false
```
</td>
</tr>
<!-- vim-signify -->
<!-- vim-sneak -->
</tr>
<tr>
<td> <a href="https://github.com/justinmk/vim-sneak">vim-sneak</a> </td>
<td>
```lua
vim_sneak = false
```
</td>
</tr>
<!-- vim-sneak -->
<!-- vimwiki -->
</tr>
<tr>
<td> <a href="https://github.com/vimwiki/vimwiki">vimwiki</a> </td>
<td>
```lua
vimwiki = false
```
</td>
</tr>
<!-- vimwiki -->
<!-- which-key.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/folke/which-key.nvim">which-key.nvim</a> </td>
<td>
```lua
which_key = false
```
</td>
</tr>
<!-- which-key.nvim -->
</table>
## Compile
Catppuccin is a highly customizable and configurable colorscheme. This does
however come at the cost of complexity and execution time. Catppuccin can pre
compute the results of your configuration and store the results in a compiled
Lua file. We use these pre-cached values to set it's highlights.
By default, Catppuccin writes the compiled results into the system's cache
directory. See below if you'd like to change the cache directory:
```lua
require("catppuccin").setup({ -- Note: On windows we replace `/` with `\` by default
compile_path = vim.fn.stdpath "cache" .. "/catppuccin"
})
```
## 🙋 FAQ
### Why do my Treesitter highlights look incorrect?
Please disable `additional_vim_regex_highlighting`:
```lua
require("nvim-treesitter.configs").setup {
highlight = {
enable = true,
additional_vim_regex_highlighting = false
},
}
```
### Why aren't my colors the same as the previews?
Catppuccin requires that your terminal supports true color, meaning that your
terminal can display the full range of 16 million colors.
- Supported: iterm2 (macOS), kitty, wezterm, alacritty, [see full list...](https://github.com/termstandard/colors#truecolor-support-in-output-devices)
- Unsupported: Terminal.app (macOS), Terminus, Terminology, [see full list...](https://github.com/termstandard/colors#not-supporting-truecolor)
If you use tmux, make sure to enable [true color
support](https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6)
and [italic font
support](https://gist.github.com/gyribeiro/4192af1aced7a1b555df06bd3781a722).
This will prevent issues raised in
[#415](https://github.com/catppuccin/nvim/issues/415) and
[#428](https://github.com/catppuccin/nvim/issues/428).
## 💝 Thanks to
**Current Maintainer(s)**
- [vollowx](https://github.com/vollowx)
- [robin](https://github.com/comfysage)
**Previous Maintainer(s)**
- [Pocco81](https://github.com/Pocco81)
- [nullchilly](https://github.com/nullchilly)
- [mrtnvgr](https://github.com/mrtnvgr)
<!-- panvimdoc-ignore-start -->
<p align="center"><img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true" /></p>
<p align="center">Copyright © 2021-present <a href="https://github.com/catppuccin" target="_blank">Catppuccin Org</a>
<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>
<!-- panvimdoc-ignore-end -->
================================================
FILE: after/queries/css/highlights.scm
================================================
;; extends
[
(class_name)
] @property.class
[
(id_name)
] @property.id
[
(declaration
(plain_value) @string.plain)
]
[
(tag_name)
] @type.tag
================================================
FILE: after/queries/javascript/highlights.scm
================================================
;; extends
[
"export"
] @keyword.export
================================================
FILE: after/queries/typescript/highlights.scm
================================================
;; extends
[
"export"
] @keyword.export
================================================
FILE: colors/catppuccin-frappe.lua
================================================
require("catppuccin").load "frappe"
================================================
FILE: colors/catppuccin-latte.lua
================================================
require("catppuccin").load "latte"
================================================
FILE: colors/catppuccin-macchiato.lua
================================================
require("catppuccin").load "macchiato"
================================================
FILE: colors/catppuccin-mocha.lua
================================================
require("catppuccin").load "mocha"
================================================
FILE: colors/catppuccin-nvim.vim
================================================
lua require("catppuccin").load()
================================================
FILE: colors/catppuccin.lua
================================================
require("catppuccin").load()
================================================
FILE: doc/catppuccin.txt
================================================
*catppuccin.txt* Soothing pastel theme for NeoVim
==============================================================================
Table of Contents *catppuccin-table-of-contents*
- Features |catppuccin-features|
- Installation |catppuccin-installation|
- Usage |catppuccin-usage|
- Configuration |catppuccin-configuration|
- Customization |catppuccin-customization|
- Integrations |catppuccin-integrations|
- Compile |catppuccin-compile|
- 🙋 FAQ |catppuccin-🙋-faq|
- 💝 Thanks to |catppuccin-💝-thanks-to|
FEATURES *catppuccin-features*
- Supports Neovim <https://github.com/neovim/neovim/> >= 0.8
- Highly configurable with 4 different flavours and the ability to create your own! <https://github.com/catppuccin/nvim/discussions/323>
- 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/>
- Integrations with lsp, treesitter and a bunch of plugins <https://github.com/catppuccin/nvim#integrations>
- Support for many other applications <https://github.com/catppuccin/catppuccin>
INSTALLATION *catppuccin-installation*
lazy.nvim <https://github.com/folke/lazy.nvim>
>lua
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 }
<
mini.deps
<https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-deps.md>
>lua
add({ source = "catppuccin/nvim", name = "catppuccin" })
<
packer.nvim <https://github.com/wbthomason/packer.nvim>
>lua
use { "catppuccin/nvim", as = "catppuccin" }
<
with Neovim 0.12’s `vim.pack`
>lua
vim.pack.add({ src = "https://github.com/catppuccin/nvim", name = "catppuccin" })
<
VIM SUPPORT ~
Support for vim is provided through the `vim` branch.
>vim
Plug 'catppuccin/nvim', { 'branch': 'vim', 'as': 'catppuccin' }
<
![NOTE] Keep in mind that vim support has been dropped (#949
<https://github.com/catppuccin/nvim/pull/949>) and this branch won’t receive
further updates unless necessary. For full vim support see catppuccin/vim
<https://github.com/catppuccin/vim>
USAGE *catppuccin-usage*
>vim
colorscheme catppuccin-nvim " catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha
<
>lua
vim.cmd.colorscheme "catppuccin-nvim"
<
CONFIGURATION *catppuccin-configuration*
There is no need to call `setup` if you don’t want to change the default
options and settings.
>lua
require("catppuccin").setup({
flavour = "auto", -- latte, frappe, macchiato, mocha
background = { -- :h background
light = "latte",
dark = "mocha",
},
transparent_background = false, -- disables setting the background color.
float = {
transparent = false, -- enable transparent floating windows
solid = false, -- use solid styling for floating windows, see |winborder|
},
show_end_of_buffer = false, -- shows the '~' characters after the end of buffers
term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`)
dim_inactive = {
enabled = false, -- dims the background color of inactive window
shade = "dark",
percentage = 0.15, -- percentage of the shade to apply to the inactive window
},
no_italic = false, -- Force no italic
no_bold = false, -- Force no bold
no_underline = false, -- Force no underline
styles = { -- Handles the styles of general hi groups (see `:h highlight-args`):
comments = { "italic" }, -- Change the style of comments
conditionals = { "italic" },
loops = {},
functions = {},
keywords = {},
strings = {},
variables = {},
numbers = {},
booleans = {},
properties = {},
types = {},
operators = {},
-- miscs = {}, -- Uncomment to turn off hard-coded styles
},
lsp_styles = { -- Handles the style of specific lsp hl groups (see `:h lsp-highlight`).
virtual_text = {
errors = { "italic" },
hints = { "italic" },
warnings = { "italic" },
information = { "italic" },
ok = { "italic" },
},
underlines = {
errors = { "underline" },
hints = { "underline" },
warnings = { "underline" },
information = { "underline" },
ok = { "underline" },
},
inlay_hints = {
background = true,
},
},
color_overrides = {},
custom_highlights = {},
default_integrations = true,
auto_integrations = false,
integrations = {
cmp = true,
gitsigns = true,
nvimtree = true,
notify = false,
mini = {
enabled = true,
indentscope_color = "",
},
-- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)
},
})
-- setup must be called before loading
vim.cmd.colorscheme "catppuccin-nvim"
<
CUSTOMIZATION *catppuccin-customization*
GETTING COLORS ~
>lua
local latte = require("catppuccin.palettes").get_palette "latte"
local frappe = require("catppuccin.palettes").get_palette "frappe"
local macchiato = require("catppuccin.palettes").get_palette "macchiato"
local mocha = require("catppuccin.palettes").get_palette "mocha"
<
Returns a table where the key is the name of the color and the value is the hex
code.
OVERWRITING COLORS ~
Colors can be overwritten using `color_overrides`, see
https://github.com/catppuccin/nvim/discussions/323 for inspiration:
>lua
require("catppuccin").setup {
color_overrides = {
all = {
text = "#ffffff",
},
latte = {
base = "#ff0000",
mantle = "#242424",
crust = "#474747",
},
frappe = {},
macchiato = {},
mocha = {},
}
}
<
OVERWRITING HIGHLIGHT GROUPS ~
Global highlight groups can be overwritten, for example:
>lua
require("catppuccin").setup {
custom_highlights = function(colors)
return {
Comment = { fg = colors.flamingo },
TabLineSel = { bg = colors.pink },
CmpBorder = { fg = colors.surface2 },
Pmenu = { bg = colors.none },
}
end
}
<
Highlight groups per flavour can also be overwritten, for example:
>lua
require("catppuccin").setup {
highlight_overrides = {
all = function(colors)
return {
NvimTreeNormal = { fg = colors.none },
CmpBorder = { fg = "#3e4145" },
}
end,
latte = function(latte)
return {
Normal = { fg = latte.base },
}
end,
frappe = function(frappe)
return {
["@comment"] = { fg = frappe.surface2, style = { "italic" } },
}
end,
macchiato = function(macchiato)
return {
LineNr = { fg = macchiato.overlay1 },
}
end,
mocha = function(mocha)
return {
Comment = { fg = mocha.flamingo },
}
end,
},
}
<
INTEGRATIONS *catppuccin-integrations*
Catppuccin provides theme support for other plugins in the Neovim ecosystem and
extended Neovim functionality through _integrations_.
To enable/disable an integration you just need to set it to true/false, for
example:
>lua
require("catppuccin").setup({
integrations = {
cmp = true,
gitsigns = true,
nvimtree = true,
notify = false,
mini = {
enabled = true,
indentscope_color = "",
},
}
})
<
Some integrations are enabled by default, you can control this behaviour with
`default_integrations` option.
>lua
require("catppuccin").setup({
default_integrations = false,
})
<
If 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.
>lua
require("catppuccin").setup({
auto_integrations = true,
})
<
Below is a list of supported plugins and their corresponding integration
module.
[!Important] 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.
PluginDefaultaerial.nvim>lua
aerial = false
<
alpha-nvim>lua
alpha = true
<
barbar.nvim>lua
barbar = false
<
barbecue.nvim>lua
barbecue = {
dim_dirname = true, -- directory name is dimmed by default
bold_basename = true,
dim_context = false,
alt_background = false,
},
<
Special ~
Use this to set it up:
>lua
require("barbecue").setup {
theme = "catppuccin-nvim", -- catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha
}
<
beacon.nvim>lua
beacon = false
<
blink.cmp>lua
blink_cmp = {
style = 'bordered',
}
<
blink.indent>lua
blink_indent = true
<
blink.pairs>lua
blink_pairs = true
<
Special ~
Use this to set it up:
>lua
require("blink.pairs").setup {
highlights = {
groups = {
"BlinkPairsRed",
"BlinkPairsYellow",
"BlinkPairsBlue",
"BlinkPairsOrange",
"BlinkPairsGreen",
"BlinkPairsPurple",
"BlinkPairsCyan",
},
},
}
<
bufferline.nvimSpecial ~
Update your bufferline config to use the Catppuccin components:
[!NOTE] bufferline needs to be loaded after setting up Catppuccin or it will
highlight incorrectly
>lua
use "akinsho/bufferline.nvim" {
after = "catppuccin",
config = function()
require("bufferline").setup {
highlights = require("catppuccin.special.bufferline").get_theme()
}
end
}
<
Configurations are self-explanatory, see |bufferline-highlights| for detailed
explanations:
>lua
local mocha = require("catppuccin.palettes").get_palette "mocha"
bufferline.setup {
highlights = require("catppuccin.special.bufferline").get_theme {
styles = { "italic", "bold" },
custom = {
all = {
fill = { bg = "#000000" },
},
mocha = {
background = { fg = mocha.text },
},
latte = {
background = { fg = "#000000" },
},
},
},
}
<
buffon.nvim>lua
buffon = false
<
coc.nvim>lua
coc_nvim = false
<
Special ~
Setting `enabled` to `true` enables this integration.
>lua
coc_nvim = true,
<
[!Note] coc.nvim by default link to native lsp highlight groups so `lsp_styles`
options will also apply to coc
In 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)).
>lua
lsp_styles = {
virtual_text = {
errors = { "italic" },
hints = { "italic" },
warnings = { "italic" },
information = { "italic" },
ok = { "italic" },
},
underlines = {
errors = { "underline" },
hints = { "underline" },
warnings = { "underline" },
information = { "underline" },
ok = { "underline" },
},
inlay_hints = {
background = true,
},
},
<
colorful-winsep.nvim>lua
colorful_winsep = {
enabled = false,
color = "red",
}
<
dashboard-nvim>lua
dashboard = true
<
diffview.nvim>lua
diffview = false
<
dropbar.nvim>lua
dropbar = {
enabled = false,
color_mode = false, -- enable color for kind's texts, not just kind's icons
},
<
feline.nvimSpecial ~
Update your Feline config to use the Catppuccin components:
>lua
local ctp_feline = require('catppuccin.special.feline')
ctp_feline.setup()
require("feline").setup({
components = ctp_feline.get_statusline(),
})
<
Notice that calling `setup()` is optional. You may pass a lua table in order to
change assets, settings and the colors per vim mode.
Here are the defaults:
>lua
local clrs = require("catppuccin.palettes").get_palette()
local ctp_feline = require('catppuccin.special.feline')
local U = require "catppuccin.utils.colors"
ctp_feline.setup({
assets = {
left_separator = "",
right_separator = "",
mode_icon = "",
dir = "",
file = "",
lsp = {
server = "",
error = "",
warning = "",
info = "",
hint = "",
},
git = {
branch = "",
added = "",
changed = "",
removed = "",
},
},
sett = {
text = U.vary_color({ latte = latte.base }, clrs.surface0),
bkg = U.vary_color({ latte = latte.crust }, clrs.surface0),
diffs = clrs.mauve,
extras = clrs.overlay1,
curr_file = clrs.maroon,
curr_dir = clrs.flamingo,
show_modified = false, -- show if the file has been modified
show_lazy_updates = false -- show the count of updatable plugins from lazy.nvim
-- need to set checker.enabled = true in lazy.nvim first
-- the icon is set in ui.icons.plugin in lazy.nvim
},
mode_colors = {
["n"] = { "NORMAL", clrs.lavender },
["no"] = { "N-PENDING", clrs.lavender },
["i"] = { "INSERT", clrs.green },
["ic"] = { "INSERT", clrs.green },
["t"] = { "TERMINAL", clrs.green },
["v"] = { "VISUAL", clrs.flamingo },
["V"] = { "V-LINE", clrs.flamingo },
[""] = { "V-BLOCK", clrs.flamingo },
["R"] = { "REPLACE", clrs.maroon },
["Rv"] = { "V-REPLACE", clrs.maroon },
["s"] = { "SELECT", clrs.maroon },
["S"] = { "S-LINE", clrs.maroon },
[""] = { "S-BLOCK", clrs.maroon },
["c"] = { "COMMAND", clrs.peach },
["cv"] = { "COMMAND", clrs.peach },
["ce"] = { "COMMAND", clrs.peach },
["r"] = { "PROMPT", clrs.teal },
["rm"] = { "MORE", clrs.teal },
["r?"] = { "CONFIRM", clrs.mauve },
["!"] = { "SHELL", clrs.green },
},
view = {
lsp = {
progress = true, -- if true the status bar will display an lsp progress indicator
name = false, -- if true the status bar will display the lsp servers name, otherwise it will display the text "Lsp"
exclude_lsp_names = {}, -- lsp server names that should not be displayed when name is set to true
separator = "|", -- the separator used when there are multiple lsp servers
},
}
})
<
[!Warning] 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:
>lua
vim.api.nvim_create_autocmd("ColorScheme", {
pattern = "*",
callback = function()
package.loaded["feline"] = nil
package.loaded["catppuccin.special.feline"] = nil
require("feline").setup {
components = require("catppuccin.special.feline").get_statusline(),
}
end,
})
<
fern.vim>lua
fern = false
<
fidget.nvim>lua
fidget = false
<
Special ~
Set `notification.window.winblend` to `0`:
>lua
require("fidget").setup {
notification = {
window = {
winblend = 0,
},
}
-- ... the rest of your fidget config
}
<
flash.nvim>lua
flash = true
<
fzf-lua>lua
fzf = true
<
gitgraph.nvim>lua
gitgraph = false
<
gitsigns.nvim>lua
gitsigns = true
<
Special ~
>lua
gitsigns = {
enabled = true,
-- align with the transparent_background option by default
transparent = false,
}
<
grug-far.nvim>lua
grug_far = false
<
harpoon>lua
harpoon = false
<
headlines.nvim>lua
headlines = false
<
hop.nvim>lua
hop = false
<
indent-blankline.nvim>lua
indent_blankline = {
enabled = true,
scope_color = "", -- catppuccin color (eg. `lavender`) Default: text
colored_indent_levels = false,
},
<
Special ~
`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.
leap.nvim>lua
leap = false
<
lightline.vimSpecial ~
>vim
let g:lightline = {'colorscheme': 'catppuccin'}
<
lightspeed.nvim>lua
lightspeed = false
<
lir.nvim>lua
lir = {
enabled = false,
git_status = false
}
<
lspsaga.nvim>lua
lsp_saga = false
<
Special ~
For custom Lsp Kind Icon and Color
>lua
require("lspsaga").setup {
ui = {
kind = require("catppuccin.groups.integrations.lsp_saga").custom_kind(),
},
}
<
lualine.nvim>lua
-- transparent_bg = opts.transparent_background and "NONE" or C.mantle
lualine = {
normal = {
a = { bg = C.blue, fg = C.mantle, gui = "bold" },
b = { bg = C.surface0, fg = C.blue },
c = { bg = transparent_bg, fg = C.text },
},
insert = {
a = { bg = C.green, fg = C.base, gui = "bold" },
b = { bg = C.surface0, fg = C.green },
},
terminal = {
a = { bg = C.green, fg = C.base, gui = "bold" },
b = { bg = C.surface0, fg = C.green },
},
command = {
a = { bg = C.peach, fg = C.base, gui = "bold" },
b = { bg = C.surface0, fg = C.peach },
},
visual = {
a = { bg = C.mauve, fg = C.base, gui = "bold" },
b = { bg = C.surface0, fg = C.mauve },
},
replace = {
a = { bg = C.red, fg = C.base, gui = "bold" },
b = { bg = C.surface0, fg = C.red },
},
inactive = {
a = { bg = transparent_bg, fg = C.blue },
b = { bg = transparent_bg, fg = C.surface1, gui = "bold" },
c = { bg = transparent_bg, fg = C.overlay0 },
},
},
<
Special ~
To implement color overrides in the `integrations.lualine` spec:
>lua
-- In your catppuccin config (integrations):
lualine = {
-- lualine color overrides in the following hierarchy: Catppuccin Flavor -> Mode -> Lualine Section
-- The Catppuccin flavor entry can be any Catpuccin flavor or "all" to apply to all flavors
-- The flavor entry can be either a table or a function which consumes the current Catppuccin palette, just like custom_highlights and color_overrides
all = function(colors)
---@type CtpIntegrationLualineOverride
return {
-- Specifying a normal-mode status line override for section a's background and b's foreground to use lavender like the main Catppuccin theme
normal = {
a = { bg = colors.lavender, gui = "italic" },
b = { fg = colors.lavender },
}
}
end,
-- 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
macchiato = {
normal = {
a = { bg = "#abcdef" },
}
},
},
-- And in your lualine config:
require('lualine').setup {
options = {
-- lualine will integrate with catppuccin by name or automatically via `vim.g.colors_name` by setting this to "auto"
theme = "catppuccin-nvim"
-- ... the rest of your lualine config
}
}
<
markview.nvim>lua
markview = false
<
mason.nvim>lua
mason = false
<
mini.nvim>lua
mini = {
enabled = true,
indentscope_color = "", -- catppuccin color (eg. `lavender`) Default: text
},
<
neo-tree.nvim>lua
neotree = true
<
neogit>lua
neogit = true
<
neotest>lua
neotest = false
<
noice.nvim>lua
noice = false
<
notifier.nvim>lua
notifier = false
<
nvim-cmp>lua
cmp = true
<
copilot.vim>lua
copilot_vim = false,
<
nvim-dap>lua
dap = true
<
Special ~
>lua
local sign = vim.fn.sign_define
sign("DapBreakpoint", { text = "●", texthl = "DapBreakpoint", linehl = "", numhl = ""})
sign("DapBreakpointCondition", { text = "●", texthl = "DapBreakpointCondition", linehl = "", numhl = ""})
sign("DapLogPoint", { text = "◆", texthl = "DapLogPoint", linehl = "", numhl = ""})
<
nvim-dap-ui>lua
dap_ui = true
<
navic>lua
navic = {
enabled = false,
custom_bg = "NONE", -- "lualine" will set background to mantle
},
<
Special ~
>lua
-- You NEED to enable highlight in nvim-navic setting or it won't work
require("nvim-navic").setup {
highlight = true
}
<
nvim-notify>lua
notify = false
<
nvim-surround>lua
nvim_surround = false
<
nvim-tree.lua>lua
nvimtree = true
<
nvim-treesitter-context>lua
treesitter_context = true
<
nvim-ts-rainbow2>lua
ts_rainbow2 = false
<
nvim-ts-rainbow>lua
ts_rainbow = false
<
nvim-ufo>lua
ufo = true
<
nvim-window-picker>lua
window_picker = false
<
octo.nvim>lua
octo = false
<
overseer.nvim>lua
overseer = false
<
pounce.nvim>lua
pounce = false
<
rainbow-delimiters.nvim>lua
rainbow_delimiters = true
<
reactive.nvimSpecial ~
There’re 2 available presets (`cursor` and `cursorline`) for every flavour.
Here is how you can use them.
>lua
require('reactive').setup {
load = { 'catppuccin-mocha-cursor', 'catppuccin-mocha-cursorline' }
}
<
To use another flavour just replace `mocha` with the one you want to use.
render-markdown.nvim>lua
render_markdown = true
<
snacks.nvim>lua
snacks = {
enabled = false,
indent_scope_color = "", -- catppuccin color (eg. `lavender`) Default: overlay2
}
<
symbols-outline.nvim
[!NOTE] This plugin has been archived by the author, consider using
outline.nvim <https://github.com/hedyhli/outline.nvim>
>lua
symbols_outline = false
<
telekasten.nvim>lua
telekasten = false
<
telescope.nvim>lua
telescope = {
enabled = true,
}
<
trouble.nvim>lua
lsp_trouble = false
<
vim-airlineSpecial ~
>vim
let g:airline_theme = 'catppuccin'
<
vim-clapSpecial ~
Use this to set it up:
>vim
let g:clap_theme = 'catppuccin'
<
vim-dadbod-ui>lua
dadbod_ui = false
<
vim-gitgutter>lua
gitgutter = false
<
vim-illuminate>lua
illuminate = {
enabled = true,
lsp = false
}
<
vim-sandwich>lua
sandwich = false
<
vim-signify>lua
signify = false
<
vim-sneak>lua
vim_sneak = false
<
vimwiki>lua
vimwiki = false
<
which-key.nvim>lua
which_key = false
<
COMPILE *catppuccin-compile*
Catppuccin is a highly customizable and configurable colorscheme. This does
however come at the cost of complexity and execution time. Catppuccin can pre
compute the results of your configuration and store the results in a compiled
Lua file. We use these pre-cached values to set it’s highlights.
By default, Catppuccin writes the compiled results into the system’s cache
directory. See below if you’d like to change the cache directory:
>lua
require("catppuccin").setup({ -- Note: On windows we replace `/` with `\` by default
compile_path = vim.fn.stdpath "cache" .. "/catppuccin"
})
<
🙋 FAQ *catppuccin-🙋-faq*
WHY DO MY TREESITTER HIGHLIGHTS LOOK INCORRECT? ~
Please disable `additional_vim_regex_highlighting`:
>lua
require("nvim-treesitter.configs").setup {
highlight = {
enable = true,
additional_vim_regex_highlighting = false
},
}
<
WHY AREN’T MY COLORS THE SAME AS THE PREVIEWS? ~
Catppuccin requires that your terminal supports true color, meaning that your
terminal can display the full range of 16 million colors.
- Supported: iterm2 (macOS), kitty, wezterm, alacritty, see full list… <https://github.com/termstandard/colors#truecolor-support-in-output-devices>
- Unsupported: Terminal.app (macOS), Terminus, Terminology, see full list… <https://github.com/termstandard/colors#not-supporting-truecolor>
If you use tmux, make sure to enable true color support
<https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6> and
italic font support
<https://gist.github.com/gyribeiro/4192af1aced7a1b555df06bd3781a722>. This will
prevent issues raised in #415 <https://github.com/catppuccin/nvim/issues/415>
and #428 <https://github.com/catppuccin/nvim/issues/428>.
💝 THANKS TO *catppuccin-💝-thanks-to*
**Current Maintainer(s)**
- vollowx <https://github.com/vollowx>
- robin <https://github.com/comfysage>
**Previous Maintainer(s)**
- Pocco81 <https://github.com/Pocco81>
- nullchilly <https://github.com/nullchilly>
- mrtnvgr <https://github.com/mrtnvgr>
Generated by panvimdoc <https://github.com/kdheepak/panvimdoc>
vim:tw=78:ts=8:noet:ft=help:norl:
================================================
FILE: justfile
================================================
_default:
@just list
build:
whiskers nvim.tera
================================================
FILE: lua/barbecue/theme/catppuccin-frappe.lua
================================================
return require "catppuccin.utils.barbecue" "frappe"
================================================
FILE: lua/barbecue/theme/catppuccin-latte.lua
================================================
return require "catppuccin.utils.barbecue" "latte"
================================================
FILE: lua/barbecue/theme/catppuccin-macchiato.lua
================================================
return require "catppuccin.utils.barbecue" "macchiato"
================================================
FILE: lua/barbecue/theme/catppuccin-mocha.lua
================================================
return require "catppuccin.utils.barbecue" "mocha"
================================================
FILE: lua/barbecue/theme/catppuccin-nvim.lua
================================================
return require "catppuccin.utils.barbecue"()
================================================
FILE: lua/catppuccin/groups/editor.lua
================================================
local M = {}
function M.get()
return {
ColorColumn = { bg = C.surface0 }, -- used for the columns set with 'colorcolumn'
Conceal = { fg = C.overlay1 }, -- placeholder characters substituted for concealed text (see 'conceallevel')
Cursor = { fg = C.base, bg = C.rosewater }, -- character under the cursor
lCursor = { fg = C.base, bg = C.rosewater }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')
CursorIM = { fg = C.base, bg = C.rosewater }, -- like Cursor, but used when in IME mode |CursorIM|
CursorColumn = { bg = C.mantle }, -- Screen-column at the cursor, when 'cursorcolumn' is set.
CursorLine = {
bg = U.vary_color({ latte = U.lighten(C.mantle, 0.70, C.base) }, U.darken(C.surface0, 0.64, C.base)),
}, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if forecrust (ctermfg OR guifg) is not set.
Directory = { fg = C.blue }, -- directory names (and other special names in listings)
EndOfBuffer = { 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|.
ErrorMsg = { fg = C.red, style = { "bold", "italic" } }, -- error messages on the command line
VertSplit = { fg = O.transparent_background and C.surface1 or C.crust }, -- the column separating vertically split windows
Folded = { fg = C.blue, bg = O.transparent_background and C.none or C.surface1 }, -- line used for closed folds
FoldColumn = { fg = C.overlay0 }, -- 'foldcolumn'
SignColumn = { fg = C.surface1 }, -- column where |signs| are displayed
SignColumnSB = { bg = C.crust, fg = C.surface1 }, -- column where |signs| are displayed
Substitute = { bg = C.surface1, fg = U.vary_color({ latte = C.red }, C.pink) }, -- |:substitute| replacement text highlighting
LineNr = { fg = C.surface1 }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set.
CursorLineNr = { fg = C.lavender }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. highlights the number in numberline.
MatchParen = { 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|
ModeMsg = { fg = C.text, style = { "bold" } }, -- 'showmode' message (e.g., "-- INSERT -- ")
-- MsgArea = { fg = C.text }, -- Area for messages and cmdline, don't set this highlight because of https://github.com/neovim/neovim/issues/17832
MsgSeparator = { link = "WinSeparator" }, -- Separator for scrolled messages, `msgsep` flag of 'display'
MoreMsg = { fg = C.blue }, -- |more-prompt|
NonText = { 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|.
Normal = { fg = C.text, bg = O.transparent_background and C.none or C.base }, -- normal text
NormalNC = {
fg = C.text,
bg = (O.transparent_background and O.dim_inactive.enabled and C.dim)
or (O.dim_inactive.enabled and C.dim)
or (O.transparent_background and C.none)
or C.base,
}, -- normal text in non-current windows
NormalSB = { fg = C.text, bg = C.crust }, -- normal text in non-current windows
NormalFloat = { fg = C.text, bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle }, -- Normal text in floating windows.
FloatBorder = O.float.solid
and ((O.float.transparent and vim.o.winblend == 0) and { fg = C.surface2, bg = C.none } or {
fg = C.mantle,
bg = C.mantle,
})
or { fg = C.blue, bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle },
FloatTitle = O.float.solid and {
fg = C.crust,
bg = C.lavender,
} or { fg = C.subtext0, bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle }, -- Title of floating windows
FloatShadow = { bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.overlay0, blend = 80 },
FloatShadowThrough = {
bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.overlay0,
blend = 100,
},
Pmenu = {
bg = (O.transparent_background and vim.o.pumblend == 0) and C.none or C.mantle,
fg = C.overlay2,
}, -- Popup menu: normal item.
PmenuSel = { bg = C.surface0, style = { "bold" } }, -- Popup menu: selected item.
PmenuMatch = { fg = C.text, style = { "bold" } }, -- Popup menu: matching text.
PmenuMatchSel = { style = { "bold" } }, -- Popup menu: matching text in selected item; is combined with |hl-PmenuMatch| and |hl-PmenuSel|.
PmenuSbar = { bg = C.surface0 }, -- Popup menu: scrollbar.
PmenuThumb = { bg = C.overlay0 }, -- Popup menu: Thumb of the scrollbar.
PmenuExtra = { fg = C.overlay0 }, -- Popup menu: normal item extra text.
PmenuExtraSel = {
bg = C.surface0,
fg = C.overlay0,
style = { "bold" },
}, -- Popup menu: selected item extra text.
ComplMatchIns = { link = "PreInsert" }, -- Matched text of the currently inserted completion.
PreInsert = { fg = C.overlay2 }, -- Text inserted when "preinsert" is in 'completeopt'.
ComplHint = { fg = C.subtext0 }, -- Virtual text of the currently selected completion.
ComplHintMore = { link = "Question" }, -- The additional information of the virtual text.
Question = { fg = C.blue }, -- |hit-enter| prompt and yes/no questions
QuickFixLine = { 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.
Search = { 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.
IncSearch = { bg = U.darken(C.sky, 0.90, C.base), fg = C.mantle }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c"
CurSearch = { bg = C.red, fg = C.mantle }, -- 'cursearch' highlighting: highlights the current search you're on differently
SpecialKey = { link = "NonText" }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' textspace. |hl-Whitespace|
SpellBad = { sp = C.red, style = { "undercurl" } }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise.
SpellCap = { sp = C.yellow, style = { "undercurl" } }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise.
SpellLocal = { 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.
SpellRare = { 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.
StatusLine = { fg = C.text, bg = O.transparent_background and C.none or C.mantle }, -- status line of current window
StatusLineNC = { 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.
TabLine = { bg = C.crust, fg = C.overlay0 }, -- tab pages line, not active tab page label
TabLineFill = { bg = O.transparent_background and C.none or C.mantle }, -- tab pages line, where there are no labels
TabLineSel = { link = "Normal" }, -- tab pages line, active tab page label
TermCursor = { fg = C.base, bg = C.rosewater }, -- cursor in a focused terminal
TermCursorNC = { fg = C.base, bg = C.overlay2 }, -- cursor in unfocused terminals
Title = { fg = C.blue, style = { "bold" } }, -- titles for output from ":set all", ":autocmd" etc.
Visual = { bg = C.surface1, style = { "bold" } }, -- Visual mode selection
VisualNOS = { bg = C.surface1, style = { "bold" } }, -- Visual mode selection when vim is "Not Owning the Selection".
WarningMsg = { fg = C.yellow }, -- warning messages
Whitespace = { fg = C.surface1 }, -- "nbsp", "space", "tab" and "trail" in 'listchars'
WildMenu = { bg = C.overlay0 }, -- current match in 'wildmenu' completion
WinBar = { fg = C.rosewater },
WinBarNC = { link = "WinBar" },
WinSeparator = { fg = O.transparent_background and C.surface1 or C.crust },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/aerial.lua
================================================
local M = {}
M.url = "https://github.com/stevearc/aerial.nvim"
function M.get()
return {
AerialLine = { fg = C.yellow, bg = C.none },
AerialGuide = { fg = C.overlay2 },
AerialBooleanIcon = { link = "@boolean" },
AerialClassIcon = { link = "@type" },
AerialConstantIcon = { link = "@constant" },
AerialConstructorIcon = { link = "@constructor" },
AerialFieldIcon = { link = "@field" },
AerialFunctionIcon = { link = "@function" },
AerialMethodIcon = { link = "@method" },
AerialNamespaceIcon = { link = "@namespace" },
AerialNumberIcon = { link = "@number" },
AerialOperatorIcon = { link = "@operator" },
AerialTypeParameterIcon = { link = "@type" },
AerialPropertyIcon = { link = "@property" },
AerialStringIcon = { link = "@string" },
AerialVariableIcon = { link = "@constant" },
AerialEnumMemberIcon = { link = "@field" },
AerialEnumIcon = { link = "@type" },
AerialFileIcon = { link = "@text.uri" },
AerialModuleIcon = { link = "@namespace" },
AerialPackageIcon = { link = "@namespace" },
AerialInterfaceIcon = { link = "@type" },
AerialStructIcon = { link = "@type" },
AerialEventIcon = { link = "@type" },
AerialArrayIcon = { link = "@constant" },
AerialObjectIcon = { link = "@type" },
AerialKeyIcon = { link = "@type" },
AerialNullIcon = { link = "@type" },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/alpha.lua
================================================
local M = {}
M.url = "https://github.com/goolord/alpha-nvim"
function M.get()
return {
AlphaShortcut = { fg = C.green },
AlphaHeader = { fg = C.blue },
AlphaHeaderLabel = { fg = C.peach },
AlphaButtons = { fg = C.lavender },
AlphaFooter = { fg = C.yellow, style = { "italic" } },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/artio.lua
================================================
local M = {}
M.url = "https://github.com/comfysage/artio.nvim"
function M.get()
local transparent_background = require("catppuccin").options.transparent_background
return {
ArtioNormal = {
fg = C.text,
bg = transparent_background and "NONE" or C.mantle,
},
ArtioSel = {
fg = C.flamingo,
bg = C.surface0,
style = { "bold" },
},
ArtioMatch = { fg = C.blue },
ArtioPointer = { fg = C.flamingo },
ArtioPrompt = { fg = C.blue },
ArtioMark = { fg = C.yellow },
ArtioMarkLine = { link = "Visual" },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/avante.lua
================================================
local M = {}
M.url = "https://github.com/yetone/avante.nvim"
function M.get()
local rounded = O.integrations.avante.windows_sidebar_header_rounded
return {
-- titles
AvanteTitle = rounded and { bg = C.lavender, fg = C.base } or { fg = C.lavender },
AvanteReversedTitle = rounded and { bg = C.none, fg = C.lavender } or { fg = C.lavender },
AvanteSubtitle = rounded and { bg = C.peach, fg = C.base } or { fg = C.peach },
AvanteReversedSubtitle = rounded and { bg = C.none, fg = C.peach } or { fg = C.peach },
AvanteThirdTitle = rounded and { bg = C.blue, fg = C.base } or { fg = C.blue },
AvanteReversedThirdTitle = rounded and { bg = C.none, fg = C.blue } or { fg = C.blue },
-- hints
AvanteInlineHint = { fg = C.overlay0 },
AvantePopupHint = { fg = C.overlay0 },
AvanteAnnotation = { fg = C.overlay0 },
AvanteSuggestion = { fg = C.overlay0 },
-- conflicts
AvanteConflictCurrent = {
bg = O.transparent_background and C.none or C.mantle,
fg = C.green,
},
AvanteConflictCurrentLabel = {
bg = O.transparent_background and C.none or C.mantle,
fg = C.green,
},
AvanteConflictIncoming = {
bg = O.transparent_background and C.none or C.mantle,
fg = C.blue,
},
AvanteConflictIncomingLabel = {
bg = O.transparent_background and C.none or C.mantle,
fg = C.blue,
},
AvanteConflictAncestor = {
bg = O.transparent_background and C.none or C.mantle,
fg = C.teal,
},
AvanteConflictAncestorLabel = {
bg = O.transparent_background and C.none or C.mantle,
fg = C.teal,
},
AvanteToBeDeleted = {
bg = O.transparent_background and C.none or C.mantle,
fg = C.red,
},
AvanteSidebarWinSeparator = {
link = "WinSeparator",
},
AvantePromptInput = {
link = "FloatNormal",
},
AvantePromptInputBorder = {
link = "FloatBorder",
},
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/barbar.lua
================================================
local M = {}
M.url = "https://github.com/romgrk/barbar.nvim"
function M.get()
return {
BufferCurrent = { bg = C.surface1, fg = C.text },
BufferCurrentIndex = { bg = C.surface1, fg = C.blue },
BufferCurrentMod = { bg = C.surface1, fg = C.yellow },
BufferCurrentSign = { bg = C.surface1, fg = C.blue },
BufferCurrentTarget = { bg = C.surface1, fg = C.red },
BufferVisible = { bg = C.mantle, fg = C.text },
BufferVisibleIndex = { bg = C.mantle, fg = C.blue },
BufferVisibleMod = { bg = C.mantle, fg = C.yellow },
BufferVisibleSign = { bg = C.mantle, fg = C.blue },
BufferVisibleTarget = { bg = C.mantle, fg = C.red },
BufferInactive = { bg = C.mantle, fg = C.overlay0 },
BufferInactiveIndex = { bg = C.mantle, fg = C.overlay0 },
BufferInactiveMod = { bg = C.mantle, fg = C.yellow },
BufferInactiveSign = { bg = C.mantle, fg = C.blue },
BufferInactiveTarget = { bg = C.mantle, fg = C.red },
BufferTabpages = { bg = C.mantle, fg = C.none },
BufferTabpage = { bg = C.mantle, fg = C.blue },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/beacon.lua
================================================
local M = {}
M.url = "https://github.com/DanilaMihailov/beacon.nvim"
function M.get()
return {
Beacon = { bg = C.blue },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/blink_cmp.lua
================================================
local M = {}
M.url = "https://github.com/saghen/blink.cmp"
function M.get()
local style = O.integrations.blink_cmp.style
local highlights = {
BlinkCmpLabel = { fg = C.overlay2 },
BlinkCmpLabelDeprecated = { fg = C.overlay0, style = { "strikethrough" } },
BlinkCmpKind = { fg = C.blue },
BlinkCmpMenu = { link = "Pmenu" },
BlinkCmpDoc = { link = "NormalFloat" },
BlinkCmpLabelMatch = { link = "PmenuMatch" },
BlinkCmpMenuSelection = { bg = C.surface1, style = { "bold" } },
BlinkCmpScrollBarGutter = { bg = C.surface1 },
BlinkCmpScrollBarThumb = { bg = C.overlay0 },
BlinkCmpLabelDescription = { link = "PmenuExtra" },
BlinkCmpLabelDetail = { link = "PmenuExtra" },
BlinkCmpSignatureHelpBorder = { link = "FloatBorder" },
BlinkCmpKindText = { fg = C.green },
BlinkCmpKindMethod = { fg = C.blue },
BlinkCmpKindFunction = { fg = C.blue },
BlinkCmpKindConstructor = { fg = C.blue },
BlinkCmpKindField = { fg = C.green },
BlinkCmpKindVariable = { fg = C.flamingo },
BlinkCmpKindClass = { fg = C.yellow },
BlinkCmpKindInterface = { fg = C.yellow },
BlinkCmpKindModule = { fg = C.blue },
BlinkCmpKindProperty = { fg = C.blue },
BlinkCmpKindUnit = { fg = C.green },
BlinkCmpKindValue = { fg = C.peach },
BlinkCmpKindEnum = { fg = C.yellow },
BlinkCmpKindKeyword = { fg = C.mauve },
BlinkCmpKindSnippet = { fg = C.flamingo },
BlinkCmpKindColor = { fg = C.red },
BlinkCmpKindFile = { fg = C.blue },
BlinkCmpKindReference = { fg = C.red },
BlinkCmpKindFolder = { fg = C.blue },
BlinkCmpKindEnumMember = { fg = C.teal },
BlinkCmpKindConstant = { fg = C.peach },
BlinkCmpKindStruct = { fg = C.blue },
BlinkCmpKindEvent = { fg = C.blue },
BlinkCmpKindOperator = { fg = C.sky },
BlinkCmpKindTypeParameter = { fg = C.maroon },
BlinkCmpKindCopilot = { fg = C.teal },
}
if style == "bordered" then
-- uses FloatBorder.fg and Pmenu.bg
highlights["BlinkCmpMenuBorder"] = {
fg = O.float.solid and ((O.float.transparent and vim.o.winblend == 0) and C.surface2 or C.mantle) or C.blue,
bg = (O.transparent_background and vim.o.pumblend == 0) and C.none or C.mantle,
}
highlights["BlinkCmpDocBorder"] = { link = "FloatBorder" }
end
return highlights
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/blink_indent.lua
================================================
local M = {}
M.url = "https://github.com/saghen/blink.indent"
function M.get()
return {
BlinkIndent = { fg = C.surface0 },
BlinkIndentScope = { fg = C.overlay2 },
BlinkIndentRed = { fg = C.red },
BlinkIndentOrange = { fg = C.peach },
BlinkIndentYellow = { fg = C.yellow },
BlinkIndentGreen = { fg = C.green },
BlinkIndentCyan = { fg = C.sky },
BlinkIndentBlue = { fg = C.blue },
BlinkIndentViolet = { fg = C.mauve },
BlinkIndentRedUnderline = { sp = C.red, style = { "underline" } },
BlinkIndentOrangeUnderline = { sp = C.peach, style = { "underline" } },
BlinkIndentYellowUnderline = { sp = C.yellow, style = { "underline" } },
BlinkIndentGreenUnderline = { sp = C.green, style = { "underline" } },
BlinkIndentCyanUnderline = { sp = C.sky, style = { "underline" } },
BlinkIndentBlueUnderline = { sp = C.blue, style = { "underline" } },
BlinkIndentVioletUnderline = { sp = C.mauve, style = { "underline" } },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/blink_pairs.lua
================================================
local M = {}
M.url = "https://github.com/saghen/blink.pairs"
function M.get()
return {
BlinkPairsRed = { fg = C.red },
BlinkPairsYellow = { fg = C.yellow },
BlinkPairsBlue = { fg = C.blue },
BlinkPairsOrange = { fg = C.peach },
BlinkPairsGreen = { fg = C.green },
BlinkPairsPurple = { fg = C.mauve },
BlinkPairsCyan = { fg = C.teal },
BlinkPairsUnmatched = { fg = C.red },
BlinkPairsMatchParen = { link = "MatchParen" },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/buffon.lua
================================================
local M = {}
M.url = "https://github.com/francescarpi/buffon.nvim"
function M.get()
return {
BuffonUnloadedBuffer = { fg = C.surface1 },
BuffonShortcut = { fg = C.peach },
BuffonLineActive = { fg = C.sapphire },
BuffonUnsavedIndicator = { fg = C.red },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/cmp.lua
================================================
local M = {}
M.url = "https://github.com/hrsh7th/nvim-cmp"
function M.get()
return {
CmpItemAbbr = { fg = C.overlay2 },
CmpItemAbbrDeprecated = { fg = C.overlay0, style = { "strikethrough" } },
CmpItemKind = { fg = C.blue },
CmpItemMenu = { fg = C.text },
CmpItemAbbrMatch = { fg = C.text, style = { "bold" } },
CmpItemAbbrMatchFuzzy = { fg = C.text, style = { "bold" } },
-- kind support
CmpItemKindSnippet = { fg = C.mauve },
CmpItemKindKeyword = { fg = C.red },
CmpItemKindText = { fg = C.teal },
CmpItemKindMethod = { fg = C.blue },
CmpItemKindConstructor = { fg = C.blue },
CmpItemKindFunction = { fg = C.blue },
CmpItemKindFolder = { fg = C.blue },
CmpItemKindModule = { fg = C.blue },
CmpItemKindConstant = { fg = C.peach },
CmpItemKindField = { fg = C.green },
CmpItemKindProperty = { fg = C.green },
CmpItemKindEnum = { fg = C.green },
CmpItemKindUnit = { fg = C.green },
CmpItemKindClass = { fg = C.yellow },
CmpItemKindVariable = { fg = C.flamingo },
CmpItemKindFile = { fg = C.blue },
CmpItemKindInterface = { fg = C.yellow },
CmpItemKindColor = { fg = C.red },
CmpItemKindReference = { fg = C.red },
CmpItemKindEnumMember = { fg = C.red },
CmpItemKindStruct = { fg = C.blue },
CmpItemKindValue = { fg = C.peach },
CmpItemKindEvent = { fg = C.blue },
CmpItemKindOperator = { fg = C.blue },
CmpItemKindTypeParameter = { fg = C.blue },
CmpItemKindCopilot = { fg = C.teal },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/coc_nvim.lua
================================================
local M = {}
M.url = "https://github.com/neoclide/coc.nvim"
function M.get()
return {
-- These groups are for the coc.nvim, see ":h coc-highlights"
-- Custom popup menu since coc v0.0.82
CocMenuSel = { link = "PmenuSel" },
CocPumSearch = { fg = C.sky, style = { "bold" } },
-- Inlay hints
CocInlayHint = {
-- fg of `Comment`
fg = C.overlay0,
style = { "italic" },
},
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/colorful_winsep.lua
================================================
local M = {}
M.url = "https://github.com/nvim-zh/colorful-winsep.nvim"
function M.get()
return {
ColorfulWinSep = {
fg = C[O.integrations.colorful_winsep.color],
bg = O.transparent_background and C.none or C.base,
},
NvimSeparator = { link = "ColorfulWinSep" },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/copilot_vim.lua
================================================
local M = {}
M.url = "https://github.com/github/copilot.vim"
function M.get()
return {
CopilotSuggestion = { fg = C.overlay0 },
CopilotAnnotation = { fg = C.blue },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/dadbod_ui.lua
================================================
local M = {}
M.url = "https://github.com/kristijanhusak/vim-dadbod-ui"
function M.get()
return {
NotificationInfo = { fg = C.blue, bg = C.mantle },
NotificationWarning = { fg = C.yellow, bg = C.mantle },
NotificationError = { fg = C.red, bg = C.mantle },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/dap.lua
================================================
local M = {}
M.url = "https://github.com/mfussenegger/nvim-dap"
function M.get()
return {
DapBreakpoint = { fg = C.red },
DapBreakpointCondition = { fg = C.yellow },
DapBreakpointRejected = { fg = C.mauve },
DapLogPoint = { fg = C.sky },
DapStopped = { fg = C.maroon },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/dap_ui.lua
================================================
local M = {}
M.url = "https://github.com/rcarriga/nvim-dap-ui"
function M.get()
return {
DapUIScope = { fg = C.sky },
DapUIType = { fg = C.mauve },
DapUIValue = { fg = C.sky },
DapUIVariable = { fg = C.text },
DapUIModifiedValue = { fg = C.peach },
DapUIDecoration = { fg = C.sky },
DapUIThread = { fg = C.green },
DapUIStoppedThread = { fg = C.sky },
DapUISource = { fg = C.lavender },
DapUILineNumber = { fg = C.sky },
DapUIFloatBorder = { link = "FloatBorder" },
DapUIWatchesEmpty = { fg = C.maroon },
DapUIWatchesValue = { fg = C.green },
DapUIWatchesError = { fg = C.maroon },
DapUIBreakpointsPath = { fg = C.sky },
DapUIBreakpointsInfo = { fg = C.green },
DapUIBreakpointsCurrentLine = { fg = C.green, style = { "bold" } },
DapUIBreakpointsDisabledLine = { fg = C.surface2 },
DapUIStepOver = { fg = C.blue },
DapUIStepOverNC = { link = "DapUIStepOver" },
DapUIStepInto = { fg = C.blue },
DapUIStepIntoNC = { link = "DapUIStepInto" },
DapUIStepBack = { fg = C.blue },
DapUIStepBackNC = { link = "DapUIStepBack" },
DapUIStepOut = { fg = C.blue },
DapUIStepOutNC = { link = "DapUIStepOut" },
DapUIStop = { fg = C.red },
DapUIStopNC = { link = "DapUIStop" },
DapUIPlayPause = { fg = C.green },
DapUIPlayPauseNC = { link = "DapUIPlayPause" },
DapUIRestart = { fg = C.green },
DapUIRestartNC = { link = "DapUIRestart" },
DapUIUnavailable = { fg = C.surface1 },
DapUIUnavailableNC = { link = "DapUIUnavailable" },
DapUIWinSelect = { fg = C.peach },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/dashboard.lua
================================================
local M = {}
M.url = "https://github.com/nvimdev/dashboard-nvim"
function M.get()
return {
DashboardShortCut = { fg = C.pink },
DashboardHeader = { fg = C.blue },
DashboardCenter = { fg = C.green },
DashboardFooter = { fg = C.yellow, style = { "italic" } },
DashboardMruTitle = { fg = C.sky },
DashboardProjectTitle = { fg = C.sky },
DashboardFiles = { fg = C.lavender },
DashboardKey = { fg = C.peach },
DashboardDesc = { fg = C.blue },
DashboardIcon = { fg = C.pink, bold = true },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/diffview.lua
================================================
local M = {}
M.url = "https://github.com/sindrets/diffview.nvim"
function M.get()
return {
DiffviewDim1 = { link = "Comment" },
DiffviewPrimary = { fg = C.blue },
DiffviewSecondary = { fg = C.green },
DiffviewNormal = { fg = C.text, bg = O.transparent_background and C.none or C.mantle },
DiffviewWinSeparator = {
fg = O.transparent_background and C.surface1 or C.base,
bg = O.transparent_background and C.none or C.base,
},
DiffviewFilePanelTitle = { fg = C.blue, style = { "bold" } },
DiffviewFilePanelCounter = { fg = C.text },
DiffviewFilePanelRootPath = { fg = C.lavender, style = { "bold" } },
DiffviewFilePanelFileName = { fg = C.text },
DiffviewFilePanelSelected = { fg = C.yellow },
DiffviewFilePanelPath = { link = "Comment" },
DiffviewFilePanelInsertions = { fg = C.green },
DiffviewFilePanelDeletions = { fg = C.red },
DiffviewFilePanelConflicts = { fg = C.yellow },
DiffviewFolderName = { fg = C.blue, style = { "bold" } },
DiffviewFolderSign = { fg = C.blue },
DiffviewHash = { fg = C.flamingo },
DiffviewReference = { fg = C.blue, style = { "bold" } },
DiffviewReflogSelector = { fg = C.pink },
DiffviewStatusAdded = { fg = C.green },
DiffviewStatusUntracked = { fg = C.green },
DiffviewStatusModified = { fg = C.yellow },
DiffviewStatusRenamed = { fg = C.yellow },
DiffviewStatusCopied = { fg = C.yellow },
DiffviewStatusTypeChange = { fg = C.yellow },
DiffviewStatusUnmerged = { fg = C.yellow },
DiffviewStatusUnknown = { fg = C.red },
DiffviewStatusDeleted = { fg = C.red },
DiffviewStatusBroken = { fg = C.red },
DiffviewStatusIgnored = { fg = C.overlay0 },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/dropbar.lua
================================================
local M = {}
M.url = "https://github.com/Bekaboo/dropbar.nvim"
function M.get()
local color = O.integrations.dropbar.color_mode
return {
DropBarMenuHoverEntry = { link = "Visual" },
DropBarMenuHoverIcon = { reverse = true },
DropBarMenuHoverSymbol = { bold = true },
DropBarIconUISeparator = { fg = C.overlay1 },
DropBarKindArray = color and { link = "DropBarIconKindArray" } or { fg = C.text },
DropBarKindBoolean = color and { link = "DropBarIconKindBoolean" } or { fg = C.text },
DropBarKindBreakStatement = color and { link = "DropBarIconKindBreakStatement" } or { fg = C.text },
DropBarKindCall = color and { link = "DropBarIconKindCall" } or { fg = C.text },
DropBarKindCaseStatement = color and { link = "DropBarIconKindCaseStatement" } or { fg = C.text },
DropBarKindClass = color and { link = "DropBarIconKindClass" } or { fg = C.text },
DropBarKindConstant = color and { link = "DropBarIconKindConstant" } or { fg = C.text },
DropBarKindConstructor = color and { link = "DropBarIconKindConstructor" } or { fg = C.text },
DropBarKindContinueStatement = color and { link = "DropBarIconKindContinueStatement" } or { fg = C.text },
DropBarKindDeclaration = color and { link = "DropBarIconKindDeclaration" } or { fg = C.text },
DropBarKindDelete = color and { link = "DropBarIconKindDelete" } or { fg = C.text },
DropBarKindDoStatement = color and { link = "DropBarIconKindDoStatement" } or { fg = C.text },
DropBarKindElseStatement = color and { link = "DropBarIconKindElseStatement" } or { fg = C.text },
DropBarKindEnum = color and { link = "DropBarIconKindEnum" } or { fg = C.text },
DropBarKindEnumMember = color and { link = "DropBarIconKindEnumMember" } or { fg = C.text },
DropBarKindEvent = color and { link = "DropBarIconKindEvent" } or { fg = C.text },
DropBarKindField = color and { link = "DropBarIconKindField" } or { fg = C.text },
DropBarKindFile = color and { link = "DropBarIconKindFile" } or { fg = C.text },
DropBarKindFolder = color and { link = "DropBarIconKindFolder" } or { fg = C.text },
DropBarKindForStatement = color and { link = "DropBarIconKindForStatement" } or { fg = C.text },
DropBarKindFunction = color and { link = "DropBarIconKindFunction" } or { fg = C.text },
DropBarKindIdentifier = color and { link = "DropBarIconKindIdentifier" } or { fg = C.text },
DropBarKindIfStatement = color and { link = "DropBarIconKindIfStatement" } or { fg = C.text },
DropBarKindInterface = color and { link = "DropBarIconKindInterface" } or { fg = C.text },
DropBarKindKeyword = color and { link = "DropBarIconKindKeyword" } or { fg = C.text },
DropBarKindList = color and { link = "DropBarIconKindList" } or { fg = C.text },
DropBarKindMacro = color and { link = "DropBarIconKindMacro" } or { fg = C.text },
DropBarKindMarkdownH1 = color and { link = "DropBarIconKindMarkdownH1" } or { fg = C.text },
DropBarKindMarkdownH2 = color and { link = "DropBarIconKindMarkdownH2" } or { fg = C.text },
DropBarKindMarkdownH3 = color and { link = "DropBarIconKindMarkdownH3" } or { fg = C.text },
DropBarKindMarkdownH4 = color and { link = "DropBarIconKindMarkdownH4" } or { fg = C.text },
DropBarKindMarkdownH5 = color and { link = "DropBarIconKindMarkdownH5" } or { fg = C.text },
DropBarKindMarkdownH6 = color and { link = "DropBarIconKindMarkdownH6" } or { fg = C.text },
DropBarKindMethod = color and { link = "DropBarIconKindMethod" } or { fg = C.text },
DropBarKindModule = color and { link = "DropBarIconKindModule" } or { fg = C.text },
DropBarKindNamespace = color and { link = "DropBarIconKindNamespace" } or { fg = C.text },
DropBarKindNull = color and { link = "DropBarIconKindNull" } or { fg = C.text },
DropBarKindNumber = color and { link = "DropBarIconKindNumber" } or { fg = C.text },
DropBarKindObject = color and { link = "DropBarIconKindObject" } or { fg = C.text },
DropBarKindOperator = color and { link = "DropBarIconKindOperator" } or { fg = C.text },
DropBarKindPackage = color and { link = "DropBarIconKindPackage" } or { fg = C.text },
DropBarKindProperty = color and { link = "DropBarIconKindProperty" } or { fg = C.text },
DropBarKindReference = color and { link = "DropBarIconKindReference" } or { fg = C.text },
DropBarKindRepeat = color and { link = "DropBarIconKindRepeat" } or { fg = C.text },
DropBarKindScope = color and { link = "DropBarIconKindScope" } or { fg = C.text },
DropBarKindSpecifier = color and { link = "DropBarIconKindSpecifier" } or { fg = C.text },
DropBarKindStatement = color and { link = "DropBarIconKindStatement" } or { fg = C.text },
DropBarKindString = color and { link = "DropBarIconKindString" } or { fg = C.text },
DropBarKindStruct = color and { link = "DropBarIconKindStruct" } or { fg = C.text },
DropBarKindSwitchStatement = color and { link = "DropBarIconKindSwitchStatement" } or { fg = C.text },
DropBarKindType = color and { link = "DropBarIconKindType" } or { fg = C.text },
DropBarKindTypeParameter = color and { link = "DropBarIconKindTypeParameter" } or { fg = C.text },
DropBarKindUnit = color and { link = "DropBarIconKindUnit" } or { fg = C.text },
DropBarKindValue = color and { link = "DropBarIconKindValue" } or { fg = C.text },
DropBarKindVariable = color and { link = "DropBarIconKindVariable" } or { fg = C.text },
DropBarKindWhileStatement = color and { link = "DropBarIconKindWhileStatement" } or { fg = C.text },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/fern.lua
================================================
local M = {}
M.url = "https://github.com/lambdalisue/vim-fern"
function M.get()
return {
FernBranchText = { fg = C.blue },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/fidget.lua
================================================
local M = {}
M.url = "https://github.com/j-hui/fidget.nvim"
function M.get()
return {
FidgetTask = {
bg = O.transparent_background and C.none or C.mantle,
fg = C.text,
},
FidgetTitle = { fg = C.blue },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/flash.lua
================================================
local M = {}
M.url = "https://github.com/folke/flash.nvim"
function M.get()
local bg = O.transparent_background and C.none or C.base
return {
FlashBackdrop = { fg = C.overlay0 },
FlashLabel = { fg = C.green, bg = bg, style = { "bold" } },
FlashMatch = { fg = C.lavender, bg = bg },
FlashCurrent = { fg = C.peach, bg = bg },
FlashPrompt = { link = "NormalFloat" },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/fzf.lua
================================================
local M = {}
M.url = "https://github.com/ibhagwan/fzf-lua"
function M.get()
return {
FzfLuaNormal = { link = "NormalFloat" },
FzfLuaBorder = { link = "FloatBorder" },
FzfLuaTitle = { link = "FloatTitle" },
FzfLuaHeaderBind = { fg = C.yellow },
FzfLuaHeaderText = { fg = C.peach },
FzfLuaDirPart = { link = "NonText" },
FzfLuaFzfMatch = { fg = C.blue },
FzfLuaFzfPrompt = { fg = C.blue },
FzfLuaPathColNr = { fg = C.blue },
FzfLuaPathLineNr = { fg = C.green },
FzfLuaBufName = { fg = C.mauve },
FzfLuaBufNr = { fg = C.yellow },
FzfLuaBufFlagCur = { fg = C.peach },
FzfLuaBufFlagAlt = { fg = C.blue },
FzfLuaTabTitle = { fg = C.sky },
FzfLuaTabMarker = { fg = C.yellow },
FzfLuaLiveSym = { fg = C.peach },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/gitgraph.lua
================================================
local M = {}
M.url = "https://github.com/isakbm/gitgraph.nvim"
function M.get()
return {
GitGraphHash = { fg = C.mauve },
GitGraphTimestamp = { fg = C.lavender },
GitGraphAuthor = { fg = C.flamingo },
GitGraphBranchName = { fg = C.teal },
GitGraphBranchTag = { fg = C.pink },
GitGraphBranchMsg = { fg = C.overlay2 },
GitGraphBranch1 = { fg = C.yellow },
GitGraphBranch2 = { fg = C.pink },
GitGraphBranch3 = { fg = C.sky },
GitGraphBranch4 = { fg = C.green },
GitGraphBranch5 = { fg = C.red },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/gitgutter.lua
================================================
local M = {}
M.url = "https://github.com/airblade/vim-gitgutter"
function M.get()
return {
GitGutterAdd = { fg = C.green },
GitGutterChange = { fg = C.yellow },
GitGutterDelete = { fg = C.red },
GitGutterAddLineNr = { fg = C.green },
GitGutterChangeLineNr = { fg = C.yellow },
GitGutterDeleteLineNr = { fg = C.red },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/gitsigns.lua
================================================
local M = {}
M.url = "https://github.com/lewis6991/gitsigns.nvim"
function M.get()
-- (a ~= nil) and a or b: Potential false-negative handling
local transparent = O.transparent_background
if type(O.integrations.gitsigns.transparent) == "boolean" then transparent = O.integrations.gitsigns.transparent end
if transparent then
return {
GitSignsAdd = { fg = C.green }, -- diff mode: Added line |diff.txt|
GitSignsChange = { fg = C.yellow }, -- diff mode: Changed line |diff.txt|
GitSignsDelete = { fg = C.red }, -- diff mode: Deleted line |diff.txt|
GitSignsCurrentLineBlame = { fg = C.surface1 },
GitSignsAddPreview = { fg = C.green, bg = C.none },
GitSignsDeletePreview = { fg = C.red, bg = C.none },
-- for word diff in previews
GitSignsAddInline = { fg = C.base, bg = C.green, style = { "bold" } },
GitSignsDeleteInline = { fg = C.base, bg = C.red, style = { "bold" } },
GitSignsChangeInline = { fg = C.base, bg = C.blue, style = { "bold" } },
GitSignsDeleteVirtLn = { bg = C.none, fg = C.red },
}
else
return {
GitSignsAdd = { fg = C.green }, -- diff mode: Added line |diff.txt|
GitSignsChange = { fg = C.yellow }, -- diff mode: Changed line |diff.txt|
GitSignsDelete = { fg = C.red }, -- diff mode: Deleted line |diff.txt|
GitSignsCurrentLineBlame = { fg = C.surface1 },
GitSignsAddPreview = { link = "DiffAdd" },
GitSignsDeletePreview = { link = "DiffDelete" },
GitSignsAddInline = { bg = U.darken(C.green, 0.36, C.base) },
GitSignsChangeInline = { bg = U.darken(C.blue, 0.14, C.base) },
GitSignsDeleteInline = { bg = U.darken(C.red, 0.36, C.base) },
}
end
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/grug_far.lua
================================================
local M = {}
M.url = "https://github.com/MagicDuck/grug-far.nvim"
function M.get()
return {
GrugFarResultsMatch = { link = "IncSearch" },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/harpoon.lua
================================================
local M = {}
M.url = "https://github.com/ThePrimeagen/harpoon"
function M.get()
return {
HarpoonWindow = { fg = C.text, bg = O.transparent_background and C.none or C.base },
HarpoonBorder = { fg = C.blue },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/headlines.lua
================================================
local M = {}
M.url = "https://github.com/lukas-reineke/headlines.nvim"
function M.get()
return {
Dash = { fg = C.overlay2, style = { "bold" } },
Quote = { link = "@markup.strong" },
CodeBlock = { bg = C.mantle },
Headline = { link = "Headline1" },
Headline1 = { bg = C.surface0, fg = C.red },
Headline2 = { bg = C.surface0, fg = C.peach },
Headline3 = { bg = C.surface0, fg = C.yellow },
Headline4 = { bg = C.surface0, fg = C.green },
Headline5 = { bg = C.surface0, fg = C.sapphire },
Headline6 = { bg = C.surface0, fg = C.lavender },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/hop.lua
================================================
local M = {}
M.url = "https://github.com/hadronized/hop.nvim"
function M.get()
local bg = O.transparent_background and C.none or C.base
return {
HopNextKey = { bg = bg, fg = C.peach, style = { "bold", "underline" } },
HopNextKey1 = { bg = bg, fg = C.blue, style = { "bold" } },
HopNextKey2 = { bg = bg, fg = C.teal, style = { "bold", "italic" } },
HopUnmatched = { bg = bg, fg = C.overlay0 },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/illuminate.lua
================================================
local M = {}
M.url = "https://github.com/RRethy/vim-illuminate"
function M.get()
return {
IlluminatedWordText = { bg = U.darken(C.surface1, 0.7, C.base) },
IlluminatedWordRead = { bg = U.darken(C.surface1, 0.7, C.base) },
IlluminatedWordWrite = {
bg = U.darken(C.surface1, 0.7, C.base),
style = O.integrations.illuminate.lsp and { "standout" } or {},
},
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/indent_blankline.lua
================================================
local M = {}
M.url = "https://github.com/lukas-reineke/indent-blankline.nvim"
function M.get()
local scope_color = O.integrations.indent_blankline.scope_color
local hi = {
IblIndent = { fg = C.surface0 },
IblScope = { fg = C[scope_color] or C.text },
}
if O.integrations.indent_blankline.colored_indent_levels then
hi["RainbowRed"] = { blend = 0, fg = C.red }
hi["RainbowYellow"] = { blend = 0, fg = C.yellow }
hi["RainbowBlue"] = { blend = 0, fg = C.blue }
hi["RainbowOrange"] = { blend = 0, fg = C.peach }
hi["RainbowGreen"] = { blend = 0, fg = C.green }
hi["RainbowViolet"] = { blend = 0, fg = C.mauve }
hi["RainbowCyan"] = { blend = 0, fg = C.teal }
end
return hi
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/leap.lua
================================================
local M = {}
M.url = "https://github.com/ggandor/leap.nvim"
function M.get()
return {
LeapMatch = {
fg = O.transparent_background and C.pink or U.vary_color({ latte = "#222222" }, U.brighten(C.green, 0.3)),
style = { "underline", "nocombine", O.transparent_background and "bold" or nil },
},
LeapLabel = {
fg = O.transparent_background and C.green or U.vary_color({ latte = "#222222" }, C.base),
bg = O.transparent_background and C.none
or U.vary_color({ latte = U.brighten(C.red, 0.4) }, U.brighten(C.green, 0.3)),
style = { "nocombine", O.transparent_background and "bold" or nil },
},
LeapBackdrop = { fg = O.transparent_background and C.overlay0 or C.none },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/lightspeed.lua
================================================
local M = {}
M.url = "https://github.com/ggandor/lightspeed.nvim"
function M.get()
return {
LightspeedLabel = { fg = C.red, style = { "bold", "underline" } },
LightspeedLabelDistant = {
fg = U.vary_color({ latte = C.blue }, C.sky),
style = { "bold", "underline" },
},
LightspeedShortcut = {
fg = "#ffffff",
bg = U.increase_saturation(C.red, 0.7),
style = { "bold" },
},
LightspeedMaskedChar = {
fg = U.vary_color({ latte = U.lighten(C.pink, 0.7, C.text) }, U.darken(C.pink, 0.7, C.base)),
},
LightspeedUnlabeledMatch = { fg = C.text, style = { "bold" } },
LightspeedGreyWash = { link = "Comment" },
LightspeedUniqueChar = { link = "LightspeedUnlabeledMatch" },
LightspeedOneCharMatch = { link = "LightspeedShortcut" },
LightspeedPendingOpArea = { link = "IncSearch" },
LightspeedCursor = { link = "Cursor" },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/lir.lua
================================================
local M = {}
M.url = "https://github.com/tamago324/lir.nvim"
function M.get()
return vim.tbl_deep_extend("force", {}, {
LirFloatNormal = { fg = C.text, bg = O.transparent_background and C.none or C.mantle },
LirFloatBorder = {
fg = O.transparent_background and C.surface1 or C.base,
bg = O.transparent_background and C.none or C.base,
},
LirFloatCursorLine = { link = "CursorLine" },
LirDir = { fg = C.blue },
LirSymLink = { fg = C.pink },
LirEmptyDirText = { fg = C.blue },
LirFloatCurdirWindowNormal = { fg = C.text },
LirFloatCurdirWindowDirName = { fg = C.lavender, style = { "bold" } },
}, ((O.integrations.lir and O.integrations.lir.git_status) and {
LirGitStatusBracket = { fg = C.overlay0 },
LirGitStatusIndex = { fg = C.blue },
LirGitStatusWorktree = { fg = C.yellow },
LirGitStatusUnmerged = { fg = C.red },
LirGitStatusUntracked = { fg = C.subtext0 },
LirGitStatusIgnored = { fg = C.subtext0 },
}) or {})
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/lsp_saga.lua
================================================
local M = {}
M.url = "https://github.com/nvimdev/lspsaga.nvim"
function M.get()
return {
SagaTitle = { fg = C.teal, style = { "bold" } },
SagaBorder = { fg = C.blue, bg = C.none },
SagaNormal = { bg = O.transparent_background and C.none or C.base },
SagaToggle = { fg = C.green },
SagaCount = { fg = C.overlay1 },
SagaBeacon = { bg = U.darken(C.surface0, 0.8, C.crust) },
SagaVirtLine = { fg = C.surface2 },
SagaSpinner = { fg = C.mauve, style = { "bold" } },
SagaSpinnerTitle = { fg = C.mauve, style = { "bold" } },
SagaText = { fg = C.text },
SagaSelect = { fg = C.blue, style = { "bold" } },
SagaSearch = { link = "Search" },
SagaFinderFname = { fg = C.subtext0, style = { "bold" } },
ActionFix = { fg = C.pink },
ActionPreviewTitle = { fg = C.mauve, bg = O.transparent_background and C.none or C.base },
CodeActionText = { fg = C.green },
CodeActionNumber = { fg = C.pink },
SagaImpIcon = { fg = C.pink },
SagaLightBulb = { link = "DiagnosticSignHint" },
RenameNormal = { fg = C.text },
RenameMatch = { link = "Search" },
DiagnosticText = { fg = C.text },
SagaWinbarSep = { fg = C.flamingo },
SagaDetail = { link = "Comment" },
SagaFileName = { fg = C.overlay2, style = { "bold" } },
SagaFolderName = { fg = C.overlay2, style = { "bold" } },
SagaInCurrent = { fg = C.peach },
-- Lspkind icons support
LspKindClass = { fg = C.yellow },
LspKindConstant = { fg = C.peach },
LspKindConstructor = { fg = C.sapphire },
LspKindEnum = { fg = C.yellow },
LspKindEnumMember = { fg = C.teal },
LspKindEvent = { fg = C.yellow },
LspKindField = { fg = C.teal },
LspKindFile = { fg = C.rosewater },
LspKindFunction = { fg = C.blue },
LspKindInterface = { fg = C.yellow },
LspKindKey = { fg = C.red },
LspKindMethod = { fg = C.blue },
LspKindModule = { fg = C.blue },
LspKindNamespace = { fg = C.blue },
LspKindNumber = { fg = C.peach },
LspKindOperator = { fg = C.sky },
LspKindPackage = { fg = C.blue },
LspKindProperty = { fg = C.teal },
LspKindStruct = { fg = C.yellow },
LspKindTypeParameter = { fg = C.blue },
LspKindVariable = { fg = C.peach },
LspKindArray = { fg = C.peach },
LspKindBoolean = { fg = C.peach },
LspKindNull = { fg = C.yellow },
LspKindObject = { fg = C.yellow },
LspKindString = { fg = C.green },
-- ccls-specific icons.
LspKindTypeAlias = { fg = C.green },
LspKindParameter = { fg = C.blue },
LspKindStaticMethod = { fg = C.peach },
-- Microsoft-specific icons.
LspKindText = { fg = C.green },
LspKindSnippet = { fg = C.mauve },
LspKindFolder = { fg = C.blue },
LspKindUnit = { fg = C.green },
LspKindValue = { fg = C.peach },
}
end
function M.custom_kind()
return {
File = { " ", "LspKindFile" },
Module = { " ", "LspKindModule" },
Namespace = { " ", "LspKindNamespace" },
Package = { " ", "LspKindPackage" },
Class = { " ", "LspKindClass" },
Method = { " ", "LspKindMethod" },
Property = { " ", "LspKindProperty" },
Field = { " ", "LspKindField" },
Constructor = { " ", "LspKindConstructor" },
Enum = { "", "LspKindEnum" },
Interface = { " ", "LspKindInterface" },
Function = { " ", "LspKindFunction" },
Variable = { " ", "LspKindVariable" },
Constant = { " ", "LspKindConstant" },
String = { " ", "LspKindString" },
Number = { " ", "LspKindNumber" },
Boolean = { " ", "LspKindBoolean" },
Array = { " ", "LspKindArray" },
Object = { " ", "LspKindObject" },
Key = { " ", "LspKindKey" },
Null = { " ", "LspKindNull" },
EnumMember = { " ", "LspKindEnumMember" },
Struct = { " ", "LspKindStruct" },
Event = { " ", "LspKindEvent" },
Operator = { " ", "LspKindOperator" },
TypeParameter = { " ", "LspKindTypeParameter" },
TypeAlias = { " ", "LspKindTypeAlias" },
Parameter = { " ", "LspKindParameter" },
StaticMethod = { " ", "LspKindStaticMethod" },
Macro = { " ", "LspKindMacro" },
Text = { " ", "LspKindText" },
Snippet = { " ", "LspKindSnippet" },
Folder = { " ", "LspKindFolder" },
Unit = { " ", "LspKindUnit" },
Value = { " ", "LspKindValue" },
}
end
-- Backwards compatibility
function M.custom_colors()
local C = require("catppuccin.palettes").get_palette()
return {
normal_bg = C.base,
title_bg = C.green,
red = C.red,
magenta = C.maroon,
orange = C.peach,
yellow = C.yellow,
green = C.green,
cyan = C.sky,
blue = C.blue,
purple = C.mauve,
white = C.text,
black = C.crust,
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/lsp_trouble.lua
================================================
local M = {}
M.url = "https://github.com/folke/trouble.nvim"
function M.get()
return {
TroubleText = { fg = C.green },
TroubleCount = { fg = C.pink, bg = O.transparent_background and C.none or C.surface1 },
TroubleNormal = { fg = C.text, bg = O.transparent_background and C.none or C.crust },
TroubleNormalNC = { link = "TroubleNormal" },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/markview.lua
================================================
local M = {}
M.url = "https://github.com/OXY2DEV/markview.nvim"
-- markview.nvim highlight groups:
-- https://github.com/OXY2DEV/markview.nvim#-highlight-groups
function M.get()
local darkening_percentage = O.transparent_background and U.vary_color({ latte = 0.15 }, 0.28) or 0.095
local blockquote_bg = not O.transparent_background and C.mantle or nil
local groups = {
MarkviewBlockQuoteDefault = { fg = C.overlay2, bg = C.mantle },
MarkviewBlockQuoteError = { fg = C.red, bg = U.darken(C.red, darkening_percentage, blockquote_bg) },
MarkviewBlockQuoteNote = { fg = C.blue, bg = U.darken(C.blue, darkening_percentage, blockquote_bg) },
MarkviewBlockQuoteOk = { fg = C.green, bg = U.darken(C.green, darkening_percentage, blockquote_bg) },
MarkviewBlockQuoteSpecial = { fg = C.mauve, bg = U.darken(C.pink, darkening_percentage, blockquote_bg) },
MarkviewBlockQuoteWarn = { fg = C.yellow, bg = U.darken(C.yellow, darkening_percentage, blockquote_bg) },
MarkviewHyperlink = { link = "@markup.link.url" },
MarkviewCode = { bg = C.mantle },
MarkviewCodeFg = { fg = C.mantle },
MarkviewCodeInfo = { fg = C.overlay2, bg = C.mantle },
MarkviewInlineCode = { bg = C.surface0 },
MarkviewTableHeader = { fg = C.blue },
}
local rainbow = {
[0] = C.overlay2,
[7] = C.mauve,
}
local syntax = require("catppuccin.groups.syntax").get()
for i = 0, 7 do
local color = rainbow[i] or syntax["rainbow" .. i].fg
local bg = U.darken(color, darkening_percentage, C.base)
groups["MarkviewPalette" .. i] = { fg = color, bg = bg }
groups["MarkviewPalette" .. i .. "Fg"] = { fg = color }
groups["MarkviewPalette" .. i .. "Bg"] = { bg = bg }
groups["MarkviewIcon" .. i] = { fg = color, bg = C.mantle }
end
return groups
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/mason.lua
================================================
local M = {}
M.url = "https://github.com/mason-org/mason.nvim"
function M.get()
local bg = O.transparent_background and C.none or C.lavender
local fg = O.transparent_background and C.lavender or C.base
local secondary_bg = O.transparent_background and C.none or C.blue
local secondary_fg = O.transparent_background and C.blue or C.base
local muted_bg = O.transparent_background and C.none or C.overlay0
local muted_fg = O.transparent_background and C.overlay0 or C.base
return {
MasonHeader = { fg = fg, bg = bg, style = { "bold" } },
MasonHeaderSecondary = { fg = secondary_fg, bg = secondary_bg, style = { "bold" } },
MasonHighlight = { fg = C.green },
MasonHighlightBlock = {
bg = O.transparent_background and C.none or C.green,
fg = O.transparent_background and C.green or C.base,
},
MasonHighlightBlockBold = { bg = secondary_bg, fg = secondary_fg, bold = true },
MasonHighlightSecondary = { fg = C.mauve },
MasonHighlightBlockSecondary = { fg = secondary_fg, bg = secondary_bg },
MasonHighlightBlockBoldSecondary = { fg = fg, bg = bg, bold = true },
MasonMuted = { fg = C.overlay0 },
MasonMutedBlock = { bg = muted_bg, fg = muted_fg },
MasonMutedBlockBold = { bg = C.yellow, fg = C.base, bold = true },
MasonError = { fg = C.red },
MasonHeading = { fg = C.lavender, bold = true },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/mini.lua
================================================
local M = {}
M.url = "https://github.com/echasnovski/mini.nvim"
function M.get()
local transparent_background = require("catppuccin").options.transparent_background
local bg_highlight = transparent_background and "NONE" or C.base
local inactive_bg = transparent_background and "NONE" or C.mantle
local indentscope_color = O.integrations.mini.indentscope_color
return {
MiniAnimateCursor = { style = { "reverse", "nocombine" } },
MiniAnimateNormalFloat = { link = "NormalFloat" },
MiniClueBorder = { link = "FloatBorder" },
MiniClueDescGroup = { link = "DiagnosticFloatingWarn" },
MiniClueDescSingle = { link = "NormalFloat" },
MiniClueNextKey = { link = "DiagnosticFloatingHint" },
MiniClueNextKeyWithPostkeys = { link = "DiagnosticFloatingError" },
MiniClueSeparator = { link = "DiagnosticFloatingInfo" },
MiniClueTitle = { link = "FloatTitle" },
MiniCompletionActiveParameter = { style = { "underline" } },
MiniCursorword = { style = { "underline" } },
MiniCursorwordCurrent = { style = { "underline" } },
MiniDepsChangeAdded = { link = "diffAdded" },
MiniDepsChangeRemoved = { link = "diffRemoved" },
MiniDepsHint = { link = "DiagnosticHint" },
MiniDepsInfo = { link = "DiagnosticInfo" },
MiniDepsMsgBreaking = { link = "DiagnosticWarn" },
MiniDepsPlaceholder = { link = "Comment" },
MiniDepsTitle = { link = "Title" },
MiniDepsTitleError = { bg = C.red, fg = C.base },
MiniDepsTitleSame = { link = "DiffText" },
MiniDepsTitleUpdate = { bg = C.green, fg = C.base },
MiniDiffSignAdd = { fg = C.green },
MiniDiffSignChange = { fg = C.yellow },
MiniDiffSignDelete = { fg = C.red },
MiniDiffOverAdd = { link = "DiffAdd" },
MiniDiffOverChange = { link = "DiffText" },
MiniDiffOverContext = { link = "DiffChange" },
MiniDiffOverDelete = { link = "DiffDelete" },
MiniFilesBorder = { link = "FloatBorder" },
MiniFilesBorderModified = { link = "DiagnosticFloatingWarn" },
MiniFilesCursorLine = { link = "CursorLine" },
MiniFilesDirectory = { link = "Directory" },
MiniFilesFile = { fg = C.text },
MiniFilesNormal = { link = "NormalFloat" },
MiniFilesTitle = { link = "FloatTitle" },
MiniFilesTitleFocused = O.float.solid and {
fg = C.crust,
bg = C.mauve,
} or {
fg = C.subtext0,
bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle,
style = { "bold" },
},
MiniHipatternsFixme = { fg = C.base, bg = C.red, style = { "bold" } },
MiniHipatternsHack = { fg = C.base, bg = C.yellow, style = { "bold" } },
MiniHipatternsNote = { fg = C.base, bg = C.sky, style = { "bold" } },
MiniHipatternsTodo = { fg = C.base, bg = C.teal, style = { "bold" } },
MiniIconsAzure = { fg = C.sapphire },
MiniIconsBlue = { fg = C.blue },
MiniIconsCyan = { fg = C.teal },
MiniIconsGreen = { fg = C.green },
MiniIconsGrey = { fg = C.text },
MiniIconsOrange = { fg = C.peach },
MiniIconsPurple = { fg = C.mauve },
MiniIconsRed = { fg = C.red },
MiniIconsYellow = { fg = C.yellow },
MiniIndentscopeSymbol = { fg = C[indentscope_color] or C.overlay2 },
MiniJump = { fg = C.overlay2, bg = C.pink },
MiniJump2dDim = { fg = C.overlay0 },
MiniJump2dSpot = { bg = C.base, fg = C.peach, style = { "bold", "underline" } },
MiniJump2dSpotAhead = { bg = C.dim, fg = C.teal },
MiniJump2dSpotUnique = { bg = C.base, fg = C.sky, style = { "bold" } },
MiniMapNormal = { link = "NormalFloat" },
MiniMapSymbolCount = { link = "Special" },
MiniMapSymbolLine = { link = "Title" },
MiniMapSymbolView = { link = "Delimiter" },
MiniNotifyBorder = { link = "FloatBorder" },
MiniNotifyNormal = { link = "NormalFloat" },
MiniNotifyTitle = { link = "FloatTitle" },
MiniOperatorsExchangeFrom = { link = "IncSearch" },
MiniPickBorder = { link = "FloatBorder" },
MiniPickBorderBusy = { link = "DiagnosticFloatingWarn" },
MiniPickBorderText = O.float.solid and {
fg = C.crust,
bg = C.mauve,
} or { fg = C.mauve, bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle },
MiniPickIconDirectory = { link = "Directory" },
MiniPickIconFile = { link = "MiniPickNormal" },
MiniPickHeader = { link = "DiagnosticFloatingHint" },
MiniPickMatchCurrent = {
fg = C.flamingo,
bg = C.surface0,
style = { "bold" },
},
MiniPickMatchMarked = { link = "Visual" },
MiniPickMatchRanges = { link = "DiagnosticFloatingHint" },
MiniPickNormal = { link = "NormalFloat" },
MiniPickPreviewLine = { link = "CursorLine" },
MiniPickPreviewRegion = { link = "IncSearch" },
MiniPickPrompt = { fg = C.text, bg = O.float.transparent and C.none or C.mantle },
MiniPickPromptCaret = {
fg = C.flamingo,
bg = O.float.transparent and C.none or C.mantle,
},
MiniPickPromptPrefix = {
fg = C.flamingo,
bg = O.float.transparent and C.none or C.mantle,
},
MiniStarterCurrent = {},
MiniStarterFooter = { fg = C.yellow, style = { "italic" } },
MiniStarterHeader = { fg = C.blue },
MiniStarterInactive = { fg = C.surface2, style = O.styles.comments },
MiniStarterItem = { fg = C.text },
MiniStarterItemBullet = { fg = C.blue },
MiniStarterItemPrefix = { fg = C.pink },
MiniStarterSection = { fg = C.flamingo },
MiniStarterQuery = { fg = C.green },
MiniStatuslineDevinfo = { fg = C.subtext1, bg = C.surface1 },
MiniStatuslineFileinfo = { fg = C.subtext1, bg = C.surface1 },
MiniStatuslineFilename = { fg = C.text, bg = C.mantle },
MiniStatuslineInactive = { fg = C.blue, bg = C.mantle },
MiniStatuslineModeCommand = { fg = C.base, bg = C.peach, style = { "bold" } },
MiniStatuslineModeInsert = { fg = C.base, bg = C.green, style = { "bold" } },
MiniStatuslineModeNormal = { fg = C.mantle, bg = C.blue, style = { "bold" } },
MiniStatuslineModeOther = { fg = C.base, bg = C.teal, style = { "bold" } },
MiniStatuslineModeReplace = { fg = C.base, bg = C.red, style = { "bold" } },
MiniStatuslineModeVisual = { fg = C.base, bg = C.mauve, style = { "bold" } },
MiniSurround = { bg = C.pink, fg = C.surface1 },
MiniTablineCurrent = { fg = C.text, bg = C.base, sp = C.red, style = { "bold", "italic", "underline" } },
MiniTablineFill = { bg = bg_highlight },
MiniTablineHidden = { fg = C.text, bg = inactive_bg },
MiniTablineModifiedCurrent = { fg = C.red, bg = C.none, style = { "bold", "italic" } },
MiniTablineModifiedHidden = { fg = C.red, bg = C.none },
MiniTablineModifiedVisible = { fg = C.red, bg = C.none },
MiniTablineTabpagesection = { fg = C.surface1, bg = C.base },
MiniTablineVisible = { bg = C.none },
MiniTestEmphasis = { style = { "bold" } },
MiniTestFail = { fg = C.red, style = { "bold" } },
MiniTestPass = { fg = C.green, style = { "bold" } },
MiniTrailspace = { bg = C.red },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/navic.lua
================================================
local M = {}
M.url = "https://github.com/SmiteshP/nvim-navic"
function M.get()
local background = O.integrations.navic.custom_bg and O.integrations.navic.custom_bg or C.none
if O.integrations.navic.custom_bg == "lualine" then background = C.mantle end
return {
NavicIconsFile = { fg = C.blue, bg = background },
NavicIconsModule = { fg = C.blue, bg = background },
NavicIconsNamespace = { fg = C.blue, bg = background },
NavicIconsPackage = { fg = C.blue, bg = background },
NavicIconsClass = { fg = C.yellow, bg = background },
NavicIconsMethod = { fg = C.blue, bg = background },
NavicIconsProperty = { fg = C.green, bg = background },
NavicIconsField = { fg = C.green, bg = background },
NavicIconsConstructor = { fg = C.blue, bg = background },
NavicIconsEnum = { fg = C.green, bg = background },
NavicIconsInterface = { fg = C.yellow, bg = background },
NavicIconsFunction = { fg = C.blue, bg = background },
NavicIconsVariable = { fg = C.flamingo, bg = background },
NavicIconsConstant = { fg = C.peach, bg = background },
NavicIconsString = { fg = C.green, style = O.styles.strings, bg = background },
NavicIconsNumber = { fg = C.peach, bg = background },
NavicIconsBoolean = { fg = C.peach, bg = background },
NavicIconsArray = { fg = C.peach, bg = background },
NavicIconsObject = { fg = C.peach, bg = background },
NavicIconsKey = { fg = C.pink, style = O.styles.keywords, bg = background },
NavicIconsNull = { fg = C.peach, bg = background },
NavicIconsEnumMember = { fg = C.red, bg = background },
NavicIconsStruct = { fg = C.blue, bg = background },
NavicIconsEvent = { fg = C.blue, bg = background },
NavicIconsOperator = { fg = C.sky, bg = background },
NavicIconsTypeParameter = { fg = C.blue, bg = background },
NavicText = { fg = C.sapphire, bg = background },
NavicSeparator = { fg = C.text, bg = background },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/neogit.lua
================================================
local M = {}
M.url = "https://github.com/NeogitOrg/neogit"
function M.get()
return {
NeogitBranch = {
fg = C.peach,
style = { "bold" },
},
NeogitRemote = {
fg = C.green,
style = { "bold" },
},
NeogitUnmergedInto = {
link = "Function",
},
NeogitUnpulledFrom = {
link = "Function",
},
NeogitObjectId = {
link = "Comment",
},
NeogitStash = {
link = "Comment",
},
NeogitRebaseDone = {
link = "Comment",
},
NeogitHunkHeader = {
bg = U.darken(C.blue, 0.095, C.base),
fg = U.darken(C.blue, 0.5, C.base),
},
NeogitHunkHeaderHighlight = {
bg = U.darken(C.blue, 0.215, C.base),
fg = C.blue,
},
NeogitDiffContextHighlight = {
bg = C.surface0,
},
NeogitDiffDeleteHighlight = {
bg = U.darken(C.red, 0.345, C.base),
fg = U.lighten(C.red, 0.850, C.text),
},
NeogitDiffAddHighlight = {
bg = U.darken(C.green, 0.345, C.base),
fg = U.lighten(C.green, 0.850, C.text),
},
NeogitDiffDelete = {
bg = U.darken(C.red, 0.095, C.base),
fg = U.darken(C.red, 0.800, C.base),
},
NeogitDiffAdd = {
bg = U.darken(C.green, 0.095, C.base),
fg = U.darken(C.green, 0.800, C.base),
},
NeogitCommitViewHeader = {
bg = U.darken(C.blue, 0.300, C.base),
fg = U.lighten(C.blue, 0.800, C.text),
},
NeogitChangeModified = {
fg = C.blue,
style = { "bold" },
},
NeogitChangeDeleted = {
fg = C.red,
style = { "bold" },
},
NeogitChangeAdded = {
fg = C.green,
style = { "bold" },
},
NeogitChangeRenamed = {
fg = C.mauve,
style = { "bold" },
},
NeogitChangeUpdated = {
fg = C.peach,
style = { "bold" },
},
NeogitChangeCopied = {
fg = C.pink,
style = { "bold" },
},
NeogitChangeBothModified = {
fg = C.yellow,
style = { "bold" },
},
NeogitChangeNewFile = {
fg = C.green,
style = { "bold" },
},
NeogitUntrackedfiles = {
fg = C.mauve,
style = { "bold" },
},
NeogitUnstagedchanges = {
fg = C.mauve,
style = { "bold" },
},
NeogitUnmergedchanges = {
fg = C.mauve,
style = { "bold" },
},
NeogitUnpulledchanges = {
fg = C.mauve,
style = { "bold" },
},
NeogitRecentcommits = {
fg = C.mauve,
style = { "bold" },
},
NeogitStagedchanges = {
fg = C.mauve,
style = { "bold" },
},
NeogitStashes = {
fg = C.mauve,
style = { "bold" },
},
NeogitRebasing = {
fg = C.mauve,
style = { "bold" },
},
NeogitNotificationInfo = {
fg = C.blue,
},
NeogitNotificationWarning = {
fg = C.yellow,
},
NeogitNotificationError = {
fg = C.red,
},
NeogitGraphRed = {
fg = C.red,
},
NeogitGraphWhite = {
fg = C.base,
},
NeogitGraphYellow = {
fg = C.yellow,
},
NeogitGraphGreen = {
fg = C.green,
},
NeogitGraphCyan = {
fg = C.blue,
},
NeogitGraphBlue = {
fg = C.blue,
},
NeogitGraphPurple = {
fg = C.lavender,
},
NeogitGraphGray = {
fg = C.subtext1,
},
NeogitGraphOrange = {
fg = C.peach,
},
NeogitGraphBoldRed = {
fg = C.red,
style = { "bold" },
},
NeogitGraphBoldWhite = {
fg = C.white,
style = { "bold" },
},
NeogitGraphBoldYellow = {
fg = C.yellow,
style = { "bold" },
},
NeogitGraphBoldGreen = {
fg = C.green,
style = { "bold" },
},
NeogitGraphBoldCyan = {
fg = C.blue,
style = { "bold" },
},
NeogitGraphBoldBlue = {
fg = C.blue,
style = { "bold" },
},
NeogitGraphBoldPurple = {
fg = C.lavender,
style = { "bold" },
},
NeogitGraphBoldGray = {
fg = C.subtext1,
style = { "bold" },
},
NeogitDiffContext = {
bg = C.base,
},
NeogitPopupBold = {
style = { "bold" },
},
NeogitPopupSwitchKey = {
fg = C.lavender,
},
NeogitPopupOptionKey = {
fg = C.lavender,
},
NeogitPopupConfigKey = {
fg = C.lavender,
},
NeogitPopupActionKey = {
fg = C.lavender,
},
NeogitFilePath = {
fg = C.blue,
style = { "italic" },
},
NeogitDiffHeader = {
bg = C.base,
fg = C.blue,
style = { "bold" },
},
NeogitDiffHeaderHighlight = {
bg = C.base,
fg = C.peach,
style = { "bold" },
},
NeogitUnpushedTo = {
fg = C.lavender,
style = { "bold" },
},
NeogitFold = {
fg = C.none,
bg = C.none,
},
NeogitSectionHeader = {
fg = C.mauve,
style = { "bold" },
},
NeogitTagName = {
fg = C.yellow,
},
NeogitTagDistance = {
fg = C.blue,
},
NeogitWinSeparator = {
link = "WinSeparator",
},
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/neotest.lua
================================================
local M = {}
M.url = "https://github.com/nvim-neotest/neotest"
function M.get()
return {
NeotestPassed = { fg = C.green },
NeotestFailed = { fg = C.red },
NeotestRunning = { fg = C.yellow },
NeotestSkipped = { fg = C.blue },
NeotestTest = { fg = C.text },
NeotestNamespace = { fg = C.mauve },
NeotestFocused = { style = { "bold", "underline" } },
NeotestFile = { fg = C.blue },
NeotestDir = { fg = C.blue },
NeotestIndent = { fg = C.overlay1 },
NeotestExpandMarker = { fg = C.overlay1 },
NeotestAdapterName = { fg = C.maroon },
NeotestWinSelect = { fg = C.blue, style = { "bold" } },
NeotestMarked = { fg = C.peach, style = { "bold" } },
NeotestTarget = { fg = C.red },
NeotestUnknown = { fg = C.text },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/neotree.lua
================================================
local M = {}
M.url = "https://github.com/nvim-neo-tree/neo-tree.nvim"
function M.get()
local active_bg = O.transparent_background and C.none or C.mantle
local inactive_bg = O.transparent_background and C.none or C.base
return {
NeoTreeDirectoryName = { fg = C.blue },
NeoTreeDirectoryIcon = { fg = C.blue },
NeoTreeNormal = { fg = C.text, bg = active_bg },
NeoTreeNormalNC = { fg = C.text, bg = active_bg },
NeoTreeExpander = { fg = C.overlay0 },
NeoTreeIndentMarker = { fg = C.overlay0 },
NeoTreeRootName = { fg = C.blue, style = { "bold" } },
NeoTreeSymbolicLinkTarget = { fg = C.pink },
NeoTreeModified = { fg = C.peach },
NeoTreeGitAdded = { fg = C.green },
NeoTreeGitConflict = { fg = C.red },
NeoTreeGitDeleted = { fg = C.red },
NeoTreeGitIgnored = { fg = C.overlay0 },
NeoTreeGitModified = { fg = C.yellow },
NeoTreeGitUnstaged = { fg = C.red },
NeoTreeGitUntracked = { fg = C.mauve },
NeoTreeGitStaged = { fg = C.green },
NeoTreeFloatBorder = { link = "FloatBorder" },
NeoTreeFloatTitle = { link = "FloatTitle" },
NeoTreeTitleBar = { fg = C.mantle, bg = C.blue },
NeoTreeFileNameOpened = { fg = C.pink },
NeoTreeDimText = { fg = C.overlay1 },
NeoTreeFilterTerm = { fg = C.green, style = { "bold" } },
NeoTreeTabActive = { bg = active_bg, fg = C.lavender, style = { "bold" } },
NeoTreeTabInactive = { bg = inactive_bg, fg = C.overlay0 },
NeoTreeTabSeparatorActive = { fg = active_bg, bg = active_bg },
NeoTreeTabSeparatorInactive = { fg = inactive_bg, bg = inactive_bg },
NeoTreeVertSplit = { fg = C.base, bg = inactive_bg },
NeoTreeWinSeparator = {
fg = O.transparent_background and C.surface1 or C.base,
bg = O.transparent_background and C.none or C.base,
},
NeoTreeStatusLineNC = { fg = C.mantle, bg = C.mantle },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/noice.lua
================================================
local M = {}
M.url = "https://github.com/folke/noice.nvim"
local virtual_text = O.lsp_styles.virtual_text
function M.get()
return { -- Personally the default integration is already pretty good
NoiceCmdline = { fg = C.text },
NoiceCmdlineIcon = { fg = C.sky, style = virtual_text.information },
NoiceCmdlineIconSearch = { fg = C.yellow },
NoiceCmdlinePopupBorder = { fg = C.lavender },
NoiceCmdlinePopupBorderSearch = { fg = C.yellow },
NoiceConfirmBorder = { fg = C.blue },
NoiceMini = { fg = C.subtext0, blend = 0 },
NoiceFormatProgressDone = {
bg = O.transparent_background and C.none or U.darken(C.sky, 0.30, C.base),
fg = C.subtext0,
},
NoiceFormatProgressTodo = {
bg = O.transparent_background and C.none
or U.vary_color({ latte = U.lighten(C.mantle, 0.70, C.base) }, U.darken(C.surface0, 0.64, C.base)),
fg = C.subtext0,
},
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/notifier.lua
================================================
local M = {}
M.url = "https://github.com/vigoux/notifier.nvim"
function M.get()
return {
NotifierIcon = { fg = C.mauve },
NotifierContent = { fg = C.overlay2, blend = 0, style = { "italic" } },
NotifierContentDim = { fg = C.overlay1, blend = 0, style = { "italic" } },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/notify.lua
================================================
local M = {}
M.url = "https://github.com/rcarriga/nvim-notify"
function M.get()
return {
NotifyBackground = { bg = (O.transparent_background and vim.o.winblend == 0) and "#000000" or C.mantle },
NotifyERRORBorder = { fg = C.red },
NotifyERRORIcon = { fg = C.red },
NotifyERRORTitle = { fg = C.red, style = { "italic" } },
NotifyWARNBorder = { fg = C.yellow },
NotifyWARNIcon = { fg = C.yellow },
NotifyWARNTitle = { fg = C.yellow, style = { "italic" } },
NotifyINFOBorder = { fg = C.blue },
NotifyINFOIcon = { fg = C.blue },
NotifyINFOTitle = { fg = C.blue, style = { "italic" } },
NotifyDEBUGBorder = { fg = C.peach },
NotifyDEBUGIcon = { fg = C.peach },
NotifyDEBUGTitle = { fg = C.peach, style = { "italic" } },
NotifyTRACEBorder = { fg = C.rosewater },
NotifyTRACEIcon = { fg = C.rosewater },
NotifyTRACETitle = { fg = C.rosewater, style = { "italic" } },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/nvim_surround.lua
================================================
local M = {}
M.url = "https://github.com/kylechui/nvim-surround"
function M.get()
return {
NvimSurroundHighlight = { sp = C.peach, style = { "underline" } },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/nvimtree.lua
================================================
local M = {}
M.url = "https://github.com/nvim-tree/nvim-tree.lua"
function M.get()
return {
NvimTreeFolderName = { fg = C.blue },
NvimTreeFolderIcon = { fg = C.blue },
NvimTreeNormal = { fg = C.text, bg = O.transparent_background and C.none or C.mantle },
NvimTreeOpenedFolderName = { fg = C.blue },
NvimTreeEmptyFolderName = { fg = C.blue },
NvimTreeIndentMarker = { fg = C.overlay0 },
NvimTreeWinSeparator = {
fg = O.transparent_background and C.surface1 or C.base,
bg = O.transparent_background and C.none or C.base,
},
NvimTreeRootFolder = { fg = C.lavender, style = { "bold" } },
NvimTreeSymlink = { fg = C.pink },
NvimTreeStatuslineNc = { fg = C.mantle, bg = C.mantle },
NvimTreeGitDirty = { fg = C.yellow },
NvimTreeGitNew = { fg = C.blue },
NvimTreeGitDeleted = { fg = C.red },
NvimTreeSpecialFile = { fg = C.flamingo },
NvimTreeImageFile = { fg = C.text },
NvimTreeOpenedFile = { fg = C.pink },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/octo.lua
================================================
local M = {}
M.url = "https://github.com/pwntester/octo.nvim"
function M.get()
return {
-- colors
OctoGrey = { fg = C.base },
OctoBlue = { fg = C.blue },
OctoGreen = { fg = C.green },
OctoRed = { fg = C.red },
OctoPurple = { fg = C.mauve },
OctoYellow = { fg = C.yellow },
-- highlight groups
OctoDirty = { link = "ErrorMsg" },
OctoIssueTitle = { link = "PreProc" },
OctoIssueId = { link = "Question" },
OctoEmpty = { link = "Comment" },
OctoFloat = { link = "NormalNC" },
OctoDate = { link = "Comment" },
OctoSymbol = { link = "Comment" },
OctoTimelineItemHeading = { link = "Comment" },
OctoDetailsLabel = { link = "Title" },
OctoMissingDetails = { link = "Comment" },
OctoDetailsValue = { link = "Identifier" },
OctoDiffHunkPosition = { link = "NormalFloat" },
OctoCommentLine = { link = "TabLineSel" },
OctoViewer = { fg = C.base, bg = C.blue },
OctoBubble = { fg = C.text, bg = C.base },
OctoBubbleGrey = { fg = C.text, bg = C.base },
OctoBubbleDelimiterGrey = { fg = C.base },
OctoBubbleGreen = { fg = C.base, bg = C.green },
OctoBubbleDelimiterGreen = { fg = C.green },
OctoBubbleBlue = { fg = C.base, bg = C.sky },
OctoBubbleDelimiterBlue = { fg = C.sky },
OctoBubbleYellow = { fg = C.base, bg = C.yellow },
OctoBubbleDelimiterYellow = { fg = C.yellow },
OctoBubbleRed = { fg = C.base, bg = C.red },
OctoBubbleDelimiterRed = { fg = C.red },
OctoBubblePurple = { fg = C.base, bg = C.mauve },
OctoBubbleDelimiterPurple = { fg = C.mauve },
OctoUser = { link = "OctoBubble" },
OctoUserViewer = { link = "OctoViewer" },
OctoReaction = { link = "OctoBubble" },
OctoReactionViewer = { link = "OctoViewer" },
OctoPassingTest = { link = "OctoGreen" },
OctoFailingTest = { link = "OctoRed" },
OctoPullAdditions = { link = "OctoGreen" },
OctoPullDeletions = { link = "OctoRed" },
OctoPullModifications = { fg = C.peach },
OctoStateOpen = { fg = C.green, bg = C.base },
OctoStateOpenFloat = { fg = C.green, bg = C.base },
OctoStateClosed = { fg = C.red, bg = C.base },
OctoStateClosedFloat = { fg = C.red, bg = C.base },
OctoStateMerged = { fg = C.mauve, bg = C.base },
OctoStateMergedFloat = { fg = C.mauve, bg = C.base },
OctoStatePending = { fg = C.peach, bg = C.base },
OctoStatePendingFloat = { fg = C.peach, bg = C.base },
OctoStateApproved = { link = "OctoStateOpen" },
OctoStateApprovedFloat = { link = "OctoStateOpen" },
OctoStateChangesRequested = { fg = C.maroon, bg = C.base },
OctoStateChangesRequestedFloat = { fg = C.maroon, bg = C.base },
OctoStateCommented = { link = "Normal" },
OctoStateCommentedFloat = { link = "Normal" },
OctoStateDismissed = { link = "OctoStateClosed" },
OctoStateDismissedFloat = { link = "OctoStateClosed" },
OctoStateSubmittedBubble = { link = "OctoBubbleGreen" },
OctoFilePanelCounter = { fg = C.blue, style = { "bold" } },
OctoFilePanelTitle = { fg = C.blue, style = { "bold" } },
OctoFilePanelFileName = {},
OctoNormalFront = { fg = C.text },
OctoYellowFloat = { fg = C.yellow, bg = C.base },
OctoPurpleFloat = { fg = C.mauve, bg = C.base },
OctoRedFloat = { fg = C.red, bg = C.base },
OctoGreenFloat = { fg = C.green, bg = C.base },
OctoGreyFloat = { fg = C.text, bg = C.base },
OctoBlueFloat = { fg = C.blue, bg = C.base },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/overseer.lua
================================================
local M = {}
M.url = "https://github.com/stevearc/overseer.nvim"
function M.get()
return {
OverseerPENDING = { fg = C.grey },
OverseerRUNNING = { fg = C.yellow },
OverseerSUCCESS = { fg = C.green },
OverseerCANCELED = { fg = C.overlay2 },
OverseerFAILURE = { fg = C.red },
OverseerTask = { fg = C.blue },
OverseerTaskBorder = { fg = C.sky },
OverseerOutput = { fg = C.text },
OverseerComponent = { fg = C.yellow },
OverseerField = { fg = C.green },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/pounce.lua
================================================
local M = {}
M.url = "https://github.com/rlane/pounce.nvim"
function M.get()
return {
PounceMatch = { bg = U.lighten(C.green, 0.7), fg = C.base, style = { "bold" } },
PounceGap = { bg = U.darken(C.green, 0.7), fg = C.base, style = { "bold" } },
PounceAccept = { bg = C.peach, fg = C.base, style = { "bold" } },
PounceAcceptBest = { bg = C.teal, fg = C.base, style = { "bold" } },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/rainbow_delimiters.lua
================================================
local M = {}
M.url = "https://github.com/HiPhish/rainbow-delimiters.nvim"
function M.get()
return {
RainbowDelimiterRed = { fg = C.red },
RainbowDelimiterYellow = { fg = C.yellow },
RainbowDelimiterBlue = { fg = C.blue },
RainbowDelimiterOrange = { fg = C.peach },
RainbowDelimiterGreen = { fg = C.green },
RainbowDelimiterViolet = { fg = C.mauve },
RainbowDelimiterCyan = { fg = C.teal },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/render_markdown.lua
================================================
local M = {}
M.url = "https://github.com/MeanderingProgrammer/render-markdown.nvim"
-- render-markdown.nvim highlight groups:
-- https://github.com/MeanderingProgrammer/render-markdown.nvim?tab=readme-ov-file#colors
function M.get()
local groups = {
RenderMarkdownCode = { bg = C.mantle },
RenderMarkdownCodeInline = { bg = C.surface0 },
RenderMarkdownBullet = { fg = C.sky },
RenderMarkdownTableHead = { fg = C.blue },
RenderMarkdownTableRow = { fg = C.lavender },
RenderMarkdownSuccess = { fg = C.green },
RenderMarkdownInfo = { fg = C.sky },
RenderMarkdownHint = { fg = C.teal },
RenderMarkdownWarn = { fg = C.yellow },
RenderMarkdownError = { fg = C.red },
}
local syntax = require("catppuccin.groups.syntax").get()
local darkening_percentage = O.transparent_background and U.vary_color({ latte = 0.15 }, 0.28) or 0.095
for i = 1, 6 do
local color = syntax["rainbow" .. i].fg
groups["RenderMarkdownH" .. i] = { fg = color }
groups["RenderMarkdownH" .. i .. "Bg"] = { bg = U.darken(color, darkening_percentage, C.base) }
end
return groups
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/sandwich.lua
================================================
local M = {}
M.url = "https://github.com/machakann/vim-sandwich"
function M.get()
return {
OperatorSandwichAdd = { bg = C.blue, fg = C.base },
OperatorSandwichBuns = { bg = C.blue, fg = C.base },
OperatorSandwichChange = { bg = C.blue, fg = C.base },
OperatorSandwichDelete = { bg = C.blue, fg = C.base },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/signify.lua
================================================
local M = {}
M.url = "https://github.com/mhinz/vim-signify"
function M.get()
return {
SignifySignAdd = { fg = C.green },
SignifySignChange = { fg = C.yellow },
SignifySignDelete = { fg = C.red },
}
end
return M
================================================
FILE: lua/catppuccin/groups/integrations/snacks.lua
================================================
local M = {}
M.url = "https://github.com/folke/snacks.nvim"
function M.get()
local indent_scope_color = O.integrations.snacks.indent_scope_color
local hlgroups = {
SnacksNormal = { link = "Normal" },
SnacksWinBar = { link = "Title" },
SnacksBackdrop = { link = "FloatShadow" },
SnacksNormalNC = { link = "NormalFloat" },
SnacksWinBarNC = { link = "SnacksWinBar" },
SnacksNotifierInfo = { fg = C.blue },
SnacksNotifierIconInfo = { fg = C.blue },
SnacksNotifierTitleInfo = { fg = C.blue, style = { "italic" } },
SnacksNotifierFooterInfo = { link = "DiagnosticInfo" },
SnacksNotifierBorderInfo = { fg = C.blue },
SnacksNotifierWarn = { fg = C.yellow },
SnacksNotifierIconWarn = { fg = C.yellow },
SnacksNotifierTitleWarn = { fg = C.yellow, style = { "italic" } },
SnacksNotifierBorderWarn = { fg = C.yellow },
SnacksNotifierFooterWarn = { link = "DiagnosticWarn" },
SnacksNotifierDebug = { fg = C.peach },
SnacksNotifierIconDebug = { fg = C.peach },
SnacksNotifierTitleDebug = { fg = C.peach, style = { "italic" } },
SnacksNotifierBorderDebug = { fg = C.peach },
SnacksNotifierFooterDebug = { link = "DiagnosticHint" },
SnacksNotifierError = { fg = C.red },
SnacksNotifierIco
gitextract_sldfuu1t/ ├── .editorconfig ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature_request.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── formatting.yml │ ├── neovim.yml │ ├── patch.yml │ ├── release.yml │ └── tests.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── after/ │ └── queries/ │ ├── css/ │ │ └── highlights.scm │ ├── javascript/ │ │ └── highlights.scm │ └── typescript/ │ └── highlights.scm ├── colors/ │ ├── catppuccin-frappe.lua │ ├── catppuccin-latte.lua │ ├── catppuccin-macchiato.lua │ ├── catppuccin-mocha.lua │ ├── catppuccin-nvim.vim │ └── catppuccin.lua ├── doc/ │ └── catppuccin.txt ├── justfile ├── lua/ │ ├── barbecue/ │ │ └── theme/ │ │ ├── catppuccin-frappe.lua │ │ ├── catppuccin-latte.lua │ │ ├── catppuccin-macchiato.lua │ │ ├── catppuccin-mocha.lua │ │ └── catppuccin-nvim.lua │ ├── catppuccin/ │ │ ├── groups/ │ │ │ ├── editor.lua │ │ │ ├── integrations/ │ │ │ │ ├── aerial.lua │ │ │ │ ├── alpha.lua │ │ │ │ ├── artio.lua │ │ │ │ ├── avante.lua │ │ │ │ ├── barbar.lua │ │ │ │ ├── beacon.lua │ │ │ │ ├── blink_cmp.lua │ │ │ │ ├── blink_indent.lua │ │ │ │ ├── blink_pairs.lua │ │ │ │ ├── buffon.lua │ │ │ │ ├── cmp.lua │ │ │ │ ├── coc_nvim.lua │ │ │ │ ├── colorful_winsep.lua │ │ │ │ ├── copilot_vim.lua │ │ │ │ ├── dadbod_ui.lua │ │ │ │ ├── dap.lua │ │ │ │ ├── dap_ui.lua │ │ │ │ ├── dashboard.lua │ │ │ │ ├── diffview.lua │ │ │ │ ├── dropbar.lua │ │ │ │ ├── fern.lua │ │ │ │ ├── fidget.lua │ │ │ │ ├── flash.lua │ │ │ │ ├── fzf.lua │ │ │ │ ├── gitgraph.lua │ │ │ │ ├── gitgutter.lua │ │ │ │ ├── gitsigns.lua │ │ │ │ ├── grug_far.lua │ │ │ │ ├── harpoon.lua │ │ │ │ ├── headlines.lua │ │ │ │ ├── hop.lua │ │ │ │ ├── illuminate.lua │ │ │ │ ├── indent_blankline.lua │ │ │ │ ├── leap.lua │ │ │ │ ├── lightspeed.lua │ │ │ │ ├── lir.lua │ │ │ │ ├── lsp_saga.lua │ │ │ │ ├── lsp_trouble.lua │ │ │ │ ├── markview.lua │ │ │ │ ├── mason.lua │ │ │ │ ├── mini.lua │ │ │ │ ├── navic.lua │ │ │ │ ├── neogit.lua │ │ │ │ ├── neotest.lua │ │ │ │ ├── neotree.lua │ │ │ │ ├── noice.lua │ │ │ │ ├── notifier.lua │ │ │ │ ├── notify.lua │ │ │ │ ├── nvim_surround.lua │ │ │ │ ├── nvimtree.lua │ │ │ │ ├── octo.lua │ │ │ │ ├── overseer.lua │ │ │ │ ├── pounce.lua │ │ │ │ ├── rainbow_delimiters.lua │ │ │ │ ├── render_markdown.lua │ │ │ │ ├── sandwich.lua │ │ │ │ ├── signify.lua │ │ │ │ ├── snacks.lua │ │ │ │ ├── symbols_outline.lua │ │ │ │ ├── telekasten.lua │ │ │ │ ├── telescope.lua │ │ │ │ ├── treesitter_context.lua │ │ │ │ ├── ts_rainbow.lua │ │ │ │ ├── ts_rainbow2.lua │ │ │ │ ├── ufo.lua │ │ │ │ ├── vim_sneak.lua │ │ │ │ ├── vimwiki.lua │ │ │ │ ├── which_key.lua │ │ │ │ └── window_picker.lua │ │ │ ├── lsp.lua │ │ │ ├── semantic_tokens.lua │ │ │ ├── syntax.lua │ │ │ ├── terminal.lua │ │ │ └── treesitter.lua │ │ ├── init.lua │ │ ├── lib/ │ │ │ ├── compiler.lua │ │ │ ├── detect_integrations.lua │ │ │ ├── hashing.lua │ │ │ ├── highlighter.lua │ │ │ ├── hsluv.lua │ │ │ └── mapper.lua │ │ ├── palettes/ │ │ │ ├── frappe.lua │ │ │ ├── init.lua │ │ │ ├── latte.lua │ │ │ ├── macchiato.lua │ │ │ └── mocha.lua │ │ ├── special/ │ │ │ ├── bufferline.lua │ │ │ └── feline.lua │ │ ├── types.lua │ │ └── utils/ │ │ ├── barbecue.lua │ │ ├── colors.lua │ │ ├── integration_mappings.lua │ │ ├── lualine.lua │ │ └── reactive.lua │ ├── lualine/ │ │ └── themes/ │ │ ├── catppuccin-frappe.lua │ │ ├── catppuccin-latte.lua │ │ ├── catppuccin-macchiato.lua │ │ ├── catppuccin-mocha.lua │ │ └── catppuccin-nvim.lua │ └── reactive/ │ └── presets/ │ ├── catppuccin-frappe-cursor.lua │ ├── catppuccin-frappe-cursorline.lua │ ├── catppuccin-latte-cursor.lua │ ├── catppuccin-latte-cursorline.lua │ ├── catppuccin-macchiato-cursor.lua │ ├── catppuccin-macchiato-cursorline.lua │ ├── catppuccin-mocha-cursor.lua │ └── catppuccin-mocha-cursorline.lua ├── nvim.tera ├── renovate.json ├── scripts/ │ └── generate_integration_mappings_table.lua ├── selene.toml ├── stylua.toml ├── tests/ │ ├── flavour_spec.lua │ ├── hash_spec.lua │ ├── init.lua │ ├── init.vim │ ├── minimal_init.vim │ ├── palette_spec.lua │ └── pattern_spec.lua └── vim.toml
Condensed preview — 151 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (340K chars).
[
{
"path": ".editorconfig",
"chars": 365,
"preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# Edit"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.yml",
"chars": 3159,
"preview": "name: Bug report\ndescription: Report a problem with Catppuccin\nlabels: [bug]\nbody:\n - type: textarea\n attributes:\n "
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 199,
"preview": "blank_issues_enabled: false\ncontact_links:\n - name: Question\n url: https://discord.com/servers/catppuccin-90738560"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 635,
"preview": "---\nname: Feature request\nabout: \"Suggest an idea for the project\"\ntitle: \"\"\nlabels: enhancement\nassignees: \"\"\n---\n\n**Is"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 934,
"preview": "🎉 First off, thanks for taking the time to contribute! 🎉\n\nHere are some guidelines:\n- Format code using [stylua](https:/"
},
{
"path": ".github/workflows/formatting.yml",
"chars": 389,
"preview": "name: StyLua\non:\n pull_request:\n push:\n paths-ignore:\n - \"*.md\"\n branches:\n - main\n\njobs:\n stylua:\n "
},
{
"path": ".github/workflows/neovim.yml",
"chars": 1391,
"preview": "---\nname: Neovim\non:\n pull_request:\n push:\n paths-ignore:\n - \"*.md\"\n branches:\n - main\n\njobs:\n ubuntu"
},
{
"path": ".github/workflows/patch.yml",
"chars": 1252,
"preview": "name: Patch\non:\n workflow_dispatch:\n pull_request:\n branches: [main]\n\njobs:\n docs:\n name: generate vimdoc\n r"
},
{
"path": ".github/workflows/release.yml",
"chars": 854,
"preview": "name: release\n\non:\n push:\n branches: [main]\n workflow_dispatch:\n\njobs:\n release:\n name: release\n runs-on: ub"
},
{
"path": ".github/workflows/tests.yml",
"chars": 1102,
"preview": "---\nname: Tests\non:\n pull_request:\n push:\n paths-ignore:\n - \"*.md\"\n branches:\n - main\n workflow_dispa"
},
{
"path": ".gitignore",
"chars": 35,
"preview": "doc/tags\n.vscode/\n.DS_Store\n.repro\n"
},
{
"path": "CHANGELOG.md",
"chars": 36036,
"preview": "# 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* au"
},
{
"path": "LICENSE.md",
"chars": 1067,
"preview": "MIT License\n\nCopyright (c) 2021 Catppuccin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy"
},
{
"path": "README.md",
"chars": 38260,
"preview": "<!-- panvimdoc-ignore-start -->\n\n<h3 align=\"center\">\n <img src=\"https://raw.githubusercontent.com/catppuccin/catppucc"
},
{
"path": "after/queries/css/highlights.scm",
"chars": 152,
"preview": ";; 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"
},
{
"path": "after/queries/javascript/highlights.scm",
"chars": 40,
"preview": ";; extends\n[\n\"export\"\n] @keyword.export\n"
},
{
"path": "after/queries/typescript/highlights.scm",
"chars": 40,
"preview": ";; extends\n[\n\"export\"\n] @keyword.export\n"
},
{
"path": "colors/catppuccin-frappe.lua",
"chars": 36,
"preview": "require(\"catppuccin\").load \"frappe\"\n"
},
{
"path": "colors/catppuccin-latte.lua",
"chars": 35,
"preview": "require(\"catppuccin\").load \"latte\"\n"
},
{
"path": "colors/catppuccin-macchiato.lua",
"chars": 39,
"preview": "require(\"catppuccin\").load \"macchiato\"\n"
},
{
"path": "colors/catppuccin-mocha.lua",
"chars": 35,
"preview": "require(\"catppuccin\").load \"mocha\"\n"
},
{
"path": "colors/catppuccin-nvim.vim",
"chars": 33,
"preview": "lua require(\"catppuccin\").load()\n"
},
{
"path": "colors/catppuccin.lua",
"chars": 29,
"preview": "require(\"catppuccin\").load()\n"
},
{
"path": "doc/catppuccin.txt",
"chars": 27175,
"preview": "*catppuccin.txt* Soothing pastel theme for NeoVim\n\n========================================"
},
{
"path": "justfile",
"chars": 52,
"preview": "_default:\n @just list\n\nbuild:\n whiskers nvim.tera\n"
},
{
"path": "lua/barbecue/theme/catppuccin-frappe.lua",
"chars": 52,
"preview": "return require \"catppuccin.utils.barbecue\" \"frappe\"\n"
},
{
"path": "lua/barbecue/theme/catppuccin-latte.lua",
"chars": 51,
"preview": "return require \"catppuccin.utils.barbecue\" \"latte\"\n"
},
{
"path": "lua/barbecue/theme/catppuccin-macchiato.lua",
"chars": 55,
"preview": "return require \"catppuccin.utils.barbecue\" \"macchiato\"\n"
},
{
"path": "lua/barbecue/theme/catppuccin-mocha.lua",
"chars": 51,
"preview": "return require \"catppuccin.utils.barbecue\" \"mocha\"\n"
},
{
"path": "lua/barbecue/theme/catppuccin-nvim.lua",
"chars": 45,
"preview": "return require \"catppuccin.utils.barbecue\"()\n"
},
{
"path": "lua/catppuccin/groups/editor.lua",
"chars": 8475,
"preview": "local M = {}\n\nfunction M.get()\n\treturn {\n\t\tColorColumn = { bg = C.surface0 }, -- used for the columns set with 'colorcol"
},
{
"path": "lua/catppuccin/groups/integrations/aerial.lua",
"chars": 1341,
"preview": "local M = {}\n\nM.url = \"https://github.com/stevearc/aerial.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tAerialLine = { fg = C.yell"
},
{
"path": "lua/catppuccin/groups/integrations/alpha.lua",
"chars": 310,
"preview": "local M = {}\n\nM.url = \"https://github.com/goolord/alpha-nvim\"\n\nfunction M.get()\n\treturn {\n\t\tAlphaShortcut = { fg = C.gre"
},
{
"path": "lua/catppuccin/groups/integrations/artio.lua",
"chars": 547,
"preview": "local M = {}\n\nM.url = \"https://github.com/comfysage/artio.nvim\"\n\nfunction M.get()\n\tlocal transparent_background = requir"
},
{
"path": "lua/catppuccin/groups/integrations/avante.lua",
"chars": 1849,
"preview": "local M = {}\n\nM.url = \"https://github.com/yetone/avante.nvim\"\n\nfunction M.get()\n\tlocal rounded = O.integrations.avante.w"
},
{
"path": "lua/catppuccin/groups/integrations/barbar.lua",
"chars": 1038,
"preview": "local M = {}\n\nM.url = \"https://github.com/romgrk/barbar.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tBufferCurrent = { bg = C.sur"
},
{
"path": "lua/catppuccin/groups/integrations/beacon.lua",
"chars": 143,
"preview": "local M = {}\n\nM.url = \"https://github.com/DanilaMihailov/beacon.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tBeacon = { bg = C.bl"
},
{
"path": "lua/catppuccin/groups/integrations/blink_cmp.lua",
"chars": 2241,
"preview": "local M = {}\n\nM.url = \"https://github.com/saghen/blink.cmp\"\n\nfunction M.get()\n\tlocal style = O.integrations.blink_cmp.st"
},
{
"path": "lua/catppuccin/groups/integrations/blink_indent.lua",
"chars": 963,
"preview": "local M = {}\n\nM.url = \"https://github.com/saghen/blink.indent\"\n\nfunction M.get()\n\treturn {\n\t\tBlinkIndent = { fg = C.surf"
},
{
"path": "lua/catppuccin/groups/integrations/blink_pairs.lua",
"chars": 459,
"preview": "local M = {}\n\nM.url = \"https://github.com/saghen/blink.pairs\"\n\nfunction M.get()\n\treturn {\n\t\tBlinkPairsRed = { fg = C.red"
},
{
"path": "lua/catppuccin/groups/integrations/buffon.lua",
"chars": 281,
"preview": "local M = {}\n\nM.url = \"https://github.com/francescarpi/buffon.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tBuffonUnloadedBuffer ="
},
{
"path": "lua/catppuccin/groups/integrations/cmp.lua",
"chars": 1471,
"preview": "local M = {}\n\nM.url = \"https://github.com/hrsh7th/nvim-cmp\"\n\nfunction M.get()\n\treturn {\n\t\tCmpItemAbbr = { fg = C.overlay"
},
{
"path": "lua/catppuccin/groups/integrations/coc_nvim.lua",
"chars": 411,
"preview": "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 c"
},
{
"path": "lua/catppuccin/groups/integrations/colorful_winsep.lua",
"chars": 294,
"preview": "local M = {}\n\nM.url = \"https://github.com/nvim-zh/colorful-winsep.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tColorfulWinSep = {"
},
{
"path": "lua/catppuccin/groups/integrations/copilot_vim.lua",
"chars": 189,
"preview": "local M = {}\n\nM.url = \"https://github.com/github/copilot.vim\"\n\nfunction M.get()\n\treturn {\n\t\tCopilotSuggestion = { fg = C"
},
{
"path": "lua/catppuccin/groups/integrations/dadbod_ui.lua",
"chars": 281,
"preview": "local M = {}\n\nM.url = \"https://github.com/kristijanhusak/vim-dadbod-ui\"\n\nfunction M.get()\n\treturn {\n\t\tNotificationInfo ="
},
{
"path": "lua/catppuccin/groups/integrations/dap.lua",
"chars": 300,
"preview": "local M = {}\n\nM.url = \"https://github.com/mfussenegger/nvim-dap\"\n\nfunction M.get()\n\treturn {\n\t\tDapBreakpoint = { fg = C."
},
{
"path": "lua/catppuccin/groups/integrations/dap_ui.lua",
"chars": 1542,
"preview": "local M = {}\n\nM.url = \"https://github.com/rcarriga/nvim-dap-ui\"\n\nfunction M.get()\n\treturn {\n\t\tDapUIScope = { fg = C.sky "
},
{
"path": "lua/catppuccin/groups/integrations/dashboard.lua",
"chars": 524,
"preview": "local M = {}\n\nM.url = \"https://github.com/nvimdev/dashboard-nvim\"\n\nfunction M.get()\n\treturn {\n\t\tDashboardShortCut = { fg"
},
{
"path": "lua/catppuccin/groups/integrations/diffview.lua",
"chars": 1665,
"preview": "local M = {}\n\nM.url = \"https://github.com/sindrets/diffview.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tDiffviewDim1 = { link = "
},
{
"path": "lua/catppuccin/groups/integrations/dropbar.lua",
"chars": 5458,
"preview": "local M = {}\n\nM.url = \"https://github.com/Bekaboo/dropbar.nvim\"\n\nfunction M.get()\n\tlocal color = O.integrations.dropbar."
},
{
"path": "lua/catppuccin/groups/integrations/fern.lua",
"chars": 145,
"preview": "local M = {}\n\nM.url = \"https://github.com/lambdalisue/vim-fern\"\n\nfunction M.get()\n\treturn {\n\t\tFernBranchText = { fg = C."
},
{
"path": "lua/catppuccin/groups/integrations/fidget.lua",
"chars": 234,
"preview": "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.tran"
},
{
"path": "lua/catppuccin/groups/integrations/flash.lua",
"chars": 395,
"preview": "local M = {}\n\nM.url = \"https://github.com/folke/flash.nvim\"\n\nfunction M.get()\n\tlocal bg = O.transparent_background and C"
},
{
"path": "lua/catppuccin/groups/integrations/fzf.lua",
"chars": 758,
"preview": "local M = {}\n\nM.url = \"https://github.com/ibhagwan/fzf-lua\"\n\nfunction M.get()\n\treturn {\n\t\tFzfLuaNormal = { link = \"Norma"
},
{
"path": "lua/catppuccin/groups/integrations/gitgraph.lua",
"chars": 535,
"preview": "local M = {}\n\nM.url = \"https://github.com/isakbm/gitgraph.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tGitGraphHash = { fg = C.ma"
},
{
"path": "lua/catppuccin/groups/integrations/gitgutter.lua",
"chars": 349,
"preview": "local M = {}\n\nM.url = \"https://github.com/airblade/vim-gitgutter\"\n\nfunction M.get()\n\treturn {\n\t\tGitGutterAdd = { fg = C."
},
{
"path": "lua/catppuccin/groups/integrations/gitsigns.lua",
"chars": 1659,
"preview": "local M = {}\n\nM.url = \"https://github.com/lewis6991/gitsigns.nvim\"\n\nfunction M.get()\n\t-- (a ~= nil) and a or b: Potentia"
},
{
"path": "lua/catppuccin/groups/integrations/grug_far.lua",
"chars": 160,
"preview": "local M = {}\n\nM.url = \"https://github.com/MagicDuck/grug-far.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tGrugFarResultsMatch = {"
},
{
"path": "lua/catppuccin/groups/integrations/harpoon.lua",
"chars": 231,
"preview": "local M = {}\n\nM.url = \"https://github.com/ThePrimeagen/harpoon\"\n\nfunction M.get()\n\treturn {\n\t\tHarpoonWindow = { fg = C.t"
},
{
"path": "lua/catppuccin/groups/integrations/headlines.lua",
"chars": 575,
"preview": "local M = {}\n\nM.url = \"https://github.com/lukas-reineke/headlines.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tDash = { fg = C.ov"
},
{
"path": "lua/catppuccin/groups/integrations/hop.lua",
"chars": 422,
"preview": "local M = {}\n\nM.url = \"https://github.com/hadronized/hop.nvim\"\n\nfunction M.get()\n\tlocal bg = O.transparent_background an"
},
{
"path": "lua/catppuccin/groups/integrations/illuminate.lua",
"chars": 388,
"preview": "local M = {}\n\nM.url = \"https://github.com/RRethy/vim-illuminate\"\n\nfunction M.get()\n\treturn {\n\t\tIlluminatedWordText = { b"
},
{
"path": "lua/catppuccin/groups/integrations/indent_blankline.lua",
"chars": 711,
"preview": "local M = {}\n\nM.url = \"https://github.com/lukas-reineke/indent-blankline.nvim\"\n\nfunction M.get()\n\tlocal scope_color = O."
},
{
"path": "lua/catppuccin/groups/integrations/leap.lua",
"chars": 712,
"preview": "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.trans"
},
{
"path": "lua/catppuccin/groups/integrations/lightspeed.lua",
"chars": 873,
"preview": "local M = {}\n\nM.url = \"https://github.com/ggandor/lightspeed.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tLightspeedLabel = { fg "
},
{
"path": "lua/catppuccin/groups/integrations/lir.lua",
"chars": 971,
"preview": "local M = {}\n\nM.url = \"https://github.com/tamago324/lir.nvim\"\n\nfunction M.get()\n\treturn vim.tbl_deep_extend(\"force\", {},"
},
{
"path": "lua/catppuccin/groups/integrations/lsp_saga.lua",
"chars": 4478,
"preview": "local M = {}\n\nM.url = \"https://github.com/nvimdev/lspsaga.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tSagaTitle = { fg = C.teal,"
},
{
"path": "lua/catppuccin/groups/integrations/lsp_trouble.lua",
"chars": 367,
"preview": "local M = {}\n\nM.url = \"https://github.com/folke/trouble.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tTroubleText = { fg = C.green"
},
{
"path": "lua/catppuccin/groups/integrations/markview.lua",
"chars": 1767,
"preview": "local M = {}\n\nM.url = \"https://github.com/OXY2DEV/markview.nvim\"\n\n-- markview.nvim highlight groups:\n-- https://github.c"
},
{
"path": "lua/catppuccin/groups/integrations/mason.lua",
"chars": 1355,
"preview": "local M = {}\n\nM.url = \"https://github.com/mason-org/mason.nvim\"\n\nfunction M.get()\n\tlocal bg = O.transparent_background a"
},
{
"path": "lua/catppuccin/groups/integrations/mini.lua",
"chars": 6739,
"preview": "local M = {}\n\nM.url = \"https://github.com/echasnovski/mini.nvim\"\n\nfunction M.get()\n\tlocal transparent_background = requi"
},
{
"path": "lua/catppuccin/groups/integrations/navic.lua",
"chars": 1909,
"preview": "local M = {}\n\nM.url = \"https://github.com/SmiteshP/nvim-navic\"\n\nfunction M.get()\n\tlocal background = O.integrations.navi"
},
{
"path": "lua/catppuccin/groups/integrations/neogit.lua",
"chars": 4462,
"preview": "local M = {}\n\nM.url = \"https://github.com/NeogitOrg/neogit\"\n\nfunction M.get()\n\treturn {\n\t\tNeogitBranch = {\n\t\t\tfg = C.pea"
},
{
"path": "lua/catppuccin/groups/integrations/neotest.lua",
"chars": 756,
"preview": "local M = {}\n\nM.url = \"https://github.com/nvim-neotest/neotest\"\n\nfunction M.get()\n\treturn {\n\t\tNeotestPassed = { fg = C.g"
},
{
"path": "lua/catppuccin/groups/integrations/neotree.lua",
"chars": 1817,
"preview": "local M = {}\n\nM.url = \"https://github.com/nvim-neo-tree/neo-tree.nvim\"\n\nfunction M.get()\n\tlocal active_bg = O.transparen"
},
{
"path": "lua/catppuccin/groups/integrations/noice.lua",
"chars": 889,
"preview": "local M = {}\n\nM.url = \"https://github.com/folke/noice.nvim\"\n\nlocal virtual_text = O.lsp_styles.virtual_text\n\nfunction M."
},
{
"path": "lua/catppuccin/groups/integrations/notifier.lua",
"chars": 295,
"preview": "local M = {}\n\nM.url = \"https://github.com/vigoux/notifier.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tNotifierIcon = { fg = C.ma"
},
{
"path": "lua/catppuccin/groups/integrations/notify.lua",
"chars": 913,
"preview": "local M = {}\n\nM.url = \"https://github.com/rcarriga/nvim-notify\"\n\nfunction M.get()\n\treturn {\n\t\tNotifyBackground = { bg = "
},
{
"path": "lua/catppuccin/groups/integrations/nvim_surround.lua",
"chars": 180,
"preview": "local M = {}\n\nM.url = \"https://github.com/kylechui/nvim-surround\"\n\nfunction M.get()\n\treturn {\n\t\tNvimSurroundHighlight = "
},
{
"path": "lua/catppuccin/groups/integrations/nvimtree.lua",
"chars": 964,
"preview": "local M = {}\n\nM.url = \"https://github.com/nvim-tree/nvim-tree.lua\"\n\nfunction M.get()\n\treturn {\n\t\tNvimTreeFolderName = { "
},
{
"path": "lua/catppuccin/groups/integrations/octo.lua",
"chars": 3330,
"preview": "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"
},
{
"path": "lua/catppuccin/groups/integrations/overseer.lua",
"chars": 489,
"preview": "local M = {}\n\nM.url = \"https://github.com/stevearc/overseer.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tOverseerPENDING = { fg ="
},
{
"path": "lua/catppuccin/groups/integrations/pounce.lua",
"chars": 408,
"preview": "local M = {}\n\nM.url = \"https://github.com/rlane/pounce.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tPounceMatch = { bg = U.lighte"
},
{
"path": "lua/catppuccin/groups/integrations/rainbow_delimiters.lua",
"chars": 424,
"preview": "local M = {}\n\nM.url = \"https://github.com/HiPhish/rainbow-delimiters.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tRainbowDelimite"
},
{
"path": "lua/catppuccin/groups/integrations/render_markdown.lua",
"chars": 1095,
"preview": "local M = {}\n\nM.url = \"https://github.com/MeanderingProgrammer/render-markdown.nvim\"\n\n-- render-markdown.nvim highlight "
},
{
"path": "lua/catppuccin/groups/integrations/sandwich.lua",
"chars": 334,
"preview": "local M = {}\n\nM.url = \"https://github.com/machakann/vim-sandwich\"\n\nfunction M.get()\n\treturn {\n\t\tOperatorSandwichAdd = { "
},
{
"path": "lua/catppuccin/groups/integrations/signify.lua",
"chars": 222,
"preview": "local M = {}\n\nM.url = \"https://github.com/mhinz/vim-signify\"\n\nfunction M.get()\n\treturn {\n\t\tSignifySignAdd = { fg = C.gre"
},
{
"path": "lua/catppuccin/groups/integrations/snacks.lua",
"chars": 3175,
"preview": "local M = {}\n\nM.url = \"https://github.com/folke/snacks.nvim\"\n\nfunction M.get()\n\tlocal indent_scope_color = O.integration"
},
{
"path": "lua/catppuccin/groups/integrations/symbols_outline.lua",
"chars": 315,
"preview": "local M = {}\n\nM.url = \"https://github.com/simrat39/symbols-outline.nvim\"\n\nfunction M.get()\n\treturn {\n\t\t-- https://github"
},
{
"path": "lua/catppuccin/groups/integrations/telekasten.lua",
"chars": 206,
"preview": "local M = {}\n\nM.url = \"https://github.com/nvim-telekasten/telekasten.nvim\"\n\nfunction M.get()\n\treturn {\n\t\ttkLink = { fg ="
},
{
"path": "lua/catppuccin/groups/integrations/telescope.lua",
"chars": 960,
"preview": "local M = {}\n\nM.url = \"https://github.com/nvim-telescope/telescope.nvim\"\n\nfunction M.get()\n\tlocal hlgroups = {\n\t\tTelesco"
},
{
"path": "lua/catppuccin/groups/integrations/treesitter_context.lua",
"chars": 487,
"preview": "local M = {}\n\nM.url = \"https://github.com/nvim-treesitter/nvim-treesitter-context\"\n\nfunction M.get()\n\treturn {\n\t\tTreesit"
},
{
"path": "lua/catppuccin/groups/integrations/ts_rainbow.lua",
"chars": 349,
"preview": "local M = {}\n\nM.url = \"https://github.com/HiPhish/nvim-ts-rainbow\"\n\nfunction M.get()\n\treturn {\n\t\trainbowcol1 = { fg = C."
},
{
"path": "lua/catppuccin/groups/integrations/ts_rainbow2.lua",
"chars": 368,
"preview": "local M = {}\n\nM.url = \"https://github.com/HiPhish/nvim-ts-rainbow2\"\n\nfunction M.get()\n\treturn {\n\t\tTSRainbowRed = { fg = "
},
{
"path": "lua/catppuccin/groups/integrations/ufo.lua",
"chars": 202,
"preview": "local M = {}\n\nM.url = \"https://github.com/kevinhwang91/nvim-ufo\"\n\nM.get = function()\n\treturn {\n\t\tUfoFoldedFg = { fg = C."
},
{
"path": "lua/catppuccin/groups/integrations/vim_sneak.lua",
"chars": 183,
"preview": "local M = {}\n\nM.url = \"https://github.com/justinmk/vim-sneak\"\n\nfunction M.get()\n\treturn {\n\t\tSneak = { fg = C.overlay2, b"
},
{
"path": "lua/catppuccin/groups/integrations/vimwiki.lua",
"chars": 811,
"preview": "local M = {}\n\nM.url = \"https://github.com/vimwiki/vimwiki\"\n\nfunction M.get()\n\treturn {\n\t\tVimwikiLink = { fg = C.sky, bg "
},
{
"path": "lua/catppuccin/groups/integrations/which_key.lua",
"chars": 345,
"preview": "local M = {}\n\nM.url = \"https://github.com/folke/which-key.nvim\"\n\nfunction M.get()\n\treturn {\n\t\tWhichKey = { link = \"Norma"
},
{
"path": "lua/catppuccin/groups/integrations/window_picker.lua",
"chars": 362,
"preview": "local M = {}\n\nM.url = \"https://github.com/s1n7ax/nvim-window-picker\"\n\nfunction M.get()\n\treturn {\n\t\tWindowPickerStatusLin"
},
{
"path": "lua/catppuccin/groups/lsp.lua",
"chars": 7349,
"preview": "local M = {}\n\nfunction M.get()\n\tlocal virtual_text = O.lsp_styles.virtual_text\n\tlocal underlines = O.lsp_styles.underlin"
},
{
"path": "lua/catppuccin/groups/semantic_tokens.lua",
"chars": 1196,
"preview": "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):\nsem"
},
{
"path": "lua/catppuccin/groups/syntax.lua",
"chars": 5822,
"preview": "local M = {}\n\nfunction M.get()\n\treturn {\n\t\tComment = { fg = C.overlay2, style = O.styles.comments }, -- just comments\n\t\t"
},
{
"path": "lua/catppuccin/groups/terminal.lua",
"chars": 545,
"preview": "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_c"
},
{
"path": "lua/catppuccin/groups/treesitter.lua",
"chars": 13918,
"preview": "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):\nnvi"
},
{
"path": "lua/catppuccin/init.lua",
"chars": 6631,
"preview": "---@type Catppuccin\nlocal M = {\n\tdefault_options = {\n\t\tflavour = \"auto\",\n\t\tbackground = {\n\t\t\tlight = \"latte\",\n\t\t\tdark = "
},
{
"path": "lua/catppuccin/lib/compiler.lua",
"chars": 3022,
"preview": "local path_sep = require(\"catppuccin\").path_sep\nlocal O = require(\"catppuccin\").options\nlocal M = {}\n\n-- Credit: https:/"
},
{
"path": "lua/catppuccin/lib/detect_integrations.lua",
"chars": 1957,
"preview": "local M = {}\n\n--- parses url to get the last part of it's path, without the `/`.\n---@param url string\n---@return any\nfun"
},
{
"path": "lua/catppuccin/lib/hashing.lua",
"chars": 596,
"preview": "local M = {}\nlocal B = bit or bit32\n\nlocal hash_str = function(str) -- djb2, https://theartincode.stanis.me/008-djb2/\n\tl"
},
{
"path": "lua/catppuccin/lib/highlighter.lua",
"chars": 335,
"preview": "-- DEPRECATED MODULE\nlocal M = {}\n\nfunction M.highlight(group, color)\n\tif color.style then\n\t\tfor _, style in ipairs(colo"
},
{
"path": "lua/catppuccin/lib/hsluv.lua",
"chars": 8411,
"preview": "--[[\nLua implementation of HSLuv and HPLuv color spaces\nHomepage: http://www.hsluv.org/\n\nCopyright (C) 2019 Alexei Boron"
},
{
"path": "lua/catppuccin/lib/mapper.lua",
"chars": 2610,
"preview": "local M = {}\n\nfunction M.apply(flavour)\n\tflavour = flavour or require(\"catppuccin\").flavour\n\n\tlocal _O, _C, _U = O, C, U"
},
{
"path": "lua/catppuccin/palettes/frappe.lua",
"chars": 562,
"preview": "return {\n\trosewater = \"#f2d5cf\",\n\tflamingo = \"#eebebe\",\n\tpink = \"#f4b8e4\",\n\tmauve = \"#ca9ee6\",\n\tred = \"#e78284\",\n\tmaroon"
},
{
"path": "lua/catppuccin/palettes/init.lua",
"chars": 1158,
"preview": "local M = {}\n\nfunction M.get_palette(flavour)\n\tlocal flvr = flavour or require(\"catppuccin\").flavour or vim.g.catppuccin"
},
{
"path": "lua/catppuccin/palettes/latte.lua",
"chars": 562,
"preview": "return {\n\trosewater = \"#dc8a78\",\n\tflamingo = \"#dd7878\",\n\tpink = \"#ea76cb\",\n\tmauve = \"#8839ef\",\n\tred = \"#d20f39\",\n\tmaroon"
},
{
"path": "lua/catppuccin/palettes/macchiato.lua",
"chars": 562,
"preview": "return {\n\trosewater = \"#f4dbd6\",\n\tflamingo = \"#f0c6c6\",\n\tpink = \"#f5bde6\",\n\tmauve = \"#c6a0f6\",\n\tred = \"#ed8796\",\n\tmaroon"
},
{
"path": "lua/catppuccin/palettes/mocha.lua",
"chars": 562,
"preview": "return {\n\trosewater = \"#f5e0dc\",\n\tflamingo = \"#f2cdcd\",\n\tpink = \"#f5c2e7\",\n\tmauve = \"#cba6f7\",\n\tred = \"#f38ba8\",\n\tmaroon"
},
{
"path": "lua/catppuccin/special/bufferline.lua",
"chars": 4896,
"preview": "local M = {}\n\nlocal ctp = require \"catppuccin\"\nlocal O = ctp.options\n\nfunction M.get_theme(user_config)\n\tuser_config = u"
},
{
"path": "lua/catppuccin/special/feline.lua",
"chars": 11961,
"preview": "local M = {}\n\nlocal C = require(\"catppuccin.palettes\").get_palette()\nlocal ok, lsp = pcall(require, \"feline.providers.ls"
},
{
"path": "lua/catppuccin/types.lua",
"chars": 12841,
"preview": "---@class Catppuccin\n---@field options CatppuccinOptions\n---@field setup fun(opts: CatppuccinOptions?)\n\n---@alias CtpFla"
},
{
"path": "lua/catppuccin/utils/barbecue.lua",
"chars": 1838,
"preview": "return function(flavour)\n\tlocal C = require(\"catppuccin.palettes\").get_palette(flavour)\n\tlocal O = require(\"catppuccin\")"
},
{
"path": "lua/catppuccin/utils/colors.lua",
"chars": 4749,
"preview": "local M = {}\n\nlocal hsluv = require \"catppuccin.lib.hsluv\"\n\nM.bg = \"#000000\"\nM.fg = \"#ffffff\"\nM.day_brightness = 0.3\n\n--"
},
{
"path": "lua/catppuccin/utils/integration_mappings.lua",
"chars": 2206,
"preview": "local M = {\n\t[\"aerial.nvim\"] = \"aerial\",\n\t[\"alpha-nvim\"] = \"alpha\",\n\t[\"artio.nvim\"] = \"artio\",\n\t[\"avante.nvim\"] = \"avant"
},
{
"path": "lua/catppuccin/utils/lualine.lua",
"chars": 1862,
"preview": "---@param colors_override (CtpIntegrationLualineOverride | CtpIntegrationLualineOverrideFn)?\n---@param colors CtpColors<"
},
{
"path": "lua/catppuccin/utils/reactive.lua",
"chars": 2764,
"preview": "local M = {}\n\nfunction M.cursor(name, palette)\n\treturn {\n\t\tname = name,\n\t\tinit = function() vim.opt.guicursor:append \"a:"
},
{
"path": "lua/lualine/themes/catppuccin-frappe.lua",
"chars": 51,
"preview": "return require \"catppuccin.utils.lualine\" \"frappe\"\n"
},
{
"path": "lua/lualine/themes/catppuccin-latte.lua",
"chars": 50,
"preview": "return require \"catppuccin.utils.lualine\" \"latte\"\n"
},
{
"path": "lua/lualine/themes/catppuccin-macchiato.lua",
"chars": 54,
"preview": "return require \"catppuccin.utils.lualine\" \"macchiato\"\n"
},
{
"path": "lua/lualine/themes/catppuccin-mocha.lua",
"chars": 50,
"preview": "return require \"catppuccin.utils.lualine\" \"mocha\"\n"
},
{
"path": "lua/lualine/themes/catppuccin-nvim.lua",
"chars": 44,
"preview": "return require \"catppuccin.utils.lualine\"()\n"
},
{
"path": "lua/reactive/presets/catppuccin-frappe-cursor.lua",
"chars": 180,
"preview": "local palette = require(\"catppuccin.palettes\").get_palette \"frappe\"\nlocal presets = require \"catppuccin.utils.reactive\"\n"
},
{
"path": "lua/reactive/presets/catppuccin-frappe-cursorline.lua",
"chars": 1750,
"preview": "local darken = require(\"catppuccin.utils.colors\").darken\nlocal palette = require(\"catppuccin.palettes\").get_palette \"fra"
},
{
"path": "lua/reactive/presets/catppuccin-latte-cursor.lua",
"chars": 263,
"preview": "local palette = require(\"catppuccin.palettes\").get_palette \"latte\"\nlocal presets = require \"catppuccin.utils.reactive\"\n\n"
},
{
"path": "lua/reactive/presets/catppuccin-latte-cursorline.lua",
"chars": 1736,
"preview": "local lighten = require(\"catppuccin.utils.colors\").lighten\nlocal palette = require(\"catppuccin.palettes\").get_palette \"l"
},
{
"path": "lua/reactive/presets/catppuccin-macchiato-cursor.lua",
"chars": 186,
"preview": "local palette = require(\"catppuccin.palettes\").get_palette \"macchiato\"\nlocal presets = require \"catppuccin.utils.reactiv"
},
{
"path": "lua/reactive/presets/catppuccin-macchiato-cursorline.lua",
"chars": 439,
"preview": "local palette = require(\"catppuccin.palettes\").get_palette \"macchiato\"\nlocal presets = require \"catppuccin.utils.reactiv"
},
{
"path": "lua/reactive/presets/catppuccin-mocha-cursor.lua",
"chars": 178,
"preview": "local palette = require(\"catppuccin.palettes\").get_palette \"mocha\"\nlocal presets = require \"catppuccin.utils.reactive\"\n\n"
},
{
"path": "lua/reactive/presets/catppuccin-mocha-cursorline.lua",
"chars": 186,
"preview": "local palette = require(\"catppuccin.palettes\").get_palette \"mocha\"\nlocal presets = require \"catppuccin.utils.reactive\"\n\n"
},
{
"path": "nvim.tera",
"chars": 213,
"preview": "---\nwhiskers:\n version: 2.5.1\n matrix:\n - flavor\n filename: \"lua/catppuccin/palettes/{{flavor.identifier}}.lua\"\n--"
},
{
"path": "renovate.json",
"chars": 128,
"preview": "{\n \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\",\n \"extends\": [\n \"local>catppuccin/renovate-config"
},
{
"path": "scripts/generate_integration_mappings_table.lua",
"chars": 1722,
"preview": "local M = {}\n\nlocal catppuccin_path = vim.fn.getcwd() -- get to the root directory of the plugin\nlocal lua_path = catppu"
},
{
"path": "selene.toml",
"chars": 43,
"preview": "std = 'vim'\n\n[lints]\nmixed_table = 'allow'\n"
},
{
"path": "stylua.toml",
"chars": 175,
"preview": "column_width = 120\nline_endings = \"Unix\"\nindent_type = \"Tabs\"\nindent_width = 4\nquote_style = \"AutoPreferDouble\"\ncollapse"
},
{
"path": "tests/flavour_spec.lua",
"chars": 3151,
"preview": "local function reload()\n\tfor name, _ in pairs(package.loaded) do\n\t\tif name:match \"^catppuccin\" then package.loaded[name]"
},
{
"path": "tests/hash_spec.lua",
"chars": 906,
"preview": "describe(\"hash\", function()\n\tlocal hash = require(\"catppuccin.lib.hashing\").hash\n\tit(\"typo\", function() assert.are_not.e"
},
{
"path": "tests/init.lua",
"chars": 776,
"preview": "local status, error = pcall(function()\n\tlocal root = vim.fn.fnamemodify(\".repro\", \":p\")\n\tfor _, name in ipairs { \"config"
},
{
"path": "tests/init.vim",
"chars": 188,
"preview": "try\n\tcall plug#begin()\n\tPlug expand('<sfile>')[0:-16] \n\tcall plug#end()\n\n\tlua require(\"catppuccin\").setup {}\n colorsche"
},
{
"path": "tests/minimal_init.vim",
"chars": 40,
"preview": "set rtp+=.\n\nruntime! plugin/plenary.vim\n"
},
{
"path": "tests/palette_spec.lua",
"chars": 598,
"preview": "local function reload()\n\tfor name, _ in pairs(package.loaded) do\n\t\tif name:match \"^catppuccin\" then package.loaded[name]"
},
{
"path": "tests/pattern_spec.lua",
"chars": 860,
"preview": "describe(\"parse url from\", function()\n\tlocal parse_url = require(\"catppuccin.lib.detect_integrations\").parse_url\n\n\tit(\n\t"
},
{
"path": "vim.toml",
"chars": 165,
"preview": "[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[i"
}
]
About this extraction
This page contains the full source code of the catppuccin/nvim GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 151 files (299.3 KB), approximately 100.2k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.