Releases: catppuccin/nvim
v2.0.0
2.0.0 (2026-04-02)
This is a big release!
We've made some updates to syntax highlighting & added some lovely
integrations for newer plugins. Again, thanks to the community for all the lovely
contributions <3
Important
If you need any help or wish to submit feedback about this release, please
don't hesitate to leave a comment in our release discussion!
Breaking changes
There are a few breaking changes included in this major release that we'd like
to notify you about. So following is a breakdown of some changes you might need
to make to your config to take full advantage of the release and prevent any
easily avoidable issues.
🛑 Vim Support Removed (#949)
This is one of the biggest changes included with this release: vim support has
officially been dropped. This means any code related to special vim features
or special handling of differences between the editors has been removed. This
cleans up the source code for maintainers and eases development. You can read
more in the readme if you were relying on this support. For those
on neovim, nothing changes for you!
🏷️ Colorscheme Renamed (#977)
Important
This only affects the call to vim.cmd.colorscheme in your config. The plugin
name and import paths remain the same.
The catppuccin vim port has been added to the vim builtin colorschemes. This
means that a simpler variant of this port is now easily available to those that
want it: just :colorscheme catppuccin, no plugin needed.
Unfortunately, this vim port has much smaller featureset than our neovim
port. The integration of the vim port also means that the colorscheme name of
this port and the built-in port are now conflicting - both use the catppuccin
name. To adapt to this, we changed the name of the colorscheme to
catppuccin-nvim to show the difference with the new builtin colorscheme.
To continue using the neovim plugin instead of the new builtin colorscheme, don't forget to use this in your config:
vim.cmd.colorscheme("catppuccin-nvim")🎨 Treesitter Syntax Changes (#804)
The treesitter syntax colors have been changed a lot with the aim to align the
syntax highlighting of the neovim port with other ports & code editors in the
organisation.
It's a hard balance to strike when trying to improve the highlights in
different grammars, but also make it feel familiar across lots of different
code editors. The VSCode, Intellij, etc ports might receive some updates after
this v2.0.0 release. You can more about the discussion on these changes here.
If you'd like to revert these changes you can use the following snippet with our overrides api:
require('catppuccin').setup({
custom_highlights = function(C)
local O = require("catppuccin").options
return {
["@variable.member"] = { fg = C.lavender }, -- For fields.
["@module"] = { fg = C.lavender, style = O.styles.miscs or { "italic" } }, -- For identifiers referring to modules and namespaces.
["@string.special.url"] = { fg = C.rosewater, style = { "italic", "underline" } }, -- urls, links and emails
["@type.builtin"] = { fg = C.yellow, style = O.styles.properties or { "italic" } }, -- For builtin types.
["@property"] = { fg = C.lavender, style = O.styles.properties or {} }, -- Same as TSField.
["@constructor"] = { fg = C.sapphire }, -- For constructor calls and definitions: = { } in Lua, and Java constructors.
["@keyword.operator"] = { link = "Operator" }, -- For new keyword operator
["@keyword.export"] = { fg = C.sky, style = O.styles.keywords },
["@markup.strong"] = { fg = C.maroon, style = { "bold" } }, -- bold
["@markup.italic"] = { fg = C.maroon, style = { "italic" } }, -- italic
["@markup.heading"] = { fg = C.blue, style = { "bold" } }, -- titles like: # Example
["@markup.quote"] = { fg = C.maroon, style = { "bold" } }, -- block quotes
["@markup.link"] = { link = "Tag" }, -- text references, footnotes, citations, etc.
["@markup.link.label"] = { link = "Label" }, -- link, reference descriptions
["@markup.link.url"] = { fg = C.rosewater, style = { "italic", "underline" } }, -- urls, links and emails
["@markup.raw"] = { fg = C.teal }, -- used for inline code in markdown and for doc in python (""")
["@markup.list"] = { link = "Special" },
["@tag"] = { fg = C.mauve }, -- Tags like html tag names.
["@tag.attribute"] = { fg = C.teal, style = O.styles.miscs or { "italic" } }, -- Tags like html tag names.
["@tag.delimiter"] = { fg = C.sky }, -- Tag delimiter like < > /
["@property.css"] = { fg = C.lavender },
["@property.id.css"] = { fg = C.blue },
["@type.tag.css"] = { fg = C.mauve },
["@string.plain.css"] = { fg = C.peach },
["@constructor.lua"] = { fg = C.flamingo }, -- For constructor calls and definitions: = { } in Lua.
-- typescript
["@property.typescript"] = { fg = C.lavender, style = O.styles.properties or {} },
["@constructor.typescript"] = { fg = C.lavender },
-- TSX (Typescript React)
["@constructor.tsx"] = { fg = C.lavender },
["@tag.attribute.tsx"] = { fg = C.teal, style = O.styles.miscs or { "italic" } },
["@type.builtin.c"] = { fg = C.yellow, style = {} },
["@type.builtin.cpp"] = { fg = C.yellow, style = {} },
}
end,
})🪟 New Global Floating Window Options (#892)
All the options for floating windows or solid-window styling have been moved to
a global option set. This is to make sure all integrations follow these
guidelines and adapt to your preferences properly.
What this means for you is that you no longer need to set a .transparent
toggle on integrations. Instead you can simply set:
require('catppuccin').setup({
transparent_background = true, -- for global brackground transparency
float = {
transparent = true, -- if you would like floating windows to *also* be transparent
solid = true, -- to enable solid-window styling
},
})All of these options default to false if unset.
You can look at the related pr for previews of what these options look
like.
⚒️ Special Integrations Changes (#931)
Editor Integrations
To adapt to the everchanging landscape of neovim features & plugins, some
integrations have been moved or changed.
The markdown, native_lsp, semantic_tokens and treesitter integrations
are now integrated into the default nvim highlights and these do no longer have
to be enabled manually.
This means you can remove the following options from your config:
require('catppuccin').setup({
integrations = {
markdown = true,
native_lsp = true,
semantic_tokens = true,
treesitter = true,
},
})LSP Integration
The settings that were previously in integrations.native_lsp were moved to
lsp_styles since this integration is now always enabled.
require('catppuccin').setup({
lsp_styles = { -- Handles the style of specific lsp hl groups (see `:h lsp-highlight`).
virtual_text = {
hints = { "italic" },
information = { "italic" },
ok = { "italic" },
},
underlines = {
errors = { "underline" },
warnings = { "underline" },
},
inlay_hints = {
background = false,
},
},
})Special Integrations
The bufferline and feline special integrations have been moved to
catppuccin.special.<integration>. These were previously under the
catppuccin.groups.integrations.<integration> namespace, which was sometimes
confusing since these features couldn't be enabled with the normal
integrations.<integration> = true options.
Simply use the following new module imports and everything else is the same:
require('catppuccin.groups.integrations.bufferline').get()=>require('catppuccin.special.bufferline').get_theme()require('catppuccin.groups.integrations.feline').get()=>require('catppuccin.special.feline').get_statusline()
Note
The imports now use .get_theme() and .get_statusline() respectively for
the imports - instead of .get() for both. This change was made to indicate
more clearly what is being imported.
⚙️ Smaller Changes
The .show_end_of_buffer option has been removed (#982)
This feature previously tried to hide the ~ end of file characters you can
see at the bottom of your editor. It tried to do so by linking the foreground
color of these characters to the editor background. Unfortunately, this
solution was quite hacky and had adverse affects when transparency was enabled.
If you'd still like to use this feature, set the following editor option in your config:
vim.opt.fillchars:append({ eob = " " })v1.11.0
1.11.0 (2025-07-31)
Features
- automatic integration detection (#871) (44bd5ea)
- blink-cmp: add
styleoption (#867) (fa42eb5) - blink-cmp: improved support (#862) (d0972f1)
- buffon: add buffon.nvim integration (#855) (ae1bac4)
- buffon: add to auto integration list (#878) (82f3dce)
- make bg of
FloatBordersame asNormalFloat(#877) (aac17a6) - markview: add markview integration (#854) (961ec64)
- snacks: add nvchad style for snacks.picker (#858) (84336e0)
- snacks: add snacks.picker support (#853) (be1e5e6)
- telescope: add
nvchad_outlinedstyle (aac17a6)
Bug Fixes
- add missing table based integrations to fix auto integration detection (#890) (6d0d9ae)
- adjust default integration settings (#863) (62dbc84)
- avante: link background and border hl (#865) (387b4b1)
- cursor: update cursor color to rosewater / base (#857) (a0c769b)
- editor: link
FloatTitlebg toNormalFloat(#882) (d7b413f) - enable auto detected integrations with table options (#886) (5fa8d24)
- fzf: link normal and title to defaults (#883) (0cf15ba)
- markview: adjust highlights (#860) (30b1a81)
- markview: incorrect heading bg when using transparent bg (56a9dfd)
- mini.picker: border and match styling (#889) (94f6e8a)
- octo: clear OctoFilePanelFileName hl group (#875) (784e529)
- render-markdown: incorrect heading bg when using transparent bg (56a9dfd)
v1.10.0
1.10.0 (2025-05-04)
Features
- add background highlight to LSP signature help (#771) (de096dd)
- blink-cmp: add integration (#777) (abceb64)
- blink-cmp: support
BlinkCmpLabelMatchhl (#802) (637d99e) - blink.cmp: highlight
BlinkCmpKindCopilotasteal(#813) (bd80c25) - copilot: add integration (#803) (b71eacb)
- gitgutter: add LineNr highlights (#833) (4bb938b)
- gitsign: improve gitsign inline add and delete colors (#808) (4965db2)
- integrations: add support for gitgraph.nvim (#822) (58f1a92)
- integrations: remove normalnvim (#828) (be45e04)
- integrations: update mini.indentscope (#821) (0b2437b)
- PmenuExtra: add support for PmenuExtra highlights (#851) (b01060e)
- reactive: add cursor color for normal mode (#834) (5b5e3ae)
- render-markdown: change code block background to
mantle(#774) (7be452e) - signify: add vim-signify integration (#850) (54fb7f4)
- snacks: add indent highlights (#827) (57c4077)
- snacks: add integration (#807) (f8a155a)
Bug Fixes
- blink-cmp: follow
Pmenuhighlights (#799) (35d8057) - colorful-winsep: respect transparent_background configuration (#775) (9e6ec28)
- dap-ui: add colors for *NC hlgroups of UI controls (#783) (d9ee9a3)
- editor: add missing background for
TabLineFill(#757) (bfdd6b3) - editor: make TabLine more readable (#760) (4fd72a9)
- editor: more "modern" tabline (#776) (5ea0888)
- gitsigns: respect transparent option for gitsigns (#844) (2dfca93)
- kitty: respect
transparent_backgroundoption (#786) (08efbef) - match fzf-lua highlights to telescope (#812) (f67b886)
- nvim-surround: bg conflicts with document highlight (#800) (a4c64d7)
- octo: incorrect highlight backgrounds (#836) (7ab1a6e)
- respect transparent option for gitsigns integration (#826) (ebfb647)
- syntax: use
overlay2for comments (#768) (147e7cf)
Reverts
v1.9.0
1.9.0 (2024-08-09)
Features
- add fzf-lua integration (#746) (05206bb)
- add lir.nvim and lir-git-status.nvim integration (#705) (d3907de)
- add markdown.nvim integration (ba41328)
- add vim-dadbod-ui integration (#747) (4db4c77)
- render-markdown: add highlights for callouts (03a2f35)
- terminal: highlight
TermCursorandTermCursorNC(#749) (548b2a2)
v1.8.0
1.8.0 (2024-07-25)
Features
- add
grug-far.nvimintegration (#735) (07f1ee8) - bufferline: add
indicator_visibleandmodified_visible(#716) (cc8e290) - csv: built-in rainbow highlighting (#720) (67565cd)
- diffview: add diffview integrations (#700) (182f256)
- feline: add lazy.nvim updates module, replace deprecated API (#725) (47bd419)
- feline: allow to hide lazy.nvim updates (#731) (7946d1a)
- integration: add colorful-winsep.nvim (#701) (30481d6)
- mini: add new highlight groups (#721) (6827a67)
- nvim-surround: add integration (#733) (3f16c6d)
- support new "Ok" diagnostics (5215ea5)
- treesitter-content: highlight line number (#709) (4edca6b)
Bug Fixes
- dapui: border match bg color (#727) (4ea0173)
- defaults: Enable mini integration by default (894efb5)
- leap: highlight group for LeapLabel (2d3419c)
- neogit: link WinSeparator (#713) (afccb3d)
- small typo in feline.lua file (#719) (c0bea77)
- treesitter: highlight paths in
.gitignoreas text (#736) (4374588)
v1.7.0
1.7.0 (2024-04-13)
Features
- add ability to toggle default integrations (#687) (e60e400)
- add support for
outline.nvimplugin (#647) (048c18f) - defaults: enable neotree (c536623)
- defaults: enable treesitter context (dc392c0), closes #683
- feline: fix feline integration (#685) (07679af)
- feline: improve feline lsp display (#688) (f66654d)
- integration: add reactive.nvim integration (#654) (151e478)
- lsp: add highlight for
LspCodeLensSeparator(#693) (02bdd74) - set
[@comment](https://github.com/comment).warningthat does not affect readability in gitcommit (#675) (045e349) - treesitter: add styles.miscs to disable hardcoded italics (#659) (c0de3b4)
- treesitter: follow upstream captures (#630) (f288876)
- treesitter: follow upstream captures (#694) (08c6417)
- use a more distinguishable color for todos (#645) (657cc4f)
Bug Fixes
- compile: string.dump isn't deterministic (836de8b), closes #664
- dropbar: correct keyword highlight link (#652) (afab7ec)
- ensure consistency between JSX and HTML markup (#660) (9703f22)
- flavour: g:catppuccin_flavour backwards compatibility (fc98570)
- flavour: respect terminal's background (#696) (d5760c5)
- illuminate: update type (#690) (30930f9)
- integrations: respect default options (c2e6f8e)
- neotree: add
NeoTreeModified(#642) (6853cc8) - neotree: blend sidebar with win separator (56fb982), closes #670
- repair treesitter underlined text (
Underline->Underlined) (#663) (42b687c) - respect background variable on startup (6b7a4df)
- semantic_tokens: namespace -> module (196f301)
- treesitter: some captures missing leading
@(#650) (bc1f215) - use external index for lsp counting (c3572a9)
- wrong color shown when using color_overrides (#658) (b76ada8), closes #657
v1.6.0
1.6.0 (2023-12-31)
Features
- add
WinSeperatorhighlight group (#623) (988c0b2) - bufferline: support
no_underlineoption (#601) (f7638a1) - dashboard: add highlight groups for
doomtheme (#593) (3bdd5e8) - integrations: enable dap & dap_ui by default (64dc309)
- lualine: darken lualine
bsection for better readability (#606) (32ee05d) - mini.indentscope: add scope color (#592) (795f639)
- neogit: support new highlight groups (#610) (f90c7c0)
- notify: add
NotifyBackgroundhl group (#637) (c7cf3af)
Bug Fixes
- airline: missing refresh function (dcef0a0), closes #594
- dashboard:
orange->peach(54002a1) - flash: link
FlashPrompttoNormalFloat(#605) (40dc9f0) - lualine: match lualine mode colors for insert and terminal (#597) (ea52fe8)
- neogit: remove
NeogitCursorLinefrom integration (#613) (5e4be43) - neogit: remove diff context highlight fg (1b40f07), closes #627
- neogit: tweak diff context highlighting (#614) (cc717ac)
- neotree: change color of untracked files (#608) (d7521f6)
- neotree: make popup titlebar text visible (#618) (919d1f7)
- noice: respect transparency (#632) (4fbab1f)
- selene: allow mixed tables (#611) (9f3c13b)
- sync focused and unfocused winbars (#628) (079500a)
- vim: resolve deprecation of nested [[ (7a4bcda)
v1.5.0
1.5.0 (2023-09-29)
Features
- add kitty detection (d3da439)
- add ufo integration (1f53686)
- add workaround for kitty transparent issue (#579) (f36fa5c)
- compile: use indexed cmd (85e9360)
- illuminate: enabled by default and optional lsp option (5b44baa), closes #571
- indent-blankline: update to v3, add scope color (#585) (f04336b)
- integrations: add NormalNvim (0e3c128), closes #580
- integrations: add notifier.nvim (d029098), closes #574
- lib: soft deprecate highlighter (8202348)
- syntax: respect style guide part 3 (#576) (81096ca)
Bug Fixes
- coc: improve inlay hints (#582) (3d9a5ed)
- editor: invisible fold with transparent (1c15c5e), closes #577
- template: broken tmux italic gist link (128e0d2)
- treesitter: invalid string in type builtin (135f9b0)
- ufo: use folded ellipsis (846388d)
- vim: add vim.env index (1786287)
Performance Improvements
- compile: reduce else statement (a937d54)
v1.4.0
1.4.0 (2023-08-21)
Features
- add flash.nvim integration (#550) (381eddd)
- enable neogit by default (91f9f6f), closes #568
- flash: enable by default (#551) (a84ee18)
- gitsigns: Support GitSignsCurrentLineBlame highlights (#567) (3fdd394)
- lspsaga: support v0.3 (#543) (3ffd2f5)
- lspsaga: upstream new hl groups (#544) (e0dd3f9)
- neogit: update highlights (#545) (#549) (371430f)
- telescope: make nvchad style great again (#538) (51961da)
- treesitter-context: add color for normal background (#564) (b1caff9)
Bug Fixes
- don't highlight fg of
PmenuSel(#554) (6425df1) - highlight NonText characters (#547) (bfe91df)
- noice: set background blend to 0 for mini popups (#556) (2d50a4e)
- nvim-window-picker: missing table keys (#569) (b9e4dae)
- options: disable deprecated ts_rainbow and ts_rainbow2 by default (096385d)
- telescope: keep consistency between the two styles (#540) (dfbc8e2)
- telescope: respect transparency (#542) (f36af06)
- treesitter: avoid possible nil (17ae783)
- types: make all options besides nested
enabledoptional (#565) (490078b)
v1.3.0
1.3.0 (2023-07-10)
Features
- auto-sync upstream palettes (#507) (8426d3b)
- debug: add auto compile on save (c9cc5a9)
- dropbar: add new highlight groups (4f22a1e), closes #503
- integration: add dropbar.nvim (#499) (e86aeb8)
- integrations: accept both boolean and table config (#534) (f0b947a)
- integrations: add rainbow_delimiters.nvim support (#530) (cc8d3ab)
- markdown: add rainbow headlines (#493) (cc517bd)
- native_lsp: add ability to disable background for inlay hints (#518) (b032ced)
- native_lsp: support inlay hints (#516) (d32b0bb)
- navic: change text color (278bfeb)
- semantic_tokens: add some lsp semantic tokens (#512) (506a4aa)
- telescope: telescope flat style support (#521) (fc73faa)
- types: add type annotations (#495) (1d3eda1)
- workflows: auto-sync upstream palettes (e9fbeec)
Bug Fixes
- calling palette before setup (841d8ab)
- feline: disable lsp status on nightly (#510) (9aaf5b4)
- feline: use new
vim.lsp.status()method (#509) (57ee09d) - lsp: do not link
LspInlayHinttoCommentdirectly (#517) (5dc566c) - mapper: remove unnecessary globals (#529) (c75562c)
- native_lsp: boolean logic (#526) (8d02781)
- tests: shadowing variable (15043d3)
- treesitter_context: underline content if
transparent_backgroundis true (#519) (6ecc158) - which-key: wrong separator highlight group (d438c01)
- workflows: stylua format (2df7036)
