diff --git a/CHANGELOG.md b/CHANGELOG.md index 838c8e90..b717dca3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,43 @@ # Changelog +## [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) diff --git a/README.md b/README.md index c2ddda40..afe32b39 100644 --- a/README.md +++ b/README.md @@ -89,8 +89,7 @@ There is no need to call `setup` if you don't want to change the default options ```lua require("catppuccin").setup({ - flavour = "mocha", -- latte, frappe, macchiato, mocha - -- flavour = "auto" -- will respect terminal's background + flavour = "auto", -- latte, frappe, macchiato, mocha background = { -- :h background light = "latte", dark = "mocha", @@ -459,6 +458,23 @@ native_lsp = { + + + + colorful-winsep.nvim + + + +```lua +colorful_winsep = { + enabled = false, + color = "red", +} +``` + + + + @@ -473,6 +489,20 @@ dashboard = true + + + + diffview.nvim + + +```lua +diffview = false +``` + + + + + diff --git a/doc/catppuccin.txt b/doc/catppuccin.txt index e58428df..14d2276d 100644 --- a/doc/catppuccin.txt +++ b/doc/catppuccin.txt @@ -17,6 +17,7 @@ Table of Contents *catppuccin-table-of-contents* - Wrong treesitter highlights |catppuccin-faq-wrong-treesitter-highlights| - Colors doesn’t match preview screenshots|catppuccin-faq-colors-doesn’t-match-preview-screenshots| 9. Thanks to |catppuccin-thanks-to| +10. Links |catppuccin-links| ============================================================================== 1. Features *catppuccin-features* @@ -70,8 +71,7 @@ options and settings. >lua require("catppuccin").setup({ - flavour = "mocha", -- latte, frappe, macchiato, mocha - -- flavour = "auto" -- will respect terminal's background + flavour = "auto", -- latte, frappe, macchiato, mocha background = { -- :h background light = "latte", dark = "mocha", @@ -379,10 +379,21 @@ directly at the thing (e.g. an error)). }, < +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, diff --git a/lua/catppuccin/groups/integrations/colorful_winsep.lua b/lua/catppuccin/groups/integrations/colorful_winsep.lua new file mode 100644 index 00000000..d4d5f885 --- /dev/null +++ b/lua/catppuccin/groups/integrations/colorful_winsep.lua @@ -0,0 +1,9 @@ +local M = {} + +function M.get() + return { + NvimSeparator = { bg = C.base, fg = C[O.integrations.colorful_winsep.color] }, + } +end + +return M diff --git a/lua/catppuccin/groups/integrations/diffview.lua b/lua/catppuccin/groups/integrations/diffview.lua new file mode 100644 index 00000000..b14b482d --- /dev/null +++ b/lua/catppuccin/groups/integrations/diffview.lua @@ -0,0 +1,41 @@ +local M = {} + +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 diff --git a/lua/catppuccin/groups/integrations/headlines.lua b/lua/catppuccin/groups/integrations/headlines.lua index 3a626777..2b4f49c7 100644 --- a/lua/catppuccin/groups/integrations/headlines.lua +++ b/lua/catppuccin/groups/integrations/headlines.lua @@ -3,7 +3,7 @@ local M = {} function M.get() return { Dash = { fg = C.overlay2, style = { "bold" } }, - Quote = { link = "@text.strong" }, + Quote = { link = "@markup.strong" }, CodeBlock = { bg = C.mantle }, Headline = { link = "Headline1" }, Headline1 = { bg = C.surface0, fg = C.red }, diff --git a/lua/catppuccin/init.lua b/lua/catppuccin/init.lua index d6460317..ad205f95 100644 --- a/lua/catppuccin/init.lua +++ b/lua/catppuccin/init.lua @@ -4,6 +4,7 @@ if is_vim then require "catppuccin.lib.vim" end ---@type Catppuccin local M = { default_options = { + flavour = "auto", background = { light = "latte", dark = "mocha", @@ -42,6 +43,7 @@ local M = { dap = true, dap_ui = true, dashboard = true, + diffview = false, flash = true, gitsigns = true, markdown = true, @@ -95,6 +97,10 @@ local M = { enabled = true, color_mode = false, }, + colorful_winsep = { + enabled = false, + color = "red", + }, }, color_overrides = {}, highlight_overrides = {}, @@ -125,7 +131,7 @@ local function get_flavour(default) if flavour and not M.flavours[flavour] then vim.notify( string.format( - "Catppuccin (error): Invalid flavour '%s', flavour must be 'latte', 'frappe', 'macchiato' or 'mocha'", + "Catppuccin (error): Invalid flavour '%s', flavour must be 'latte', 'frappe', 'macchiato', 'mocha' or 'auto'", flavour ), vim.log.levels.ERROR @@ -140,15 +146,6 @@ local did_setup = false function M.load(flavour) if M.options.flavour == "auto" then -- set colorscheme based on o:background M.options.flavour = nil -- ensure that this will only run once on startup - if not vim.api.nvim_get_option_info2("background", {}).was_set then -- wait for terminal to set o:background - vim.api.nvim_create_autocmd("OptionSet", { -- https://github.com/neovim/neovim/pull/26284 - once = true, - nested = true, - pattern = "background", - callback = function() M.load(flavour) end, - }) - return - end end if not did_setup then M.setup() end M.flavour = get_flavour(flavour) @@ -158,7 +155,7 @@ function M.load(flavour) M.compile() f = assert(loadfile(compiled_path), "could not load cache") end - f() + f(flavour or M.options.flavour or vim.g.catppuccin_flavour) end ---@type fun(user_conf: CatppuccinOptions?) diff --git a/lua/catppuccin/lib/compiler.lua b/lua/catppuccin/lib/compiler.lua index d669564e..5c844567 100644 --- a/lua/catppuccin/lib/compiler.lua +++ b/lua/catppuccin/lib/compiler.lua @@ -25,10 +25,10 @@ function M.compile(flavour) local lines = { string.format( [[ -return string.dump(function() +return string.dump(function(flavour) vim.o.termguicolors = true if vim.g.colors_name then vim.cmd("hi clear") end -vim.o.background = "%s" +if flavour then vim.o.background = "%s" end vim.g.colors_name = "catppuccin-%s" local h = vim.api.nvim_set_hl]], flavour == "latte" and "light" or "dark", diff --git a/lua/catppuccin/types.lua b/lua/catppuccin/types.lua index 22da8abc..8b98a293 100644 --- a/lua/catppuccin/types.lua +++ b/lua/catppuccin/types.lua @@ -118,6 +118,7 @@ ---``` ---@field barbecue CtpIntegrationBarbecue | boolean? ---@field beacon boolean? +---@field colorful_winsep CtpIntegrationColorfulWinsep | boolean? ---@field cmp boolean? -- `coc.nvim` links to `native_lsp` highlight groups, so you can use -- `native_lsp.virtual_text` and `native_lsp.underlines` to style diagnostics. @@ -132,6 +133,7 @@ ---@field dap boolean? ---@field dap_ui boolean? ---@field dashboard boolean? +---@field diffview boolean? ---@field dropbar CtpIntegrationDropbar | boolean? ---@field fern boolean? -- Set `notification.window.winblend` to `0` in your `fidget` config: @@ -210,6 +212,12 @@ -- Whether the directory name should be dimmed. ---@field dim_dirname boolean? +---@class CtpIntegrationColorfulWinsep +-- Whether to enable the colorful-winsep integration. +---@field enabled boolean +-- Set to a Catppuccin color name to use for the split separator. +---@field color CtpColor? + ---@class CtpIntegrationDropbar -- Whether to enable the dropbar integration. ---@field enabled boolean